Let a use_cfgs entry pin its own tool
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 68/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- python
- 领域
- build-system
调研方向
首先沿着 flow/base.py 中的 create_instance 和 _load_child_cfg,跟踪到 flow/factory.py 中的工厂闭包,然后检查 flow/hjson.py 中的 _CMDLINE_FIELDS。添加按子项处理工具的逻辑,同时保留命令行优先级并拒绝其他 override 键;然后添加一个加载回归测试,展示独立的 xcelium 和 vcformal 子项使用各自的工具设置和 scratch 路径。
由索引模型根据 Issue 内容生成。
描述
Part of lowRISC/dvplan#129.
Running a simulation regression under Xcelium and a formal regression under VC Formal in one invocation is a requirement for the bundle work, and it cannot be expressed today.
tool is the one key a config cannot set for itself once the command line gives it, by way of _CMDLINE_FIELDS in flow/hjson.py. Scalar merging is first-non-default-wins and raises on a genuine conflict, so a config setting tool: vcformal while importing OpenTitan's common_formal_cfg.hjson, which pins tool: jaspergold, fails to load with a conflicting-value error. The only way to select VC Formal is --tool vcformal on the command line, which applies to every config in the invocation.
Scope
- Let a
use_cfgsentry carry atool, seeded into that child'sinitial_values. Becausearg_keysis computed from the keys present ininitial_values, a seeded value wins over every imported file, which is exactly the mechanism--toolalready uses. No changes needed in any OpenTitan or Mocha config. create_instanceand_load_child_cfginflow/base.pytake the per-child overrides, and the factory closure inflow/factory.pyapplies them.--toolon the command line keeps overriding everything, since that is what it is for.- Reject an override for a key other than
toolfor now, so this does not quietly become a general-purpose per-child config channel. That belongs with #36.
Done when
- A primary config with one child pinned to
xceliumand another pinned tovcformalloads, and each child's scratch path and tool config come from its own tool. - A test covers the load, since the failure mode today is a
RuntimeErrorfrom config merging and is easy to reintroduce.
- 主要语言
- Python
- 星标
- 15
- 派生
- 22
- 平均合并
- 4 天 3 小时
- 30 天内合并 PR
- 7
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
lowRISC/dvsim 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 84/100
-
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 4/5 3-5 天 新手友好度 35/100
-
Better log visibility on the license type usage profile可能已有人在做 @AlexJones0 于 16 天前认领。 未关闭
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 88/100
-
难度 2/5 1-3 小时 新手友好度 72/100
aws-samples/sample-per-model-bedrock#261 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
pwncollege/dojo#1188 ·
维护者通常 1 天内回复
-
bug launcher packaging
难度 1/5 1 小时以内 新手友好度 88/100
tenstorrent/tt-studio#1426 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
python-attrs/cattrs#796 ·
维护者通常 1 天内回复