aboutsummaryrefslogtreecommitdiffstats
path: root/csc/ir2.csc
diff options
context:
space:
mode:
Diffstat (limited to 'csc/ir2.csc')
-rw-r--r--csc/ir2.csc14
1 files changed, 14 insertions, 0 deletions
diff --git a/csc/ir2.csc b/csc/ir2.csc
index 4e4c42e..800d3c0 100644
--- a/csc/ir2.csc
+++ b/csc/ir2.csc
@@ -7,8 +7,10 @@
%globals
%label
%primitive
+ %tail
%variable
*globals*
+ *tail*
apply-arguments
apply-procedure
apply?
@@ -43,6 +45,7 @@
primitive-operation
primitive-results
primitive?
+ tail?
variable-gensym
variable?
@@ -180,6 +183,17 @@
(arguments apply-arguments))
+ ; The tail continuation. Used for the exit point of library init functions,
+ ; and the end of a program.
+ (define-match-record-type <tail>
+ (make-tail)
+ tail?
+ %tail)
+
+
+ (define *tail* (make-tail))
+
+
; A procedure. All closures are allocated in a fix expression. A closure
; does not take a continuation. Instead, the procedure will accept the
; continuation as an argument.