wip(0.S3): the runtime migrated - ludic migrate state --runtime <every program>: 331 vars into 25 states (RtInputState, RtGlState, ...), 2 lets; its states are made before it boots; no module-level var is let through outside --globals
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
7b17b4a1b9
commit
02448e176c
38 changed files with 53877 additions and 53251 deletions
|
|
@ -53,6 +53,15 @@ function ns_alias_labels(i: int) -> []pointer {
|
|||
if d != null { return param_labels(d) }
|
||||
return out
|
||||
}
|
||||
# 0.S: a target's leading states come first, by their own names (they are supplied, not written)
|
||||
let t = find_fn(g_al_target[i])
|
||||
if t != null {
|
||||
var k = 0
|
||||
while k < len(t.kids) and t.kids[k].kind == N_PARAM and is_state_ty(t.kids[k].ty) {
|
||||
push(out, t.kids[k].s)
|
||||
k += 1
|
||||
}
|
||||
}
|
||||
var a = 0
|
||||
var j = 0
|
||||
let n = len(ls)
|
||||
|
|
|
|||
|
|
@ -1027,7 +1027,7 @@ function parse_one_decl() -> void {
|
|||
if is_id("component") and (toks[pi + 1].kind == TK_ID) and (toks[pi + 2].text == "{") { parse_ui_component(); return } # L11
|
||||
if is_id("state") and (toks[pi + 1].kind == TK_ID) and (toks[pi + 2].text == "{") { parse_state(); return } # 0.S
|
||||
if is_id("var") {
|
||||
if not g_allow_globals and not has_sub(g_parse_file, "runtime/native/") { # the runtime: until it is migrated (0.S3)
|
||||
if not g_allow_globals {
|
||||
perr(`a module-level var is refused: a module's changing data is its state (state Name {{ ... }}), passed to the functions that use it - or, if it never changes, a let`)
|
||||
}
|
||||
push(prog, parse_var())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue