diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-02-03 06:14:26 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-02-03 06:14:26 -0800 |
commit | 5156121fbb22725907e248daca1b780eeac1ab82 (patch) | |
tree | 4736787ad49eb62591b61b5a23dd5eadf55d1774 /stream.h | |
parent | bae1a8b8d040c42df63436b60cd7d751abca9a76 (diff) | |
download | txr-5156121fbb22725907e248daca1b780eeac1ab82.tar.gz txr-5156121fbb22725907e248daca1b780eeac1ab82.tar.bz2 txr-5156121fbb22725907e248daca1b780eeac1ab82.zip |
Remove sys:*lisp1* hack from place expansion.
Instead of using a special variable hack to pass down the
request to treat a form as Lisp-1 if it happens to be a
symbol, we now wrap the form in ^(sys:l1-val ,form). We
define sys:l1-val as a place. In the case when form is a
symbol with no lexical binding, requiring the special Lisp-1
treatment, sys:l1-val produces ^(sys:lisp1-value, form).
We define that as a place also, and that takes care of
everything.
* share/txr/stdlib/place.tl (sys:*lisp1*): Special variable
removed.
(sys:sym-update-expander, sys:sym-clobber-expander): Do not
test sys:*lisp1*; just produce a sys:setq form for updating a
symbolic place.
(call-update-expander, call-clobber-expander,
call-delete-expander): Drop the bugfix in the previous commit:
re-binding of sys:*lisp1* to nil
(defplace sys:l1-val, defplace sys:lisp1-value): New places.
(defplace dwim): Do not bind sys:*lisp1*. Wrap obj-place
in a sys:l1-val form, thereby annotating it so that it
receives the right sort of place expander.
Diffstat (limited to 'stream.h')
0 files changed, 0 insertions, 0 deletions