Decide before v1: make EIGS_STRICT the default (argument-type stand-ins like abs of "x" = 0 are silent by default)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
调研方向
Start with docs/SPEC.md around line 247 and tools/strict_differential.sh to understand the current strict-mode behavior and distinguish real results from stand-ins. Run tools/consumer_acceptance.sh run against the changed binary, then update README, llms.txt, CHANGELOG, and SPEC.md as required. Done means the decision is recorded, the default behavior is documented and tested, and the consumer sweep is green with breaks resolved and linked.
由索引模型根据 Issue 内容生成。
描述
What is true today (measured at 27f8a90)
print of (abs of "x") # 0
print of (abs of ([-3, 7])) # 0
print of (floor of [1.5, 2.5]) # 0
All three exit 0. With EIGS_STRICT=1, the first raises abs: expected a number.
This is documented as the default. docs/SPEC.md (around line 247) says argument-type guards substitute a stand-in (0, "", null) unless strict is set. #971 and #975, the fail-soft to loud reform, are closed: they built the strict guards across the whole builtin surface and kept strict opt-in.
Why decide now
- PRINCIPLES / #975 name silent substitution as the class to remove.
- #1286 says to settle language decisions before the first outside consumer.
- A type mistake that becomes a plausible value is exactly the silent-wrong class this project hunts. Today the default is the silent one.
- The machinery already exists: flipping it is a default change plus a consumer sweep, not new guards.
tools/strict_differential.shalready pins which answers are genuine (a real0) and which are stand-ins.
Recommendation
Make strict the default, with a per-run opt-out (EIGS_STRICT=0, or an eigs.json field if the #1286 edition field lands). Then run the consumer sweep: every pinned consumer's real CI command against the flipped binary, and every break fixed in the consumer. On an owned ecosystem with no back-compat contract, the breaks are the point: each one is a latent type mistake.
Done when
- Decision recorded here by the owner: flip, or keep opt-in with the reason.
- If flip: the default is strict. SPEC.md, llms.txt, README and CHANGELOG say so, and
abs of "x"raises with no flag set. - If flip:
tools/consumer_acceptance.sh runagainst the flipped binary is green, with every consumer break fixed upstream or in the consumer and linked here.
- 主要语言
- C
- 星标
- 3
- 派生
- 7
- 平均合并
- 11 小时 30 分钟
- 30 天内合并 PR
- 271
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
InauguralSystems/EigenScript 的其他 Issue
-
area:docs kind:docs-drift
难度 2/5 1-3 小时 新手友好度 76/100
InauguralSystems/EigenScript#1887 ·
维护者通常 1 天内回复
-
area:stdlib kind:silent-wrong
难度 2/5 1-3 小时 新手友好度 88/100
InauguralSystems/EigenScript#1878 ·
维护者通常 1 天内回复
-
area:gates kind:docs-drift
难度 1/5 1 小时以内 新手友好度 86/100
InauguralSystems/EigenScript#1851 ·
维护者通常 1 天内回复
-
area:gates area:gfx found-by:critic kind:gate-defect
难度 2/5 1-3 小时 新手友好度 78/100
InauguralSystems/EigenScript#1825 ·
维护者通常 1 天内回复
-
area:runtime-vm kind:silent-wrong
难度 2/5 1-3 小时 新手友好度 72/100
InauguralSystems/EigenScript#1748 · 1 条评论 ·
维护者通常 1 天内回复
查看 InauguralSystems/EigenScript 的全部 Issue
相似的 Issue
-
Test failure on FreeBSD: #26 unexpected system_clock source可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭low priority rt_lib tests
难度 2/5 1-3 小时 新手友好度 67/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 85/100
-
bug
难度 2/5 1-3 小时 新手友好度 82/100
-
build help wanted new feature
难度 2/5 1-3 小时 新手友好度 85/100
AOMediaCodec/SVT-AV1#2516 · 2 条评论 ·