Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions stdlib/kvlang/spec/02-kvspace模型/10-系统变量.kv
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,10 @@ runtime 按 `‥wdst` 把 `[0,+k]` **复制回**目标。地址写参(声明

## `debugger()`

`debugger()` 内建对齐 V8/TypeScript 的 `debugger;` 语句:源码内联暂停点。非调试模式下为 no-op;调试
模式下将 `‥status` 置 `paused`,由外部驱动改回 `running` 恢复执行——**暂停能力就是 `‥status=paused`**
(`debugger()` ≡ `vthread·setstatus("paused")`),**不会另设** `‥debugger` 之类的独立系统变量。
`debugger()` 内建对齐 V8/TypeScript 的 `debugger;` 语句:源码内联暂停点。runtime **不存在**调试模式与
非调试模式之分——`debugger()` **恒**将 `‥status` 置 `paused`,由外部驱动改回 `running` 恢复执行——**暂停
能力就是 `‥status=paused`**(`debugger()` ≡ `vthread·setstatus("paused")`),**不会另设** `‥debugger`
之类的独立系统变量。

## 域与变量之别

Expand Down
2 changes: 1 addition & 1 deletion stdlib/kvlang/spec/05-runtime语义/02-执行模型-续.kv
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,6 @@ kvlang **没有独立调试器进程,也没有 `--debug` 开关**。调试模
`[s0,s1]` 槽位,是核对 layout 结果与坐标 bug 的透视镜。
- **恢复**:`kvspace set /vthread/<vid>/‥status running` 后 `kvlang run <vid>` 从持久化 `‥pc` 续跑。

锚例:`tutorial/09-debugger/`(`breakpoint.kv`、`fib.kv`、`sum_to.kv`、`chain_array.kv`)。
锚例:`tutorial/09-debugger/`(`breakpoint.kv`、`sum_to.kv`、`chain_array.kv`)。
"#### -> /lib/kvlang/spec/runtime语义/执行模型_续
}
2 changes: 1 addition & 1 deletion stdlib/kvlang/spec/附录/07-内建函数.kv
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ builtin_call = ( "abs" | "neg" | "sign" | "pow" | "sqrt" | "exp" | "log"
(* 类型构造器兼转换:int8(x)/float32(x)/char/utf8(x)/bool(x) …;窄化按补码回绕,float→int 向零截断 *)
(* 数值运算保宽(fix-034):同宽→同宽(溢出回绕)、混宽→提升再窄化回结果 kind *)
(* print 系(ext):print 无空格拼接不换行;println 空格分隔加换行 *)
(* debugger(): 内联暂停,非调试模式 no-op *)
(* debugger(): 内联暂停,恒 ≡ vthread·setstatus("paused");无调试/非调试模式之分 *)
(* ÷ : 两侧 int → 整除(C 风格);任一侧 float → 浮除 *)
(* s[i] 读返单字符字符串,越界返 "";s[i]="X" 单字符替换写回新串 *)
(* + 作用在 string∧string → 拼接 *)
Expand Down
12 changes: 12 additions & 0 deletions tutorial/04-ndarray/array_append.kv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// array_append: 向数组追加元素
// 规范依据: 02-kvspace模型/07-数组两种物理形态 —— array·append 作用于 compact 时
// 先自动 scatter,即 compact 数组必须能直接 append
// 语义: compact [1,2,3] 追加 4 后应有 4 个元素
// 期望输出:
// 4
rwfunc test() -> () {
a:[]int64 = [1, 2, 3]
array·append(a, 4) -> a
ndarray·numel(a) -> n
println(n)
}
12 changes: 12 additions & 0 deletions tutorial/04-ndarray/array_slice.kv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// array_slice: 数组切片 [lo,hi)(原地语义:写槽即源)
// 规范依据: 02-kvspace模型/07-数组两种物理形态 —— array·slice 作用于 compact 时
// 先自动 scatter,即 compact 数组必须能直接 slice
// 语义: compact [1,2,3,4,5] 取 [1:3) 后应有 2 个元素
// 期望输出:
// 2
rwfunc test() -> () {
a:[]int64 = [1, 2, 3, 4, 5]
array·slice(a, 1, 3) -> a
ndarray·numel(a) -> n
println(n)
}
11 changes: 11 additions & 0 deletions tutorial/09-debugger/pauses.kv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// pauses: debugger() 恒等价于 vthread·setstatus("paused")
// 规范依据: 05-runtime语义/05-runtimec内建 §调试;02-kvspace模型/10-系统变量 §debugger()
// 语义: runtime 无调试/非调试模式之分 —— debugger() 恒置 ‥status=paused 并停止执行,
// 其后的指令不运行(须由外部驱动改回 running 才恢复)
// 期望输出:
// before
rwfunc test() -> () {
println("before")
debugger()
println("after")
}
11 changes: 11 additions & 0 deletions tutorial/13-stdlib/duration/sub.kv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// sub: 两 duration 相减(time/duration·sub 由 05-runtime语义/05-runtimec内建 权威列出)
// 语义: 5h - 3h = 2h。sub 与 add 是同族对称算子,实现须按 opcode 区分减法
// 期望输出:
// 2
rwfunc test() -> () {
time/duration·hours(5) -> a
time/duration·hours(3) -> b
time/duration·sub(a, b) -> c
time/duration·as_hours(c) -> n
println(n)
}
Loading