diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-06-17 21:09:16 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-06-17 21:09:16 -0700 |
commit | 3dcd2869946e25041957e312fc3598a4f4639cf3 (patch) | |
tree | 3b90d86928b455bbb2c77ddfdf7042608d3abadc /mpi-patches/mpi-to-double | |
parent | e10d748899c821a8ceba411fe24745023dae602b (diff) | |
download | txr-3dcd2869946e25041957e312fc3598a4f4639cf3.tar.gz txr-3dcd2869946e25041957e312fc3598a4f4639cf3.tar.bz2 txr-3dcd2869946e25041957e312fc3598a4f4639cf3.zip |
compiler: don't null tregs before closure.
* stdlib/compiler.tl (compiler eliminate-frame): New optional
no-tregs parameter. If true, it disables the generation of
code to null the tregs.
(compiler comp-lambda-impl): Pass t to no-regs parameter of
eliminate-frame to disable the nulling. It is not required
for a lambda which executes which fresh t-registers,
implicitly initialized to nil. The presence of these
instructions prevents the when-match pattern from matching,
which expects the instruction sequence to start with a
close instruction, so that the effect of eliminate-frame
is then lost. This is a latent bug exposed by the previous
commit. We would have seen this previously in a lambda
occurring inside a loop.
Diffstat (limited to 'mpi-patches/mpi-to-double')
0 files changed, 0 insertions, 0 deletions