Commit Graph

5 Commits

Author SHA1 Message Date
Jan Nieuwenhuizen c5ac616743
boot-6: Support Guile modules.
* src/hash.c (hashq_get_handle_): Remove default "dflt" parameter.
(hashq_ref_): Update user.
* src/module.c (module_handle, module_variable, current_module,
module_defines): New functions.
* src/variable.c (lookup_variable): Rename to ...
(lookup_handle): ...this.  Implement module lookup.
(lookup_variable_): Rename to ...
(lookup_ref_); ...this.
(handle_set_x): New function.
* include/mes/builtins.h: Update prototypes.
* src/core.c (error): Update users.
* src/eval-apply.c (set_x, macro_get_handle, expand_variable_,
eval_apply): Likewise.
2020-12-30 16:00:42 +01:00
Jan Nieuwenhuizen 52ead09bc4
core: Refactor lookup_variable.
* src/variable.c (lookup_variable, lookup_variable_, lookup_ref): Drop
lookup/env parameter.  Update users.
* mes/module/mes/boot-0.scm (defined?): Update users.
* mes/module/mes/boot-00.scm (defined?): Likewise.
* mes/module/mes/boot-01.scm (defined?): Likewise.
* mes/module/mes/boot-02.scm (defined?): Likewise.
* mes/module/mes/boot-03.scm (defined?): Likewise.
* scaffold/boot/53-closure-display.scm (guile): Likewise.
* scaffold/boot/60-let-syntax-expanded.scm (defined?): Likewise.
* src/builtins.c (mes_builtins): Update registration.
* include/mes/builtins.h: Update declarations.
* include/mes/mes.h: Likewise.
* mes/module/mes/display.mes (display): Update variable display.
2020-12-30 16:00:41 +01:00
Jan Nieuwenhuizen 6d3b47ee75
core: Remove make_module_type, module_printer, module_variable, module_ref.
* src/module.c (make_module_type, module_printer, module_variable,
module_ref): Remove.
* include/mes/builtins.h: Remove declarations.
* src/builtins.c (mes_builtins): Remove registrations.
* src/eval-apply.c (assert_defined): Remove.
(set_env_x, eval_apply): Use lookup_variable and variable_ref.
* src/core.c (error): Likewise.
* mes/module/mes/boot-01.scm (defined?): Likewise.
* mes/module/mes/boot-02.scm (defined?): Likewise.
* mes/module/mes/boot-03.scm (defined?): Likewise.
* mes/module/mes/boot-0.scm (defined?): Likewise.
* scaffold/boot/53-closure-display.scm (guile): Likewise.
* scaffold/boot/60-let-syntax-expanded.scm (defined?): Likewise.
* src/mes.c (main): Use hash_table_printer for debugging.
2020-12-30 16:00:41 +01:00
Jan Nieuwenhuizen 2ef764aab9
core: Add lookup_variable_, lookup_variable, lookup_ref.
* src/variable.c (lookup_variable, lookup_ref): New builtins, and
(lookup_variable_): New function.
* include/mes/builtins.h: Declare them.
* include/mes/mes.h: Declare it.
* src/builtins.c (mes_builtins): Register them.
2020-12-30 16:00:41 +01:00
Jan Nieuwenhuizen 20c41fe2cb
core: variable: Guile interface compliance.
* src/lib.c (assert_variable):
* src/gc.c (make_variable): Move from
* src/eval-apply.c (make_variable): here; Remove.
* include/mes/builtins.h: Update.
* src/builtins.c (mes_builtins): Update.
* mes/module/mes/scm.mes (make-undefined-variable): New function.
* src/variable.c: New file.
* build-aux/configure-lib.sh (mes_SOURCES): Add it.
* kaem.run: Likewise.
* simple.make (LIBMES_SOURCES): Likewise.
* build-aux/snarf.sh (srcdest): Likewise.
2020-12-30 16:00:39 +01:00