Skip to content

Commit 0182c88

Browse files
committed
release: publish GC runtime hardening and Python environment fixes in v0.1.22
2 parents 81dec2a + 121f6b3 commit 0182c88

79 files changed

Lines changed: 5318 additions & 841 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-pypi.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,21 @@ jobs:
100100
if: runner.os == 'Linux'
101101
run: |
102102
sudo apt-get update
103-
sudo apt-get install -y build-essential cmake ninja-build
103+
sudo apt-get install -y build-essential clang cmake ninja-build
104+
105+
- name: Select Clang (Linux)
106+
if: runner.os == 'Linux'
107+
run: |
108+
echo "CC=clang" >> "$GITHUB_ENV"
109+
echo "CXX=clang++" >> "$GITHUB_ENV"
110+
111+
- name: Verify Clang (Linux)
112+
if: runner.os == 'Linux'
113+
run: |
114+
clang --version
115+
clang++ --version
116+
ninja --version
117+
cmake --version
104118
105119
- name: Install LLVM, Ninja, CMake (Windows)
106120
if: runner.os == 'Windows'

AGENTS.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
# Agent Development Guide
22

33
This file is the entry point. Read the detailed rules under `agents/` before making changes.
4+
For any branch, merge, rebase, or release task, you must read `agents/branching.md` first and follow it exactly.
5+
In particular, before any `develop` -> `main` release merge, you must confirm the release version, confirm the next development version, and confirm the `changes.log` release-note content with the user.
46

57
## Core Rules
68
- Runtime shell: Windows PowerShell.
79
- Use `;` to chain commands. Do not use `&&`.
810
- Prefer the repo build commands documented below.
9-
- Follow the refactor, test, and commit rules in `agents/refactor.md`, `agents/test.md`, and `agents/commit.md`.
11+
- Follow the refactor, test, commit, and branching rules in `agents/refactor.md`, `agents/test.md`, `agents/commit.md`, and `agents/branching.md`.
12+
- Do not create additional git worktrees unless the user explicitly asks for one.
1013
- When preparing a commit, describe the common purpose of the entire staged set, not just the most recent edit.
1114

1215
## Build And Runtime

agents/branching.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Branching And Merge Rules
2+
3+
This repository uses a strict `main` / `develop` / feature-branch workflow. Follow these rules whenever you perform merges, release preparation, or branch synchronization.
4+
5+
## Core Policy
6+
7+
- Do not develop directly on `main` or `develop`.
8+
- End every release or merge workflow back on a feature branch, not on `main` or `develop`.
9+
- Use merge commits, not fast-forward merges, for both feature integration and release promotion.
10+
11+
## Feature Branch To `develop`
12+
13+
- Merge feature branches into `develop` with `git merge --no-ff`.
14+
- Keep the merge commit explicit.
15+
- After the merge completes, rebase the merged feature branch so it stays synchronized with the updated `develop`.
16+
17+
## `develop` To `main`
18+
19+
- Only merge `develop` into `main` when intentionally releasing a new version.
20+
- Merge `develop` into `main` with `git merge --no-ff`.
21+
- Before merging `develop` into `main`, explicitly ask the user to confirm:
22+
- the release version number to publish now
23+
- the next development version number after release
24+
- The usual version progression is to increment the trailing component by 1, for example `v0.1.22 -> v0.1.23`, but you must still ask the user to confirm.
25+
- Before merging `develop` into `main`, check whether `changes.log` already contains the release notes for the pending release.
26+
- If `changes.log` is missing the release notes, summarize them from the relevant git commit history and prepare a `changes.log` update on `develop`.
27+
- Before committing that `changes.log` update on `develop`, ask the user to confirm that the proposed release-note content is appropriate.
28+
- After the merge commit is created on `main`, immediately create a version tag in the form `vx.x.x`.
29+
30+
## Post-Release Version Bump
31+
32+
After tagging the release on `main`:
33+
34+
1. Switch to `develop`.
35+
2. Rebase `develop`.
36+
3. Run `npm run setver x.x.x`.
37+
4. Run `npm i`.
38+
5. Commit the version bump immediately with:
39+
- `chore: update to version vx.x.x`
40+
41+
## Final Branch State
42+
43+
After the post-release version bump commit on `develop`:
44+
45+
1. Switch back to the active feature branch.
46+
2. Rebase that feature branch.
47+
3. Confirm the working branch is the feature branch before continuing development.
48+
49+
## Practical Constraints For AI Agents
50+
51+
- Never leave the repository on `main` after a release workflow.
52+
- Never leave the repository on `develop` after a release workflow unless the user explicitly says to stop there.
53+
- If a task involves merges or releases, read this file first and follow it exactly.
54+
- Do not guess release version numbers without explicit user confirmation.
55+
- Do not merge `develop` into `main` until both version confirmation and `changes.log` confirmation have been completed with the user.

