summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-02-03 06:14:26 -0800
committerKaz Kylheku <kaz@kylheku.com>2017-02-03 06:14:26 -0800
commit5156121fbb22725907e248daca1b780eeac1ab82 (patch)
tree4736787ad49eb62591b61b5a23dd5eadf55d1774 /eval.c
parentbae1a8b8d040c42df63436b60cd7d751abca9a76 (diff)
downloadtxr-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 'eval.c')
0 files changed, 0 insertions, 0 deletions