abort always dispatches to VM bytecode, to detect same-invocation aborts
[bpt/guile.git] / module / language / tree-il / primitives.scm
index f5320db..43e53f4 100644 (file)
@@ -63,7 +63,7 @@
 
     fluid-ref fluid-set!
 
-    @prompt prompt abort
+    @prompt prompt @abort abort
 
     struct? struct-vtable make-struct struct-ref struct-set!
 
                 (else #f)))
               (else #f)))
 
+(hashq-set! *primitive-expand-table*
+            '@abort
+            (case-lambda
+              ((src tag tail-args)
+               (make-abort src tag '() tail-args))
+              (else #f)))
 (hashq-set! *primitive-expand-table*
             'abort
             (case-lambda
               ((src tag . args)
-               (make-abort src tag args))
+               (make-abort src tag args (make-const #f '())))
               (else #f)))