Find structure field default value procedures by index, not by name.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 11 Dec 2009 01:54:49 +0000 (20:54 -0500)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 11 Dec 2009 02:20:46 +0000 (21:20 -0500)
commitfc1e7c672026c6ffeeac763163fa6ad030cf4e09
tree50e36d1efe68309131aa09a03f0ec9b4ba3187e2
parente425eee24093e959fceee141c2c1f54423f75ce0
Find structure field default value procedures by index, not by name.

Otherwise, every constructor generated by DEFINE-STRUCTURE performs
lookups by name for every field with a default initializer, every
time you call the constructor.

This is a backward-compatible change, in the sense that .bin and .com
files generated with the old definition of DEFINE-STRUCTURE can still
be loaded into images with the new definition of DEFINE-STRUCTURE and
its corresponding run-time support.  However, .bin and .com files
generated with the new definition cannot be loaded into images with
the old run-time support, which lacks procedures needed by the new
definition for lookup by index.

Note: For the full benefit of this change, run at least a two-stage
build so that the runtime will include the new definition and be
compiled with the new definition.
src/runtime/defstr.scm
src/runtime/record.scm
src/runtime/runtime.pkg