summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-05-08 11:16:45 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-05-08 11:16:45 -0700
commit1d5bfd6ebd47444034478bdce836946085ca1367 (patch)
tree819c492da86117960837eff2322e9f8ffc41573a /lib.c
parent7025b2c547d3611301e3e6fde8422aaba2acfd3f (diff)
downloadtxr-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.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index e9f4b630..ad83e91a 100644
--- a/lib.c
+++ b/lib.c
@@ -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;
}