1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 03:30:27 +02:00
guile/module/system/il
Andy Wingo 8e3670748f rework late binding resolution to be simpler and more efficient
* libguile/programs.h (struct scm_program):
* libguile/programs.c (scm_c_make_program): Record the current module
  when making a program. This replaces the per-late binding recorded
  module in the generated code, which should be more efficient, both in
  terms of garbage, and in not calling resolve-module.
  (program-module): New accessor.

* module/system/vm/program.scm: Add program-module to exports.

* libguile/vm-i-loader.c (link-later): Remove this instruction, since now
  the entry in the object table is just a symbol, and can be loaded with
  load-symbol.

* libguile/vm-i-system.c (late-variable-ref, late-variable-set): Rework
  so as to look up in the module of the current program. The logic could
  be condensed quite a bit if scm_module_lookup () knew what to do with
  mod==#f.

* module/system/vm/assemble.scm (dump-object!): Dump <vlink-later> just
  as load-symbol, as mentioned in the note on link-later.

* module/system/il/ghil.scm: Update comment to reflect the new reality.
2008-09-09 07:15:01 +02:00
..
.cvsignore *** empty log message *** 2001-04-22 02:13:48 +00:00
compile.scm use #:keywords in module/*.scm, not :keywords 2008-09-09 06:58:25 +02:00
ghil.scm rework late binding resolution to be simpler and more efficient 2008-09-09 07:15:01 +02:00
glil.scm use #:keywords in module/*.scm, not :keywords 2008-09-09 06:58:25 +02:00
inline.scm use #:keywords in module/*.scm, not :keywords 2008-09-09 06:58:25 +02:00
Makefile.am module compilation fixen, post-integration 2008-08-25 13:05:16 -07:00