wingo pushed a commit to branch wip-tailify
in repository guile.

commit a5d66b6d6f5802c734129de23ec926f847ffefe6
Author: Andy Wingo <wi...@pobox.com>
AuthorDate: Mon Jul 10 11:28:07 2023 +0200

    Fix prompt tailification
    
    * module/language/cps/hoot/tailify.scm (tailify-tail): Fix control flow
    when pushing a prompt.
    (compute-tails): Prompt handlers are in the initial split set.
---
 module/language/cps/hoot/tailify.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/module/language/cps/hoot/tailify.scm 
b/module/language/cps/hoot/tailify.scm
index f45e66e2a..6888019ed 100644
--- a/module/language/cps/hoot/tailify.scm
+++ b/module/language/cps/hoot/tailify.scm
@@ -279,7 +279,7 @@ be rewritten to continue to the tail's ktail."
                                         ((rename-var tag) handler)))))
              (letk kcode ($kargs () ()
                            ($continue kpush src ($code (intmap-ref entries 
kh)))))
-             (build-term ($continue kpush src
+             (build-term ($continue kcode src
                            ($primcall 'save reprs vars)))))))
       (($ $throw src op param args)
        (with-cps cps
@@ -524,6 +524,8 @@ body, as an intset."
        (match (intmap-ref cps k)
          (($ $ktail) splits)
          ((or ($ $kargs) ($ $kreceive)) (intmap-add splits k k))))
+      (($ $kargs names vars ($ $prompt k kh src escape? tag))
+       (intmap-add splits kh kh))
       (_
        splits)))
   ;; Then we build tails by propagating splits forward in the CFG,

Reply via email to