From 120fff7edbc81eac6272a9e9bfc7a23d3eb94f55 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 23 Mar 2018 07:52:13 -0700 Subject: compiler: constant-optimize prog1 * share/txr/stdlib/compiler.tl (compiler comp-prog1): prog1 already uses progn. When using progn, though, it should append the nil form to the tail, otherwise progn will spare the last from from being eliminated, leaving an unused constant in the data table. --- share/txr/stdlib/compiler.tl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'share') diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl index 573d4e37..0a473a74 100644 --- a/share/txr/stdlib/compiler.tl +++ b/share/txr/stdlib/compiler.tl @@ -568,7 +568,8 @@ (tree-case form ((prog1 fi . re) (let* ((igreg me.(alloc-treg)) (fi-frag me.(compile oreg env fi)) - (re-frag me.(comp-progn igreg env re))) + (re-frag me.(comp-progn igreg env + (append re '(nil))))) me.(free-treg igreg) (new (frag fi-frag.oreg (append fi-frag.code re-frag.code) -- cgit v1.2.3