diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-10-27 06:26:33 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-10-27 06:26:33 -0700 |
commit | 7ae20049c6279c2dc99ca8de836e427c55e9ae9f (patch) | |
tree | eca9827186f47d168157342883ccc5820c1fca88 /parser.l | |
parent | baad47e4514d8b976669ba71671cc2eccdf2d7e7 (diff) | |
download | txr-7ae20049c6279c2dc99ca8de836e427c55e9ae9f.tar.gz txr-7ae20049c6279c2dc99ca8de836e427c55e9ae9f.tar.bz2 txr-7ae20049c6279c2dc99ca8de836e427c55e9ae9f.zip |
dwim place: multiple accesses, eval order.
* share/txr/stdlib/place.tl (defplace dwim): In updater,
removing unused and redundant gensyms. Engaging unused
oldval-sym as a temporary to hold the result of invoking
(,ogetter-sym), the "getter" for the sequence object place we
are operating on. Both references then refer to this resut
instead of expanding the getter twice. Though getters should
not have side effects, they could be expensive. In simple
setter and deleter, setting up obj-sym similarly. We don't
make multiple accesses to the sequence, but we were evaluating
it in the wrong order w.r.t the index and new-val.
Diffstat (limited to 'parser.l')
0 files changed, 0 insertions, 0 deletions