diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-05-08 11:16:45 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-05-08 11:16:45 -0700 |
commit | 1d5bfd6ebd47444034478bdce836946085ca1367 (patch) | |
tree | 819c492da86117960837eff2322e9f8ffc41573a /lib.c | |
parent | 7025b2c547d3611301e3e6fde8422aaba2acfd3f (diff) | |
download | txr-1d5bfd6ebd47444034478bdce836946085ca1367.tar.gz txr-1d5bfd6ebd47444034478bdce836946085ca1367.tar.bz2 txr-1d5bfd6ebd47444034478bdce836946085ca1367.zip |
Crack down on redefinitions of built-ins.
* eval.c (builtin, eval_initing): New global variable.
(op_defun, op_defmacro): During initialization, record functions
and macros in builtin hash.
(builtin_reject_test): New static function.
(expand_macrolet): Perform builtin reject test for fbind, lbind,
and macrolet.
(regfun, reg_mac): Add symbol to builtin hash.
(eval_init): GC-protect new hash table variable and initialize it.
Set eval_initing to true over eval initialization.
The flip function is renamed fo flipargs.
(eval_compat_fixup): New function, for dealing with the
operator/function conflict over flip.
* eval.h (eval_compat_fixup): Declared.
* lib.c (compat_fixup): Call eval_compat_fixup.
* tests/011/macros-2.txr: This test was defining a macro called
while which is now illegal. Renamed to whilst.
* tests/011/macros-2.expected: Regenerated.
* txr.1: Function flip renamed to flipargs and documented in
Compatibility section.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -7334,6 +7334,7 @@ int compat_fixup(int compat_ver) symbol_setname(process_error_s, lit("process_error")); } + eval_compat_fixup(compat_ver); return 0; } |