interpreter: minor fixes, changes to the main binary to actually interpret some source code
All checks were successful
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful

This commit is contained in:
2026-03-22 17:23:49 +03:00
parent 040353683f
commit 4792a296d3
4 changed files with 16 additions and 22 deletions

View File

@@ -86,7 +86,7 @@ let resolve_set tbl env sym expr =
If a symbol is accessed in a lambda body, that is fine, since that computation
is delayed, but for top-level forms that are directly executed we must be strict.
The analyze function is strict by default, until it encounters a lambda, at which
This function is strict by default, until it encounters a lambda, at which
point it switches to resolving against all symbols.
global_tbl is a table that contains ALL defined symbols,
tbl is a table that contains symbols defined only until this point.

View File

@@ -66,7 +66,7 @@ let interpret program global_syms =
let count = Compiler.Scope_analysis.SymbolTable.cardinal global_syms in
let globals : runtime_value array = Array.make count Nil in
Ok (interpret_one (Begin program) [] globals)
interpret_one (Begin program) [] globals