summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-09-10 07:08:07 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-09-10 07:08:07 -0700
commitcbf8c45bc7e737a849b62d4c2283aae11a3010e1 (patch)
tree80327ad951250d5966c4480b8fbb38baa8e5129e /eval.c
parente046e1890f4655478a99fa7c1cb078eefdc54e00 (diff)
downloadtxr-cbf8c45bc7e737a849b62d4c2283aae11a3010e1.tar.gz
txr-cbf8c45bc7e737a849b62d4c2283aae11a3010e1.tar.bz2
txr-cbf8c45bc7e737a849b62d4c2283aae11a3010e1.zip
Don't scan C source code for Lisp symbols.
* eval.c (eval_init): Register package-alist, package-name and package-symbols intrinsics. * genvim.txr: Rather than scanning C sources for TXR Lisp symbols, iterate over the packages and their symbols, collecting anything which has a binding or is self-evaluating. To get the stdlib symbols, we trigger the autoloads by doing boundp queries on a few symbols. * txr.1: Document package-alist, package-name and package-symbols.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index dda00b49..ca4f1001 100644
--- a/eval.c
+++ b/eval.c
@@ -4441,6 +4441,9 @@ void eval_init(void)
reg_fun(intern(lit("make-package"), user_package), func_n1(make_package));
reg_fun(intern(lit("find-package"), user_package), func_n1(find_package));
reg_fun(intern(lit("delete-package"), user_package), func_n1(delete_package));
+ reg_fun(intern(lit("package-alist"), user_package), func_n0(package_alist));
+ reg_fun(intern(lit("package-name"), user_package), func_n1(package_name));
+ reg_fun(intern(lit("package-symbols"), user_package), func_n1(package_symbols));
reg_fun(intern(lit("intern"), user_package), func_n2o(intern, 1));
reg_fun(intern(lit("rehome-sym"), user_package), func_n2o(rehome_sym, 1));
reg_fun(intern(lit("symbolp"), user_package), func_n1(symbolp));