syntax-length removed in favor of escape

This commit is contained in:
ESL 2024-07-31 16:31:44 -04:00
parent 0e4031ac6e
commit 6189cd0957
7 changed files with 107 additions and 110 deletions

9
i.c
View file

@ -4002,6 +4002,15 @@ define_instruction(heapsz) {
gonexti(); gonexti();
} }
define_instruction(flimmp) {
#ifdef NAN_BOXING
ac = bool_obj(1);
#else
ac = bool_obj(0);
#endif
gonexti();
}
define_instruction(dirsep) { define_instruction(dirsep) {
extern int dirsep; extern int dirsep;
ac = char_obj(dirsep); ac = char_obj(dirsep);

1
i.h
View file

@ -530,6 +530,7 @@ declare_instruction(gc, "Zg", 0, "%gc",
declare_instruction(gccnt, "Zc", 0, "%gc-count", '0', AUTOGL) declare_instruction(gccnt, "Zc", 0, "%gc-count", '0', AUTOGL)
declare_instruction(bumpcnt, "Zb", 0, "%bump-count", '0', AUTOGL) declare_instruction(bumpcnt, "Zb", 0, "%bump-count", '0', AUTOGL)
declare_instruction(heapsz, "Zh", 0, "%heap-size", '0', AUTOGL) declare_instruction(heapsz, "Zh", 0, "%heap-size", '0', AUTOGL)
declare_instruction(flimmp, "Zf", 0, "%flonums-immediate?", '0', AUTOGL)
declare_instruction(dirsep, "Zs", 0, "directory-separator", '0', AUTOGL) declare_instruction(dirsep, "Zs", 0, "directory-separator", '0', AUTOGL)
/* serialization, deserialization, compilation-related instructions */ /* serialization, deserialization, compilation-related instructions */

View file

@ -310,7 +310,7 @@
(new-record-type 'rtn '(f ...))) (new-record-type 'rtn '(f ...)))
(define consn (define consn
(lambda (id ...) (lambda (id ...)
(let ([r (make-record rtn (syntax-length (f ...)))]) (let ([r (make-record rtn (... length (f ...)))])
(%drt-init r (id ...) ([f i] ...) ())))) (%drt-init r (id ...) ([f i] ...) ()))))
(define predn (define predn
(lambda (obj) (record? obj rtn))) (lambda (obj) (record? obj rtn)))
@ -322,14 +322,14 @@
...)] ...)]
[(_ rtn cf* predn ([fn accn] fam ...) (fi ...) (ai ...) (mi ...)) [(_ rtn cf* predn ([fn accn] fam ...) (fi ...) (ai ...) (mi ...))
(%drt-unroll rtn cf* predn (fam ...) (%drt-unroll rtn cf* predn (fam ...)
(fi ... [fn (syntax-length (fi ...))]) (fi ... [fn (... length (fi ...))])
(ai ... [accn (syntax-length (fi ...))]) (ai ... [accn (... length (fi ...))])
(mi ...))] (mi ...))]
[(_ rtn cf* predn ([fn accn modn] fam ...) (fi ...) (ai ...) (mi ...)) [(_ rtn cf* predn ([fn accn modn] fam ...) (fi ...) (ai ...) (mi ...))
(%drt-unroll rtn cf* predn (fam ...) (%drt-unroll rtn cf* predn (fam ...)
(fi ... [fn (syntax-length (fi ...))]) (fi ... [fn (... length (fi ...))])
(ai ... [accn (syntax-length (fi ...))]) (ai ... [accn (... length (fi ...))])
(mi ... [modn (syntax-length (fi ...))]))])) (mi ... [modn (... length (fi ...))]))]))
(define-syntax define-record-type (define-syntax define-record-type
(syntax-rules () (syntax-rules ()

View file

@ -27,12 +27,12 @@
(cons 'define-syntax 'define-syntax) (cons 'define-syntax 'define-syntax)
(cons 'syntax-lambda 'syntax-lambda) (cons 'syntax-lambda 'syntax-lambda)
(cons 'syntax-rules 'syntax-rules) (cons 'syntax-rules 'syntax-rules)
(cons 'syntax-length 'syntax-length)
(cons 'syntax-error 'syntax-error) (cons 'syntax-error 'syntax-error)
(cons 'define-library 'define-library) (cons 'define-library 'define-library)
(cons 'program 'program) (cons 'program 'program)
(cons 'import 'import) (cons 'import 'import)
(cons 'export 'export) (cons 'export 'export)
(cons 'length 'length) ; used as escape by define-record-type
(cons '... '...) (cons '... '...)
(cons '_ '_))) (cons '_ '_)))
@ -43,7 +43,7 @@
(set! *top-transformer-env* (set! *top-transformer-env*
(map (lambda (bnd) (map (lambda (bnd)
(case (car bnd) (case (car bnd)
[(... _) ; syntax-rules looks them up in skint's root env!! [(... _ length) ; syntax-rules looks them up in root env!!
(cons (car bnd) (root-environment (car bnd) 'ref))] (cons (car bnd) (root-environment (car bnd) 'ref))]
[else ; for the rest, it is val that matters [else ; for the rest, it is val that matters
(cons (car bnd) (make-location (cdr bnd)))])) (cons (car bnd) (make-location (cdr bnd)))]))

View file

@ -193,7 +193,6 @@
; (body <expr or def> ...) ; (body <expr or def> ...)
; (syntax-lambda (<id> ...) <expr>) ; (syntax-lambda (<id> ...) <expr>)
; (syntax-rules (<id> ...) <rule> ...) ; (syntax-rules (<id> ...) <rule> ...)
; (syntax-length <form>)
; (syntax-error <msg> <arg> ...) ; (syntax-error <msg> <arg> ...)
@ -250,7 +249,7 @@
; <special> -> <builtin> | <integrable> | <transformer> | <library> | <void> ; <special> -> <builtin> | <integrable> | <transformer> | <library> | <void>
; <builtin> -> syntax-quote | quote | set! | set& | if | lambda | lambda* | ; <builtin> -> syntax-quote | quote | set! | set& | if | lambda | lambda* |
; letcc | withcc | body | begin | define | define-syntax | ; letcc | withcc | body | begin | define | define-syntax |
; syntax-lambda | syntax-rules | syntax-length | syntax-error | ; syntax-lambda | syntax-rules | syntax-error |
; define-library | import ; define-library | import
; <integrable> -> <fixnum serving as index in internal integrables table> ; <integrable> -> <fixnum serving as index in internal integrables table>
; <transformer> -> <procedure of exp and env returning exp> ; <transformer> -> <procedure of exp and env returning exp>
@ -417,7 +416,6 @@
[(syntax-quote) (xpand-syntax-quote tail env)] [(syntax-quote) (xpand-syntax-quote tail env)]
[(syntax-lambda) (xpand-syntax-lambda tail env appos?)] [(syntax-lambda) (xpand-syntax-lambda tail env appos?)]
[(syntax-rules) (xpand-syntax-rules tail env)] [(syntax-rules) (xpand-syntax-rules tail env)]
[(syntax-length) (xpand-syntax-length tail env)]
[(syntax-error) (xpand-syntax-error tail env)] [(syntax-error) (xpand-syntax-error tail env)]
[(define-library) (xpand-define-library head tail env #f)] [(define-library) (xpand-define-library head tail env #f)]
[(import) (xpand-import head tail env #f)] [(import) (xpand-import head tail env #f)]
@ -681,11 +679,6 @@
[else [else
(x-error "improper syntax-rules form" (cons 'syntax-rules tail))])) (x-error "improper syntax-rules form" (cons 'syntax-rules tail))]))
(define (xpand-syntax-length tail env)
(if (and (list1? tail) (list? (car tail)))
(list 'quote (length (car tail)))
(x-error "improper syntax-length form" (cons 'syntax-length tail))))
(define (xpand-syntax-error tail env) (define (xpand-syntax-error tail env)
(let ([args (map xpand-sexp->datum tail)]) (let ([args (map xpand-sexp->datum tail)])
(if (and (list1+? args) (string? (car args))) (if (and (list1+? args) (string? (car args)))
@ -2123,7 +2116,7 @@
(box? x 111) (box x 111) (unbox x 111) (set-box! x 111) (format 28 48) (box? x 111) (box x 111) (unbox x 111) (set-box! x 111) (format 28 48)
(fprintf) (format-pretty-print) (format-fixed-print) (format-fresh-line) (format-help-string) (fprintf) (format-pretty-print) (format-fixed-print) (format-fresh-line) (format-help-string)
; skint extras go into repl and (skint) library; the rest goes to (skint hidden) ; skint extras go into repl and (skint) library; the rest goes to (skint hidden)
(set&) (lambda*) (body) (letcc) (withcc) (syntax-lambda) (syntax-length) (set&) (lambda*) (body) (letcc) (withcc) (syntax-lambda)
(record?) (make-record) (record-length) (record-ref) (record-set!) (expand) (record?) (make-record) (record-length) (record-ref) (record-set!) (expand)
(fixnum?) (fxpositive?) (fxnegative?) (fxeven?) (fxodd?) (fxzero?) (fx+) (fx*) (fx-) (fx/) (fixnum?) (fxpositive?) (fxnegative?) (fxeven?) (fxodd?) (fxzero?) (fx+) (fx*) (fx-) (fx/)
(fxquotient) (fxremainder) (fxmodquo) (fxmodulo) (fxeucquo) (fxeucrem) (fxneg) (fxquotient) (fxremainder) (fxmodquo) (fxmodulo) (fxeucquo) (fxeucrem) (fxneg)

32
s.c
View file

@ -222,22 +222,22 @@ char *s_code[] = {
"2:im;;y3:...;;;l8:y5:begin;l3:y6:define;y3:rtn;l3:y15:new-record-type;" "2:im;;y3:...;;;l8:y5:begin;l3:y6:define;y3:rtn;l3:y15:new-record-type;"
"l2:y5:quote;y3:rtn;;l2:y5:quote;l2:y1:f;y3:...;;;;;l3:y6:define;y5:con" "l2:y5:quote;y3:rtn;;l2:y5:quote;l2:y1:f;y3:...;;;;;l3:y6:define;y5:con"
"sn;l3:y6:lambda;l2:y2:id;y3:...;;l3:y3:let;l1:l2:y1:r;l3:y11:make-reco" "sn;l3:y6:lambda;l2:y2:id;y3:...;;l3:y3:let;l1:l2:y1:r;l3:y11:make-reco"
"rd;y3:rtn;l2:y13:syntax-length;l2:y1:f;y3:...;;;;;;l5:y9:%25drt-init;y" "rd;y3:rtn;l3:y3:...;y6:length;l2:y1:f;y3:...;;;;;;l5:y9:%25drt-init;y1"
"1:r;l2:y2:id;y3:...;;l2:l2:y1:f;y1:i;;y3:...;;n;;;;;l3:y6:define;y5:pr" ":r;l2:y2:id;y3:...;;l2:l2:y1:f;y1:i;;y3:...;;n;;;;;l3:y6:define;y5:pre"
"edn;l3:y6:lambda;l1:y3:obj;;l3:y7:record?;y3:obj;y3:rtn;;;;l3:y6:defin" "dn;l3:y6:lambda;l1:y3:obj;;l3:y7:record?;y3:obj;y3:rtn;;;;l3:y6:define"
"e;y1:a;l3:y6:lambda;l1:y3:obj;;l3:y10:record-ref;y3:obj;y2:ia;;;;y3:.." ";y1:a;l3:y6:lambda;l1:y3:obj;;l3:y10:record-ref;y3:obj;y2:ia;;;;y3:..."
".;l3:y6:define;y1:m;l3:y6:lambda;l2:y3:obj;y3:val;;l4:y11:record-set!;" ";l3:y6:define;y1:m;l3:y6:lambda;l2:y3:obj;y3:val;;l4:y11:record-set!;y"
"y3:obj;y2:im;y3:val;;;;y3:...;;;l2:l8:y1:_;y3:rtn;y3:cf*;y5:predn;l3:l" "3:obj;y2:im;y3:val;;;;y3:...;;;l2:l8:y1:_;y3:rtn;y3:cf*;y5:predn;l3:l2"
"2:y2:fn;y4:accn;;y3:fam;y3:...;;l2:y2:fi;y3:...;;l2:y2:ai;y3:...;;l2:y" ":y2:fn;y4:accn;;y3:fam;y3:...;;l2:y2:fi;y3:...;;l2:y2:ai;y3:...;;l2:y2"
"2:mi;y3:...;;;l8:y11:%25drt-unroll;y3:rtn;y3:cf*;y5:predn;l2:y3:fam;y3" ":mi;y3:...;;;l8:y11:%25drt-unroll;y3:rtn;y3:cf*;y5:predn;l2:y3:fam;y3:"
":...;;l3:y2:fi;y3:...;l2:y2:fn;l2:y13:syntax-length;l2:y2:fi;y3:...;;;" "...;;l3:y2:fi;y3:...;l2:y2:fn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;"
";;l3:y2:ai;y3:...;l2:y4:accn;l2:y13:syntax-length;l2:y2:fi;y3:...;;;;;" "l3:y2:ai;y3:...;l2:y4:accn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;l2:"
"l2:y2:mi;y3:...;;;;l2:l8:y1:_;y3:rtn;y3:cf*;y5:predn;l3:l3:y2:fn;y4:ac" "y2:mi;y3:...;;;;l2:l8:y1:_;y3:rtn;y3:cf*;y5:predn;l3:l3:y2:fn;y4:accn;"
"cn;y4:modn;;y3:fam;y3:...;;l2:y2:fi;y3:...;;l2:y2:ai;y3:...;;l2:y2:mi;" "y4:modn;;y3:fam;y3:...;;l2:y2:fi;y3:...;;l2:y2:ai;y3:...;;l2:y2:mi;y3:"
"y3:...;;;l8:y11:%25drt-unroll;y3:rtn;y3:cf*;y5:predn;l2:y3:fam;y3:...;" "...;;;l8:y11:%25drt-unroll;y3:rtn;y3:cf*;y5:predn;l2:y3:fam;y3:...;;l3"
";l3:y2:fi;y3:...;l2:y2:fn;l2:y13:syntax-length;l2:y2:fi;y3:...;;;;;l3:" ":y2:fi;y3:...;l2:y2:fn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;l3:y2:a"
"y2:ai;y3:...;l2:y4:accn;l2:y13:syntax-length;l2:y2:fi;y3:...;;;;;l3:y2" "i;y3:...;l2:y4:accn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;l3:y2:mi;y"
":mi;y3:...;l2:y4:modn;l2:y13:syntax-length;l2:y2:fi;y3:...;;;;;;;", "3:...;l2:y4:modn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;;;",
"S", "define-record-type", "S", "define-record-type",
"l3:y12:syntax-rules;n;l2:l6:y1:_;y3:rtn;l3:y5:consn;y2:id;y3:...;;y5:p" "l3:y12:syntax-rules;n;l2:l6:y1:_;y3:rtn;l3:y5:consn;y2:id;y3:...;;y5:p"

148
t.c
View file

@ -265,16 +265,15 @@ char *t_code[] = {
"fine-syntax),.1v?{.6,.3,@(y19:xpand-define-syntax)[72}'(y12:syntax-quo" "fine-syntax),.1v?{.6,.3,@(y19:xpand-define-syntax)[72}'(y12:syntax-quo"
"te),.1v?{.6,.3,@(y18:xpand-syntax-quote)[72}'(y13:syntax-lambda),.1v?{" "te),.1v?{.6,.3,@(y18:xpand-syntax-quote)[72}'(y13:syntax-lambda),.1v?{"
".4,.7,.4,@(y19:xpand-syntax-lambda)[73}'(y12:syntax-rules),.1v?{.6,.3," ".4,.7,.4,@(y19:xpand-syntax-lambda)[73}'(y12:syntax-rules),.1v?{.6,.3,"
"@(y18:xpand-syntax-rules)[72}'(y13:syntax-length),.1v?{.6,.3,@(y19:xpa" "@(y18:xpand-syntax-rules)[72}'(y12:syntax-error),.1v?{.6,.3,@(y18:xpan"
"nd-syntax-length)[72}'(y12:syntax-error),.1v?{.6,.3,@(y18:xpand-syntax" "d-syntax-error)[72}'(y14:define-library),.1v?{f,.7,.4,.6,@(y20:xpand-d"
"-error)[72}'(y14:define-library),.1v?{f,.7,.4,.6,@(y20:xpand-define-li" "efine-library)[74}'(y6:import),.1v?{f,.7,.4,.6,@(y12:xpand-import)[74}"
"brary)[74}'(y6:import),.1v?{f,.7,.4,.6,@(y12:xpand-import)[74}'(l2:y3:" "'(l2:y3:...;y1:_;),.1A1?{.5,.2,'(s32:improper use of auxiliary syntax)"
"...;y1:_;),.1A1?{.5,.2,'(s32:improper use of auxiliary syntax),@(y7:x-" ",@(y7:x-error)[73}.1U0?{.6,.3,.3,@(y16:xpand-integrable)[73}.1K0?{.6,$"
"error)[73}.1U0?{.6,.3,.3,@(y16:xpand-integrable)[73}.1K0?{.6,${.9,.9,." "{.9,.9,.6[02},.6,@(y5:xpand)[73}.1V0?{.5,.2,'(s23:improper use of libr"
"6[02},.6,@(y5:xpand)[73}.1V0?{.5,.2,'(s23:improper use of library),@(y" "ary),@(y7:x-error)[73}.1Y8?{.5,.2,'(s24:use of uninitialized val),@(y7"
"7:x-error)[73}.1Y8?{.5,.2,'(s24:use of uninitialized val),@(y7:x-error" ":x-error)[73}.1p~?{.1,'(s27:improper use of syntax form),@(y7:x-error)"
")[73}.1p~?{.1,'(s27:improper use of syntax form),@(y7:x-error)[72}.6,." "[72}.6,.3,.3,@(y10:xpand-call)[73",
"3,.3,@(y10:xpand-call)[73",
"P", "xpand-quote", "P", "xpand-quote",
"%2${.2,@(y6:list1?)[01}?{${.2a,@(y17:xpand-sexp->datum)[01},'(y5:quote" "%2${.2,@(y6:list1?)[01}?{${.2a,@(y17:xpand-sexp->datum)[01},'(y5:quote"
@ -431,10 +430,6 @@ char *t_code[] = {
"3:syntax-rules*)[24}.0,'(y12:syntax-rules)c,'(s26:improper syntax-rule" "3:syntax-rules*)[24}.0,'(y12:syntax-rules)c,'(s26:improper syntax-rule"
"s form),@(y7:x-error)[22", "s form),@(y7:x-error)[22",
"P", "xpand-syntax-length",
"%2${.2,@(y6:list1?)[01}?{.0aL0}{f}?{.0ag,'(y5:quote),l2]2}.0,'(y13:syn"
"tax-length)c,'(s27:improper syntax-length form),@(y7:x-error)[22",
"P", "xpand-syntax-error", "P", "xpand-syntax-error",
"%2${.2,@(y17:xpand-sexp->datum),@(y5:%25map1)[02},${.2,@(y7:list1+?)[0" "%2${.2,@(y17:xpand-sexp->datum),@(y5:%25map1)[02},${.2,@(y7:list1+?)[0"
"1}?{.0aS0}{f}?{.0,@(y7:x-error),@(y13:apply-to-list)[32}.1,'(y12:synta" "1}?{.0aS0}{f}?{.0,@(y7:x-error),@(y13:apply-to-list)[32}.1,'(y12:synta"
@ -1179,7 +1174,7 @@ char *t_code[] = {
"0:*root-name-registry*),@(y11:name-lookup)[03}", "0:*root-name-registry*),@(y11:name-lookup)[03}",
"C", 0, "C", 0,
"${'(l510:l3:y1:*;y1:v;y1:b;;l3:y1:+;y1:v;y1:b;;l3:y1:-;y1:v;y1:b;;l4:y" "${'(l509:l3:y1:*;y1:v;y1:b;;l3:y1:+;y1:v;y1:b;;l3:y1:-;y1:v;y1:b;;l4:y"
"3:...;y1:v;y1:u;y1:b;;l3:y1:/;y1:v;y1:b;;l3:y1:<;y1:v;y1:b;;l3:y2:<=;y" "3:...;y1:v;y1:u;y1:b;;l3:y1:/;y1:v;y1:b;;l3:y1:<;y1:v;y1:b;;l3:y2:<=;y"
"1:v;y1:b;;l3:y1:=;y1:v;y1:b;;l4:y2:=>;y1:v;y1:u;y1:b;;l3:y1:>;y1:v;y1:" "1:v;y1:b;;l3:y1:=;y1:v;y1:b;;l4:y2:=>;y1:v;y1:u;y1:b;;l3:y1:>;y1:v;y1:"
"b;;l3:y2:>=;y1:v;y1:b;;l2:y1:_;y1:b;;l3:y3:abs;y1:v;y1:b;;l4:y3:and;y1" "b;;l3:y2:>=;y1:v;y1:b;;l2:y1:_;y1:b;;l3:y3:abs;y1:v;y1:b;;l4:y3:and;y1"
@ -1313,68 +1308,67 @@ char *t_code[] = {
";l3:y8:set-box!;y1:x;i111;;l3:y6:format;i28;i48;;l1:y7:fprintf;;l1:y19" ";l3:y8:set-box!;y1:x;i111;;l3:y6:format;i28;i48;;l1:y7:fprintf;;l1:y19"
":format-pretty-print;;l1:y18:format-fixed-print;;l1:y17:format-fresh-l" ":format-pretty-print;;l1:y18:format-fixed-print;;l1:y17:format-fresh-l"
"ine;;l1:y18:format-help-string;;l1:y4:set&;;l1:y7:lambda*;;l1:y4:body;" "ine;;l1:y18:format-help-string;;l1:y4:set&;;l1:y7:lambda*;;l1:y4:body;"
";l1:y5:letcc;;l1:y6:withcc;;l1:y13:syntax-lambda;;l1:y13:syntax-length" ";l1:y5:letcc;;l1:y6:withcc;;l1:y13:syntax-lambda;;l1:y7:record?;;l1:y1"
";;l1:y7:record?;;l1:y11:make-record;;l1:y13:record-length;;l1:y10:reco" "1:make-record;;l1:y13:record-length;;l1:y10:record-ref;;l1:y11:record-"
"rd-ref;;l1:y11:record-set!;;l1:y6:expand;;l1:y7:fixnum?;;l1:y11:fxposi" "set!;;l1:y6:expand;;l1:y7:fixnum?;;l1:y11:fxpositive?;;l1:y11:fxnegati"
"tive?;;l1:y11:fxnegative?;;l1:y7:fxeven?;;l1:y6:fxodd?;;l1:y7:fxzero?;" "ve?;;l1:y7:fxeven?;;l1:y6:fxodd?;;l1:y7:fxzero?;;l1:y3:fx+;;l1:y3:fx*;"
";l1:y3:fx+;;l1:y3:fx*;;l1:y3:fx-;;l1:y3:fx/;;l1:y10:fxquotient;;l1:y11" ";l1:y3:fx-;;l1:y3:fx/;;l1:y10:fxquotient;;l1:y11:fxremainder;;l1:y8:fx"
":fxremainder;;l1:y8:fxmodquo;;l1:y8:fxmodulo;;l1:y8:fxeucquo;;l1:y8:fx" "modquo;;l1:y8:fxmodulo;;l1:y8:fxeucquo;;l1:y8:fxeucrem;;l1:y5:fxneg;;l"
"eucrem;;l1:y5:fxneg;;l1:y5:fxabs;;l1:y4:fx<?;;l1:y5:fx<=?;;l1:y4:fx>?;" "1:y5:fxabs;;l1:y4:fx<?;;l1:y5:fx<=?;;l1:y4:fx>?;;l1:y5:fx>=?;;l1:y4:fx"
";l1:y5:fx>=?;;l1:y4:fx=?;;l1:y5:fx!=?;;l1:y5:fxmin;;l1:y5:fxmax;;l1:y5" "=?;;l1:y5:fx!=?;;l1:y5:fxmin;;l1:y5:fxmax;;l1:y5:fxneg;;l1:y5:fxabs;;l"
":fxneg;;l1:y5:fxabs;;l1:y5:fxgcd;;l1:y6:fxexpt;;l1:y6:fxsqrt;;l1:y5:fx" "1:y5:fxgcd;;l1:y6:fxexpt;;l1:y6:fxsqrt;;l1:y5:fxnot;;l1:y5:fxand;;l1:y"
"not;;l1:y5:fxand;;l1:y5:fxior;;l1:y5:fxxor;;l1:y5:fxsll;;l1:y5:fxsrl;;" "5:fxior;;l1:y5:fxxor;;l1:y5:fxsll;;l1:y5:fxsrl;;l1:y14:fixnum->flonum;"
"l1:y14:fixnum->flonum;;l1:y14:fixnum->string;;l1:y14:string->fixnum;;l" ";l1:y14:fixnum->string;;l1:y14:string->fixnum;;l1:y7:flonum?;;l1:y7:fl"
"1:y7:flonum?;;l1:y7:flzero?;;l1:y11:flpositive?;;l1:y11:flnegative?;;l" "zero?;;l1:y11:flpositive?;;l1:y11:flnegative?;;l1:y10:flinteger?;;l1:y"
"1:y10:flinteger?;;l1:y6:flnan?;;l1:y11:flinfinite?;;l1:y9:flfinite?;;l" "6:flnan?;;l1:y11:flinfinite?;;l1:y9:flfinite?;;l1:y7:fleven?;;l1:y6:fl"
"1:y7:fleven?;;l1:y6:flodd?;;l1:y3:fl+;;l1:y3:fl*;;l1:y3:fl-;;l1:y3:fl/" "odd?;;l1:y3:fl+;;l1:y3:fl*;;l1:y3:fl-;;l1:y3:fl/;;l1:y5:flneg;;l1:y5:f"
";;l1:y5:flneg;;l1:y5:flabs;;l1:y5:flgcd;;l1:y6:flexpt;;l1:y6:flsqrt;;l" "labs;;l1:y5:flgcd;;l1:y6:flexpt;;l1:y6:flsqrt;;l1:y7:flfloor;;l1:y9:fl"
"1:y7:flfloor;;l1:y9:flceiling;;l1:y10:fltruncate;;l1:y7:flround;;l1:y5" "ceiling;;l1:y10:fltruncate;;l1:y7:flround;;l1:y5:flexp;;l1:y5:fllog;;l"
":flexp;;l1:y5:fllog;;l1:y5:flsin;;l1:y5:flcos;;l1:y5:fltan;;l1:y6:flas" "1:y5:flsin;;l1:y5:flcos;;l1:y5:fltan;;l1:y6:flasin;;l1:y6:flacos;;l1:y"
"in;;l1:y6:flacos;;l1:y6:flatan;;l1:y4:fl<?;;l1:y5:fl<=?;;l1:y4:fl>?;;l" "6:flatan;;l1:y4:fl<?;;l1:y5:fl<=?;;l1:y4:fl>?;;l1:y5:fl>=?;;l1:y4:fl=?"
"1:y5:fl>=?;;l1:y4:fl=?;;l1:y5:fl!=?;;l1:y5:flmin;;l1:y5:flmax;;l1:y11:" ";;l1:y5:fl!=?;;l1:y5:flmin;;l1:y5:flmax;;l1:y11:flremainder;;l1:y8:flm"
"flremainder;;l1:y8:flmodulo;;l1:y10:flquotient;;l1:y8:flmodquo;;l1:y14" "odulo;;l1:y10:flquotient;;l1:y8:flmodquo;;l1:y14:flonum->fixnum;;l1:y1"
":flonum->fixnum;;l1:y14:flonum->string;;l1:y14:string->flonum;;l1:y8:l" "4:flonum->string;;l1:y14:string->flonum;;l1:y8:list-cat;;l1:y9:last-pa"
"ist-cat;;l1:y9:last-pair;;l1:y9:list-head;;l1:y4:meme;;l1:y4:asse;;l1:" "ir;;l1:y9:list-head;;l1:y4:meme;;l1:y4:asse;;l1:y4:memp;;l1:y4:assp;;l"
"y4:memp;;l1:y4:assp;;l1:y8:reverse!;;l1:y9:circular?;;l1:y5:cons*;;l1:" "1:y8:reverse!;;l1:y9:circular?;;l1:y5:cons*;;l1:y5:list*;;l1:y8:char-c"
"y5:list*;;l1:y8:char-cmp;;l1:y11:char-ci-cmp;;l1:y10:string-cat;;l1:y1" "mp;;l1:y11:char-ci-cmp;;l1:y10:string-cat;;l1:y15:string-position;;l1:"
"5:string-position;;l1:y10:string-cmp;;l1:y13:string-ci-cmp;;l1:y10:vec" "y10:string-cmp;;l1:y13:string-ci-cmp;;l1:y10:vector-cat;;l1:y12:byteve"
"tor-cat;;l1:y12:bytevector=?;;l1:y16:bytevector->list;;l1:y16:list->by" "ctor=?;;l1:y16:bytevector->list;;l1:y16:list->bytevector;;l1:y13:subby"
"tevector;;l1:y13:subbytevector;;l1:y19:standard-input-port;;l1:y20:sta" "tevector;;l1:y19:standard-input-port;;l1:y20:standard-output-port;;l1:"
"ndard-output-port;;l1:y19:standard-error-port;;l1:y9:tty-port?;;l1:y15" "y19:standard-error-port;;l1:y9:tty-port?;;l1:y15:port-fold-case?;;l1:y"
":port-fold-case?;;l1:y19:set-port-fold-case!;;l1:y11:rename-file;;l1:y" "19:set-port-fold-case!;;l1:y11:rename-file;;l1:y17:current-directory;;"
"17:current-directory;;l1:y19:directory-separator;;l1:y4:void;;l1:y5:vo" "l1:y19:directory-separator;;l1:y4:void;;l1:y5:void?;;l1:y19:implementa"
"id?;;l1:y19:implementation-name;;l1:y22:implementation-version;;py20:*" "tion-name;;l1:y22:implementation-version;;py20:*user-name-registry*;y6"
"user-name-registry*;y6:hidden;;py25:make-readonly-environment;y6:hidde" ":hidden;;py25:make-readonly-environment;y6:hidden;;py27:make-controlle"
"n;;py27:make-controlled-environment;y6:hidden;;py20:make-sld-environme" "d-environment;y6:hidden;;py20:make-sld-environment;y6:hidden;;py21:mak"
"nt;y6:hidden;;py21:make-repl-environment;y6:hidden;;py19:find-library-" "e-repl-environment;y6:hidden;;py19:find-library-in-env;y6:hidden;;py16"
"in-env;y6:hidden;;py16:root-environment;y6:hidden;;py16:repl-environme" ":root-environment;y6:hidden;;py16:repl-environment;y6:hidden;;py17:emp"
"nt;y6:hidden;;py17:empty-environment;y6:hidden;;py32:make-historic-rep" "ty-environment;y6:hidden;;py32:make-historic-report-environment;y6:hid"
"ort-environment;y6:hidden;;py16:r5rs-environment;y6:hidden;;py21:r5rs-" "den;;py16:r5rs-environment;y6:hidden;;py21:r5rs-null-environment;y6:hi"
"null-environment;y6:hidden;;py9:*verbose*;y6:hidden;;py7:*quiet*;y6:hi" "dden;;py9:*verbose*;y6:hidden;;py7:*quiet*;y6:hidden;;py25:compile-and"
"dden;;py25:compile-and-run-core-expr;y6:hidden;;py17:evaluate-top-form" "-run-core-expr;y6:hidden;;py17:evaluate-top-form;y6:hidden;;py10:run-s"
";y6:hidden;;py10:run-script;y6:hidden;;py11:run-program;y6:hidden;;py2" "cript;y6:hidden;;py11:run-program;y6:hidden;;py22:repl-evaluate-top-fo"
"2:repl-evaluate-top-form;y6:hidden;;py9:repl-read;y6:hidden;;py17:repl" "rm;y6:hidden;;py9:repl-read;y6:hidden;;py17:repl-exec-command;y6:hidde"
"-exec-command;y6:hidden;;py14:repl-from-port;y6:hidden;;py13:run-bench" "n;;py14:repl-from-port;y6:hidden;;py13:run-benchmark;y6:hidden;;py4:re"
"mark;y6:hidden;;py4:repl;y6:hidden;;),&0{%1,,,,#0#1#2#3&0{%1.0,'(y1:w)" "pl;y6:hidden;;),&0{%1,,,,#0#1#2#3&0{%1.0,'(y1:w),.1v?{'(l2:y6:scheme;y"
",.1v?{'(l2:y6:scheme;y5:write;)]2}'(y1:t),.1v?{'(l2:y6:scheme;y4:time;" "5:write;)]2}'(y1:t),.1v?{'(l2:y6:scheme;y4:time;)]2}'(y1:p),.1v?{'(l2:"
")]2}'(y1:p),.1v?{'(l2:y6:scheme;y4:repl;)]2}'(y1:r),.1v?{'(l2:y6:schem" "y6:scheme;y4:repl;)]2}'(y1:r),.1v?{'(l2:y6:scheme;y4:read;)]2}'(y1:v),"
"e;y4:read;)]2}'(y1:v),.1v?{'(l2:y6:scheme;y4:r5rs;)]2}'(y1:u),.1v?{'(l" ".1v?{'(l2:y6:scheme;y4:r5rs;)]2}'(y1:u),.1v?{'(l2:y6:scheme;y9:r5rs-nu"
"2:y6:scheme;y9:r5rs-null;)]2}'(y1:d),.1v?{'(l2:y6:scheme;y4:load;)]2}'" "ll;)]2}'(y1:d),.1v?{'(l2:y6:scheme;y4:load;)]2}'(y1:z),.1v?{'(l2:y6:sc"
"(y1:z),.1v?{'(l2:y6:scheme;y4:lazy;)]2}'(y1:s),.1v?{'(l2:y6:scheme;y15" "heme;y4:lazy;)]2}'(y1:s),.1v?{'(l2:y6:scheme;y15:process-context;)]2}'"
":process-context;)]2}'(y1:i),.1v?{'(l2:y6:scheme;y7:inexact;)]2}'(y1:f" "(y1:i),.1v?{'(l2:y6:scheme;y7:inexact;)]2}'(y1:f),.1v?{'(l2:y6:scheme;"
"),.1v?{'(l2:y6:scheme;y4:file;)]2}'(y1:e),.1v?{'(l2:y6:scheme;y4:eval;" "y4:file;)]2}'(y1:e),.1v?{'(l2:y6:scheme;y4:eval;)]2}'(y1:o),.1v?{'(l2:"
")]2}'(y1:o),.1v?{'(l2:y6:scheme;y7:complex;)]2}'(y1:h),.1v?{'(l2:y6:sc" "y6:scheme;y7:complex;)]2}'(y1:h),.1v?{'(l2:y6:scheme;y4:char;)]2}'(y1:"
"heme;y4:char;)]2}'(y1:l),.1v?{'(l2:y6:scheme;y11:case-lambda;)]2}'(y1:" "l),.1v?{'(l2:y6:scheme;y11:case-lambda;)]2}'(y1:a),.1v?{'(l2:y6:scheme"
"a),.1v?{'(l2:y6:scheme;y3:cxr;)]2}'(y1:b),.1v?{'(l2:y6:scheme;y4:base;" ";y3:cxr;)]2}'(y1:b),.1v?{'(l2:y6:scheme;y4:base;)]2}'(y1:x),.1v?{'(l2:"
")]2}'(y1:x),.1v?{'(l2:y6:scheme;y3:box;)]2}.1I0?{.1,'(y4:srfi),l2]2}.1" "y6:scheme;y3:box;)]2}.1I0?{.1,'(y4:srfi),l2]2}.1,l1]2}.!0&0{%1${&0{%1n"
",l1]2}.!0&0{%1${&0{%1n,'(l1:y5:begin;),V12]1},.3,@(y20:*root-name-regi" ",'(l1:y5:begin;),V12]1},.3,@(y20:*root-name-registry*),@(y11:name-look"
"stry*),@(y11:name-lookup)[03}z]1}.!1&0{%3'1,.1V4,.0,.3A3,.0?{.4,.1sd]5" "up)[03}z]1}.!1&0{%3'1,.1V4,.0,.3A3,.0?{.4,.1sd]5}.1,.5,.5cc,'1,.4V5]5}"
"}.1,.5,.5cc,'1,.4V5]5}.!2&0{%1&0{%1.0,'(y5:const),l2]1},.1,@(y20:*root" ".!2&0{%1&0{%1.0,'(y5:const),l2]1},.1,@(y20:*root-name-registry*),@(y11"
"-name-registry*),@(y11:name-lookup)[13}.!3.4d,.5a,,#0.0,.6,.5,.7,.(i10" ":name-lookup)[13}.!3.4d,.5a,,#0.0,.6,.5,.7,.(i10),&5{%2.1u?{${.2,:0^[0"
"),&5{%2.1u?{${.2,:0^[01},.1,${'(l1:y5:skint;),:1^[01},:3^[23}.1p~?{${." "1},.1,${'(l1:y5:skint;),:1^[01},:3^[23}.1p~?{${.2,:0^[01},.1,${n,.6c,'"
"2,:0^[01},.1,${n,.6c,'(y5:skint)c,:1^[01},:3^[23}${${.4,:0^[01},.3,${$" "(y5:skint)c,:1^[01},:3^[23}${${.4,:0^[01},.3,${${.9a,:2^[01},:1^[01},:"
"{.9a,:2^[01},:1^[01},:3^[03}.1d,.1,:4^[22}.!0.0^_1[52},@(y10:%25for-ea" "3^[03}.1d,.1,:4^[22}.!0.0^_1[52},@(y10:%25for-each1)[02}",
"ch1)[02}",
"C", 0, "C", 0,
"@(y20:*root-name-registry*),${f,'(l1:y5:skint;),.4,@(y11:name-lookup)[" "@(y20:*root-name-registry*),${f,'(l1:y5:skint;),.4,@(y11:name-lookup)["