🐛 fix(tsl-syntax-reference): close verified syntax gaps

This commit is contained in:
csh
2026-08-13 14:49:43 +08:00
parent ede9287d5f
commit 8315f1060a
17 changed files with 619 additions and 96 deletions
@@ -6,7 +6,7 @@
<!-- section-id: syntax-14-001 -->
回答“`goto``debugReturn``debugRunEnv``mtic` / `mtoc``setProfiler``__line__``__stack_frame` 怎样写、会怎样表现”。
回答“`goto``debugReturn``debugRunEnv``mtic` / `mtoc``setProfiler`内存伪变量、`__line__``__stack_frame` 怎样写、会怎样表现”。
## 核心规则
@@ -24,6 +24,7 @@
- `setProfiler(7)` 配合 `getProfilerInfo(1)`,可以在不弹窗的情况下拿到性能分析器信息。
- `__line__` 会返回所在代码行号。
- `__stack_frame` 会返回调用栈帧数组;最小 `toStn(...)` 观察结果里,每一项是 `(line, "function")` 这一类二元组。
- `_myMem_` 表示应用当前已使用内存,`_maxMem_` 表示应用允许使用的最大内存;两者是只读数值伪变量。单位和 `_maxMem_` 的具体取值由宿主环境决定。
## 可直接照写示例
@@ -217,6 +218,32 @@ writeLn(length(info) > 0);
- 说明 `setProfiler(7)` 可以开启性能分析器统计
- 说明 `getProfilerInfo(1)` 会直接返回性能分析器信息,而且结果是非空数组
### 内存伪变量 `_myMem_` / `_maxMem_`
<!-- section-id: syntax-14-011 -->
<!-- tags: 已用内存, 内存上限, 最大内存, 内存伪变量, _myMem_, _maxMem_ -->
代码块身份:可直接照写示例
```tsl
writeLn(ifNumber(_myMem_));
writeLn(ifNumber(_maxMem_));
```
代码块身份:输出片段
```text
1
1
```
说明:
- `_myMem_` 是应用已使用内存的数值
- `_maxMem_` 是宿主允许应用使用的最大内存数值;某些环境可能返回 `0` 表示未给出可比较的上限
- 不要假设 `_maxMem_ >= _myMem_`,也不要在没有宿主文档时写死单位
### `__line__` 与 `__stack_frame`
<!-- section-id: syntax-14-009 -->
@@ -276,3 +303,4 @@ array(
- 不要假设 `goto` 可以跨函数、跨脚本体或跳到单独成行的 `label`
- 不要给计时或性能分析器调用补未写入文档参数。
- 不要把调试客户端副作用写成普通输出事实。
- 不要假定 `_maxMem_` 总是非零、总是大于 `_myMem_`,或擅自指定内存单位。