Fix Pretext island: library functions inside define-library begin block
Root cause: sx_insert_near placed break-lines-greedy, pretext-position-line, pretext-layout-lines OUTSIDE the define-library begin block. The bytecode compiler only compiles forms inside begin as STORE_GLOBAL — forms outside are invisible to the browser VM. Fix: moved all function definitions inside (begin ...) of (define-library). Bytecode now includes all 17 functions (11K compiled, was 9K). Browser load-sxbc: simplified VmSuspended handling — just catch and continue, since STORE_GLOBAL ops already ran before the import OP_PERFORM. sync_vm_to_env copies them to global_env. Island now calls break-lines and pretext-layout-lines from bytecode-compiled library — runs on VM, not CEK interpreter. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1011,18 +1011,21 @@
|
||||
(fn
|
||||
()
|
||||
(let
|
||||
((prop (cond ((= (tp-type) "style") (get (adv!) "value")) ((and (= (tp-val) "my") (= (get (nth tokens (+ p 1)) "type") "style")) (do (adv!) (get (adv!) "value"))) (true (get (adv!) "value")))))
|
||||
(expect-kw! "to")
|
||||
((prop (cond ((= (tp-type) "style") (get (adv!) "value")) ((= (tp-val) "my") (do (adv!) (if (= (tp-type) "style") (get (adv!) "value") (get (adv!) "value")))) (true (get (adv!) "value")))))
|
||||
(let
|
||||
((value (parse-expr)))
|
||||
((from-val (if (match-kw "from") (parse-expr) nil)))
|
||||
(expect-kw! "to")
|
||||
(let
|
||||
((dur (if (match-kw "over") (parse-expr) nil)))
|
||||
((value (parse-expr)))
|
||||
(let
|
||||
((tgt nil))
|
||||
((dur (if (match-kw "over") (parse-expr) nil)))
|
||||
(if
|
||||
dur
|
||||
(list (quote transition) prop value dur tgt)
|
||||
(list (quote transition) prop value tgt))))))))
|
||||
from-val
|
||||
(list (quote transition-from) prop from-val value dur)
|
||||
(if
|
||||
dur
|
||||
(list (quote transition) prop value dur nil)
|
||||
(list (quote transition) prop value nil)))))))))
|
||||
(define
|
||||
parse-repeat-cmd
|
||||
(fn
|
||||
|
||||
Reference in New Issue
Block a user