changes.log

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,90 @@
1+
[0.1.22]
2+
New Features:
3+
- 引入并完善垃圾回收(GC)运行时能力:写屏障、safepoint 约束、外部资源句柄与 GC 观测/验证控制进一步落地。
4+
- 启动路径与运行时分配行为优化,降低初始化阶段的额外预分配开销。
5+
- 补充分支/发布工作流规范文档,明确 feature、develop、main 之间的合并与发布顺序。
6+
7+
Bug Fixes:
8+
- 修复 GC safepoint 周围的 VM 性能回退问题。
9+
- 修复 Python 嵌入运行时的宿主环境继承边界,稳定虚拟环境包复用与测试环境变量覆盖行为。
10+
- 修复 MNIST Python 可视化输出目录缺失导致的结果图保存失败问题。
11+
12+
Technical Notes:
13+
- GC tracing、运行时生命周期、验证计划与 young-copying 相关测试覆盖进一步收敛。
14+
- Python 与 pyplot 模块的嵌入式解释器初始化逻辑统一加强,新增更可控的环境变量隔离策略。
15+
- 测试运行器统一使用 `envs` 字段传递环境变量,GC 计划同步整理。
16+
17+
Others:
18+
- 更新分支规范,要求发布前确认版本号、下一开发版本号以及 `changes.log` 内容。
19+
120
[0.1.21]
21+
New Features:
22+
- 重构测试系统:统一 plan 组织与运行入口,补齐功能、性能与快照验证能力。
23+
- 新增命名空间支持,包括限定导入、命名空间类型构造与更清晰的 GIR DOT 导出。
24+
- 自动求导模块扩展:补全图式 autograd step、softmax cross entropy、embedding、attention 等神经网络算子支持。
25+
26+
Bug Fixes:
27+
- 修复格式化器、GraphViz / GIR 输出、golden snapshot 归一化及 benchmark 样本展示等已知问题。
28+
- 稳定 macro、module、parallel 相关测试运行,并修复 GIR 同步与 DREF 图完整性问题。
29+
- 修复 pre-commit 自动暂存约束与测试验证脚本中的边界问题。
30+
31+
Technical Notes:
32+
- 测试目录重组到按用途分类的新结构,verify 脚本与 timeit 工作流重建。
33+
- GIR DOT 标识、结构类型标注与 trace 输出路径进一步整理。
34+
- 命名空间与 autograd 相关实现跨编译、执行与测试层面完成一轮系统性收敛。
235

336
[0.1.20]
37+
New Features:
38+
- 移除编译期 GIR,转向新的运行时图结构与执行链路,相关模块完成大规模重构。
39+
- Logger 进一步优化,补充 GHA / PyPI 打包与跨平台构建流程支持。
40+
- Linux 下 JIT 性能优化与若干运行时细节能力补齐。
41+
42+
Bug Fixes:
43+
- 修复 Linux 下 JIT 计算错误、NodeVM 尾调用、PORT 节点识别及 duplicate value input 等问题。
44+
- 修复部分 FILL 运行时处理、编译产物组织与若干已知兼容性问题。
45+
46+
Technical Notes:
47+
- 运行时图重写、GIR 运行时对象、direct-call 布局与模块/路由加载机制持续重构。
48+
- 清理旧 GIR API 与历史实现,文件结构、测试目录、打包脚本与 GHA 工作流同步调整。
49+
- 编译告警、日志模块与若干底层实现细节完成一轮系统整理。
450

551
[0.1.19]
52+
New Features:
53+
- 新增装饰器语法并持续完善实现。
54+
- 图生命周期管理、内联图重写遍与 Inline pass 完成一轮较大规模优化。
55+
- JIT 编译策略与适配性继续增强。
56+
57+
Bug Fixes:
58+
- 修复 EXIT 类型 GIR 节点相关适配问题与若干内联 / 生命周期边界问题。
59+
60+
Technical Notes:
61+
- GIR 完成多阶段重构,包含一至三阶段整理与更深一轮结构收敛。
62+
- JIT、Inline 与装饰器实现围绕新 GIR 结构同步适配。
663

764
[0.1.18]
65+
New Features:
66+
- 引入宏调度遍与 CPP 转译遍。
67+
- FastVM 与 JIT 完成一轮重构优化,性能与执行路径进一步增强。
68+
- 新增 Python 模块测试用例,退出码机制优化。
69+
70+
Bug Fixes:
71+
- 修复 JIT 逻辑 bug、编译问题及若干已知问题。
72+
73+
Technical Notes:
74+
- FastVM 调度模型、JIT 优化链路与部分脚本/注释同步整理。
875

976
[0.1.17]
77+
New Features:
78+
- 诊断系统优化,支持节点源码逆映射与语义级源码映射。
79+
- 恢复 TaskFlowVM 与 Tensor 支持,加入运行时配置和线程安全内存分配器改进。
80+
- Profiler、Debugger 与相关接口继续完善。
81+
82+
Bug Fixes:
83+
- 修复 NodeVM、Tensor、诊断与若干运行时已知问题。
84+
85+
Technical Notes:
86+
- NodeVM 功能恢复与优化,模块组织、文档与日志体系进一步整理。
87+
- 执行器、调试器与内存管理相关代码完成一轮系统重构。
1088

1189
[0.1.16]
1290
New Features:
@@ -561,4 +639,4 @@ New Features:
561639
- 项目初始版本,基础前端与工具链搭建。
562640

563641
Others:
564-
- 初始提交与基础结构。
642+
- 初始提交与基础结构。

0 commit comments

Comments
 (0)