diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-04-05 07:14:01 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-04-05 07:14:01 -0700 |
commit | 06ce08dc2c0d2db522c5f6293cf9a28c2c22d24a (patch) | |
tree | 665d03c406d1990e98787c78d894d25832b1e1bc /share | |
parent | 7f639b761bfd44c6a07b8417007e1cb8a3a2856c (diff) | |
download | txr-06ce08dc2c0d2db522c5f6293cf9a28c2c22d24a.tar.gz txr-06ce08dc2c0d2db522c5f6293cf9a28c2c22d24a.tar.bz2 txr-06ce08dc2c0d2db522c5f6293cf9a28c2c22d24a.zip |
tagbody: code replication bug.
tagbody translates to a loop around a sys:switch special form.
The compiler recognizes substructure sharing among the
branches of the the sys:switch code and de-duplicates the
generated assembly code accordingly. Unfortunately, the
expander for sys:switch has a bug which spoils the
substructure sharing.
* eval.c (expand_forms_ss): We must process the incoming form
list itself into the hash, not just that list's cdr.
Onthe other hand, there is no need to hash the cars of the
forms list (the forms themselves), so the code simplifies
quite a bit.
Diffstat (limited to 'share')
0 files changed, 0 insertions, 0 deletions