diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2018-04-10 07:03:04 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2018-04-10 07:03:04 -0700 |
commit | 9fdcdb3e6fa4529f6b68f93f9c7b780502243463 (patch) | |
tree | 593bc9ec0d6e76b0eb3b11328b909c27a7ba2def /lisplib.c | |
parent | 9dc1f9c5e0b47127457104f95e84d295e944d1b3 (diff) | |
download | txr-9fdcdb3e6fa4529f6b68f93f9c7b780502243463.tar.gz txr-9fdcdb3e6fa4529f6b68f93f9c7b780502243463.tar.bz2 txr-9fdcdb3e6fa4529f6b68f93f9c7b780502243463.zip |
vm: don't eagerly resolve functions.
* vm.c (vm_make_desc): Do not walk ftab to resolve the
function bindings at VM instantiation time. Just let it be
done late in vm_ftab when a gcall or gapply instruction is
executing. We don't gain anything by doing it early; there
is no error checking or anything. This early resolution causes
the autoload semantics of the standard library modules to
change between interpreted and compiled. When a compiled
module is loaded, it immediately triggers autloads of
everything that it potentially references. This suddenly broke
the build under a newer GNU Make which doesn't sort the files
expanded by $(wildcard ...), causing the library to be
compiled in a different order.
Diffstat (limited to 'lisplib.c')
0 files changed, 0 insertions, 0 deletions