ecl/src/h
Marius Gerbershagen b730412ebc bytecmp: preserve the identity for literal objects
When a literal appears in the file multiple times its identity should be
preserved.

CLHS 3.2.4.4:

> If two literal objects appearing in the source code for a single
> file processed with the file compiler are the identical, the
> corresponding objects in the compiled code must also be the identical.

Previously, every bytecode object created during ext::bc-compile-file
had its own vector of constants making it impossible to satisfy this
constraint. Thus, we change ext::bc-compile-file to use the same
constants vector for all bytecode objects from the same file. The
simplest way to achieve this is to use the same compiler environment
for all of the compilation process and push the read-compile loop
into the si_bc_compile_from_stream function implemented in C.
2020-12-27 19:04:00 +01:00
..
impl fpe: prevent spurious floating point exceptions in WITH_LISP_FPE 2020-10-31 11:36:52 +01:00
bytecodes.h cosmetic: fix some compiler warnings 2020-04-29 20:35:37 +02:00
cache.h The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
config-internal.h.in stacks: fix default C stack size 2020-06-11 15:16:10 +02:00
config.h.in s/TCP/ECL_TCP/ among preprocessor defines 2020-11-22 21:04:16 +00:00
cons.h The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
cs.h The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
ecl-cmp.h cmp: add support for precompiled header files 2020-05-16 18:53:57 +02:00
ecl-inl.h long-float: remove conditionalization 2019-05-24 21:04:59 +00:00
ecl.h ieee-fp: introduce new macro for toggling between Lisp and C fpe 2019-06-30 13:01:06 +02:00
ecl_atomics.h fix header argument names for C++ compilation 2018-11-02 17:31:55 +08:00
external.h bytecmp: preserve the identity for literal objects 2020-12-27 19:04:00 +01:00
internal.h mp: queue: use less cryptic names 2020-06-15 12:34:10 +02:00
legacy.h doc: replace legacy names by their new counterparts 2020-02-22 19:12:43 +01:00
number.h bignums: prevent bignum registers from growing too big 2020-01-04 18:07:41 +01:00
object.h si::mangle-name: return the function name from symbols_list.h 2020-12-23 12:08:33 +01:00
page.h The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
stack-resize.h gc: fix signal handlers for generational garbage collector 2020-05-08 20:57:56 +02:00
stacks.h apply_from_stack_frame: use correct frame base 2019-07-23 18:45:24 +02:00