struct + spec: 类型系统/词法规范收敛 + struct 一等类型(v0.2.8) - #233
Merged
Merged
Conversation
- ast: StructDecl/Field(name:kindexpr + 默认值字面量),File/PkgNode 挂 structs,
sig_string 反序列化(struct X { f:T=..; … })。
- parser:struct 关键字解析进 pkg 树;kindexpr/kvkind 加 structref 形状。
- code.rs:struct 入库(/lib 下 defstruct?待定);Cargo.toml/描述对齐。
未完成 WIP 防护性提交(layout 侧),未跑全量回归。
- builtin_collection:struct·new(type, field...) 解析 struct 原型签名、按字段类型校验实参、 经 kvspaceCpTree 深拷贝原型子树生成 structref 实例(struct 签名/字段类型/默认值语义)。 - builtin.c/kv.c/kindexpr.c/runtime_internal.h:structref kind 路由、CpTree 胶合。 - const.h/builtin_kv.c:相应常量/内建接线。 未完成 WIP 防护性提交(runtime 侧),未跑全量回归。
- 删除旧 extern/wip 的 01-linked-list/02-tree/03-graph(占位),重写: 00-point/01-fields/02-mutate/03-linked-list/04-tree/05-graph/06-list-reverse/07-list-local。 - README_CN:编译期→布局、描述措辞对齐。 未完成 WIP 防护性提交(示例侧),未跑全量回归。
struct WIP 基于 #219 前 master,教程注释仍用 #;rebase 后按现行 // 语法转换。
struct 赋值改浅拷:base + 一层成员(kv·cplist),不走 cpTree 整棵子树深拷—— 成员子树不必整体克隆,一层足够且更快。parser/layout/runtime/runtime-rs 同步。
kvlangKvMkindex 传 cap=0(默认);教程演示预分配容量目录。
- docs/kvlang-ecosystem-architecture.{drawio,png}:从 deepx-design 迁入。
- stdlib/kvlang/reference/:五语言对齐参考材料(c99/go/typescript/rust/python,
含 CPython 源码树、C99 标准 PDF 等),供 layout/runtime 行为对齐查阅。
- stdlib/kvlang/spec/:kvlang 形式化规范(词法/类型/求值,.kv 形态,站点可渲染)。
stdlib/kvlang/reference/(五语言对齐参考:CPython 源码树/C99 PDF 等 8.4MB) 不纳入 git,磁盘保留供本地查阅;spec/docs 仍入库。
- kindexpr ndim:裸类型匹配 ndim 改 `==1`(此前 `>=1` 误收多维)。 - parser:null 报错(空值只有 None);[] 数组匹配细化测试。 - runtime:随 spec(stdlib/kvlang/spec)对齐的语法/类型行为修正。
deepdive/26 篇删除,spec/ 卷(导言/词法/类型/kvspace模型/布局语义/runtime语义/ 设计理由/附录,245 文件)承接为语言规范唯一事实源(spec+issue 驱动)。
spec 从 221 细碎章节文件收敛重组(80+73),按卷(导言/词法/kvspace模型/类型系统/ layout语义/runtime语义/设计理由/附录)整合;语言规范事实源仍在 spec/。
- key/value 存储与交换:字符串默认 utf8(变宽字节序列,禁码点索引)。 - utf32 开放给用户 kv 代码:定宽可索引的工作形态,utf8→utf32 显式转换。 - string 标准库只处理定宽(utf32);utf8 须先转 utf32 再处理。 - 三层面关系小结表。
- 运算符基础:三种→两种(= 写左 / -> 写右),注明「无 <-」历史删除说明。 - 词法单元:Arrow = 两种记号;词法组合规则去 `<-`。 - 全 spec 赋值示例 `x <- e` → `x = e`;stringkeymap/构造器/指令架构/控制流/附录语法同步。 - 指令架构表去重复行、prose 改两种方向。
字符串编码独立章编号到类型系统卷末尾(26-),替代先前无编号文件。
负例用例(error_cases/)提为仓库顶层目录,与 tutorial/(正例)平级,扩展至 79 例。
- site highlight:去 defrwfunc 关键词。 - 10-types 教程:签名说明 defrwfunc → rwfunc(kind 收敛)。 - tutorial/agent_eval.py、benchmark.csv:陈旧产物删除。
questions/ 为早期 README 习题集,已被 tutorial + error_cases 覆盖;error_test.py/ issue116_exp.py 为早期独立测试脚本,并入统一 test.py 后删除。
cond 求值统一经 int 判非零;删 kvlangXvalueAsBool 辅助。
miaobyte
had a problem deploying
to
github-pages
September 7, 2026 06:52 — with
GitHub Actions
Failure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
199-struct 累积的 v0.2.8 内容:struct 一等类型、spec 卷(类型系统/词法/布局/runtime)、defrwfunc kind 移除、error_cases 重组、<-- 删除(spec)。\n\n关联 #199