diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-11-16 05:32:47 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-11-16 05:32:47 -0800 |
commit | cf0ac2826bc7dc06d3c63e956ec8922a358f4f80 (patch) | |
tree | 50063036810b493a2bca9d5892ea992f02d82360 /lib.h | |
parent | 704664e60d7d548d9ce5c44b34d0d2b60db1e31c (diff) | |
download | txr-cf0ac2826bc7dc06d3c63e956ec8922a358f4f80.tar.gz txr-cf0ac2826bc7dc06d3c63e956ec8922a358f4f80.tar.bz2 txr-cf0ac2826bc7dc06d3c63e956ec8922a358f4f80.zip |
Start of fallback package list implementation.
* eval.c (eval_init): Register package-fallback-list and
set-package-fallback-list intrinsics.
* lib.c (package_fallback_list, set_package_fallback_list,
intern_fallback): New functions
* lib.h (package_fallback_list, set_package_fallback_list,
intern_fallback): Declared.
* parser.y (sym_helper): Slightly restructure function
so that the symbol interning is done separately in
the various cases. In the unqualified symbol case,
use intern_fallback to search the fallback list
of the current package.
* share/txr/stdlib/package.tl (defpackage): Implement
:fallback clause.
Diffstat (limited to 'lib.h')
-rw-r--r-- | lib.h | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -785,7 +785,6 @@ val package_alist(void); val package_name(val package); val package_symbols(val package); val package_local_symbols(val package); -val package_foreign_symbols(val package); val use_sym(val use_list, val package); val unuse_sym(val symbol, val package); val use_package(val use_list, val package); @@ -793,6 +792,10 @@ val unuse_package(val unuse_list, val package); val intern(val str, val package); val unintern(val sym, val package); val rehome_sym(val sym, val package); +val package_foreign_symbols(val package); +val package_fallback_list(val package); +val set_package_fallback_list(val package, val list); +val intern_fallback(val str, val package); val symbolp(val sym); val symbol_name(val sym); val symbol_package(val sym); |