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();
}
define_instruction(flimmp) {
#ifdef NAN_BOXING
ac = bool_obj(1);
#else
ac = bool_obj(0);
#endif
gonexti();
}
define_instruction(dirsep) {
extern int 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(bumpcnt, "Zb", 0, "%bump-count", '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)
/* serialization, deserialization, compilation-related instructions */

View file

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

View file

@ -27,12 +27,12 @@
(cons 'define-syntax 'define-syntax)
(cons 'syntax-lambda 'syntax-lambda)
(cons 'syntax-rules 'syntax-rules)
(cons 'syntax-length 'syntax-length)
(cons 'syntax-error 'syntax-error)
(cons 'define-library 'define-library)
(cons 'program 'program)
(cons 'import 'import)
(cons 'export 'export)
(cons 'length 'length) ; used as escape by define-record-type
(cons '... '...)
(cons '_ '_)))
@ -43,7 +43,7 @@
(set! *top-transformer-env*
(map (lambda (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))]
[else ; for the rest, it is val that matters
(cons (car bnd) (make-location (cdr bnd)))]))

View file

@ -193,7 +193,6 @@
; (body <expr or def> ...)
; (syntax-lambda (<id> ...) <expr>)
; (syntax-rules (<id> ...) <rule> ...)
; (syntax-length <form>)
; (syntax-error <msg> <arg> ...)
@ -250,7 +249,7 @@
; <special> -> <builtin> | <integrable> | <transformer> | <library> | <void>
; <builtin> -> syntax-quote | quote | set! | set& | if | lambda | lambda* |
; letcc | withcc | body | begin | define | define-syntax |
; syntax-lambda | syntax-rules | syntax-length | syntax-error |
; syntax-lambda | syntax-rules | syntax-error |
; define-library | import
; <integrable> -> <fixnum serving as index in internal integrables table>
; <transformer> -> <procedure of exp and env returning exp>
@ -417,7 +416,6 @@
[(syntax-quote) (xpand-syntax-quote tail env)]
[(syntax-lambda) (xpand-syntax-lambda tail env appos?)]
[(syntax-rules) (xpand-syntax-rules tail env)]
[(syntax-length) (xpand-syntax-length tail env)]
[(syntax-error) (xpand-syntax-error tail env)]
[(define-library) (xpand-define-library head tail env #f)]
[(import) (xpand-import head tail env #f)]
@ -681,11 +679,6 @@
[else
(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)
(let ([args (map xpand-sexp->datum tail)])
(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)
(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)
(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)
(fixnum?) (fxpositive?) (fxnegative?) (fxeven?) (fxodd?) (fxzero?) (fx+) (fx*) (fx-) (fx/)
(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;"
"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"
"rd;y3:rtn;l2:y13:syntax-length;l2:y1:f;y3:...;;;;;;l5:y9:%25drt-init;y"
"1:r;l2:y2:id;y3:...;;l2:l2:y1:f;y1:i;;y3:...;;n;;;;;l3:y6:define;y5:pr"
"edn;l3:y6:lambda;l1:y3:obj;;l3:y7:record?;y3:obj;y3:rtn;;;;l3:y6:defin"
"e;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!;"
"y3:obj;y2:im;y3:val;;;;y3:...;;;l2:l8:y1:_;y3:rtn;y3:cf*;y5:predn;l3:l"
"2:y2:fn;y4:accn;;y3:fam;y3:...;;l2:y2:fi;y3:...;;l2:y2:ai;y3:...;;l2:y"
"2: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:ai;y3:...;l2:y4:accn;l2:y13:syntax-length;l2:y2:fi;y3:...;;;;;"
"l2:y2:mi;y3:...;;;;l2:l8:y1:_;y3:rtn;y3:cf*;y5:predn;l3:l3:y2:fn;y4:ac"
"cn;y4:modn;;y3:fam;y3:...;;l2:y2:fi;y3:...;;l2:y2:ai;y3:...;;l2:y2: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:ai;y3:...;l2:y4:accn;l2:y13:syntax-length;l2:y2:fi;y3:...;;;;;l3:y2"
":mi;y3:...;l2:y4:modn;l2:y13:syntax-length;l2:y2:fi;y3:...;;;;;;;",
"rd;y3:rtn;l3:y3:...;y6:length;l2:y1:f;y3:...;;;;;;l5:y9:%25drt-init;y1"
":r;l2:y2:id;y3:...;;l2:l2:y1:f;y1:i;;y3:...;;n;;;;;l3:y6:define;y5:pre"
"dn;l3:y6:lambda;l1:y3:obj;;l3:y7:record?;y3:obj;y3:rtn;;;;l3:y6:define"
";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!;y"
"3:obj;y2:im;y3:val;;;;y3:...;;;l2:l8:y1:_;y3:rtn;y3:cf*;y5:predn;l3:l2"
":y2:fn;y4:accn;;y3:fam;y3:...;;l2:y2:fi;y3:...;;l2:y2:ai;y3:...;;l2:y2"
":mi;y3:...;;;l8:y11:%25drt-unroll;y3:rtn;y3:cf*;y5:predn;l2:y3:fam;y3:"
"...;;l3:y2:fi;y3:...;l2:y2:fn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;"
"l3:y2:ai;y3:...;l2:y4:accn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;l2:"
"y2:mi;y3:...;;;;l2:l8:y1:_;y3:rtn;y3:cf*;y5:predn;l3:l3:y2:fn;y4:accn;"
"y4:modn;;y3:fam;y3:...;;l2:y2:fi;y3:...;;l2:y2:ai;y3:...;;l2:y2:mi;y3:"
"...;;;l8:y11:%25drt-unroll;y3:rtn;y3:cf*;y5:predn;l2:y3:fam;y3:...;;l3"
":y2:fi;y3:...;l2:y2:fn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;l3:y2:a"
"i;y3:...;l2:y4:accn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;l3:y2:mi;y"
"3:...;l2:y4:modn;l3:y3:...;y6:length;l2:y2:fi;y3:...;;;;;;;",
"S", "define-record-type",
"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"
"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,"
"@(y18:xpand-syntax-rules)[72}'(y13:syntax-length),.1v?{.6,.3,@(y19:xpa"
"nd-syntax-length)[72}'(y12:syntax-error),.1v?{.6,.3,@(y18:xpand-syntax"
"-error)[72}'(y14:define-library),.1v?{f,.7,.4,.6,@(y20:xpand-define-li"
"brary)[74}'(y6:import),.1v?{f,.7,.4,.6,@(y12:xpand-import)[74}'(l2:y3:"
"...;y1:_;),.1A1?{.5,.2,'(s32:improper use of auxiliary syntax),@(y7:x-"
"error)[73}.1U0?{.6,.3,.3,@(y16:xpand-integrable)[73}.1K0?{.6,${.9,.9,."
"6[02},.6,@(y5:xpand)[73}.1V0?{.5,.2,'(s23:improper use of library),@(y"
"7:x-error)[73}.1Y8?{.5,.2,'(s24:use of uninitialized val),@(y7:x-error"
")[73}.1p~?{.1,'(s27:improper use of syntax form),@(y7:x-error)[72}.6,."
"3,.3,@(y10:xpand-call)[73",
"@(y18:xpand-syntax-rules)[72}'(y12:syntax-error),.1v?{.6,.3,@(y18:xpan"
"d-syntax-error)[72}'(y14:define-library),.1v?{f,.7,.4,.6,@(y20:xpand-d"
"efine-library)[74}'(y6:import),.1v?{f,.7,.4,.6,@(y12:xpand-import)[74}"
"'(l2:y3:...;y1:_;),.1A1?{.5,.2,'(s32:improper use of auxiliary syntax)"
",@(y7:x-error)[73}.1U0?{.6,.3,.3,@(y16:xpand-integrable)[73}.1K0?{.6,$"
"{.9,.9,.6[02},.6,@(y5:xpand)[73}.1V0?{.5,.2,'(s23:improper use of libr"
"ary),@(y7:x-error)[73}.1Y8?{.5,.2,'(s24:use of uninitialized val),@(y7"
":x-error)[73}.1p~?{.1,'(s27:improper use of syntax form),@(y7:x-error)"
"[72}.6,.3,.3,@(y10:xpand-call)[73",
"P", "xpand-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"
"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",
"%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"
@ -1179,7 +1174,7 @@ char *t_code[] = {
"0:*root-name-registry*),@(y11:name-lookup)[03}",
"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"
"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"
@ -1313,68 +1308,67 @@ char *t_code[] = {
";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"
"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:y7:record?;;l1:y11:make-record;;l1:y13:record-length;;l1:y10:reco"
"rd-ref;;l1:y11:record-set!;;l1:y6:expand;;l1:y7:fixnum?;;l1:y11:fxposi"
"tive?;;l1:y11:fxnegative?;;l1:y7:fxeven?;;l1:y6:fxodd?;;l1:y7:fxzero?;"
";l1:y3:fx+;;l1:y3:fx*;;l1:y3:fx-;;l1:y3:fx/;;l1:y10:fxquotient;;l1:y11"
":fxremainder;;l1:y8:fxmodquo;;l1:y8:fxmodulo;;l1:y8:fxeucquo;;l1:y8:fx"
"eucrem;;l1:y5:fxneg;;l1:y5:fxabs;;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"
":fxneg;;l1:y5:fxabs;;l1:y5:fxgcd;;l1:y6:fxexpt;;l1:y6:fxsqrt;;l1:y5:fx"
"not;;l1:y5:fxand;;l1:y5:fxior;;l1:y5:fxxor;;l1:y5:fxsll;;l1:y5:fxsrl;;"
"l1:y14:fixnum->flonum;;l1:y14:fixnum->string;;l1:y14:string->fixnum;;l"
"1:y7:flonum?;;l1:y7:flzero?;;l1:y11:flpositive?;;l1:y11:flnegative?;;l"
"1:y10:flinteger?;;l1:y6:flnan?;;l1:y11:flinfinite?;;l1:y9:flfinite?;;l"
"1:y7:fleven?;;l1:y6:flodd?;;l1:y3:fl+;;l1:y3:fl*;;l1:y3:fl-;;l1:y3:fl/"
";;l1:y5:flneg;;l1:y5:flabs;;l1:y5:flgcd;;l1:y6:flexpt;;l1:y6:flsqrt;;l"
"1:y7:flfloor;;l1:y9:flceiling;;l1:y10:fltruncate;;l1:y7:flround;;l1:y5"
":flexp;;l1:y5:fllog;;l1:y5:flsin;;l1:y5:flcos;;l1:y5:fltan;;l1:y6:flas"
"in;;l1:y6:flacos;;l1:y6:flatan;;l1:y4:fl<?;;l1:y5:fl<=?;;l1:y4:fl>?;;l"
"1:y5:fl>=?;;l1:y4:fl=?;;l1:y5:fl!=?;;l1:y5:flmin;;l1:y5:flmax;;l1:y11:"
"flremainder;;l1:y8:flmodulo;;l1:y10:flquotient;;l1:y8:flmodquo;;l1:y14"
":flonum->fixnum;;l1:y14:flonum->string;;l1:y14:string->flonum;;l1:y8:l"
"ist-cat;;l1:y9:last-pair;;l1:y9:list-head;;l1:y4:meme;;l1:y4:asse;;l1:"
"y4:memp;;l1:y4:assp;;l1:y8:reverse!;;l1:y9:circular?;;l1:y5:cons*;;l1:"
"y5:list*;;l1:y8:char-cmp;;l1:y11:char-ci-cmp;;l1:y10:string-cat;;l1:y1"
"5:string-position;;l1:y10:string-cmp;;l1:y13:string-ci-cmp;;l1:y10:vec"
"tor-cat;;l1:y12:bytevector=?;;l1:y16:bytevector->list;;l1:y16:list->by"
"tevector;;l1:y13:subbytevector;;l1:y19:standard-input-port;;l1:y20:sta"
"ndard-output-port;;l1:y19:standard-error-port;;l1:y9:tty-port?;;l1:y15"
":port-fold-case?;;l1:y19:set-port-fold-case!;;l1:y11:rename-file;;l1:y"
"17:current-directory;;l1:y19:directory-separator;;l1:y4:void;;l1:y5:vo"
"id?;;l1:y19:implementation-name;;l1:y22:implementation-version;;py20:*"
"user-name-registry*;y6:hidden;;py25:make-readonly-environment;y6:hidde"
"n;;py27:make-controlled-environment;y6:hidden;;py20:make-sld-environme"
"nt;y6:hidden;;py21:make-repl-environment;y6:hidden;;py19:find-library-"
"in-env;y6:hidden;;py16:root-environment;y6:hidden;;py16:repl-environme"
"nt;y6:hidden;;py17:empty-environment;y6:hidden;;py32:make-historic-rep"
"ort-environment;y6:hidden;;py16:r5rs-environment;y6:hidden;;py21:r5rs-"
"null-environment;y6:hidden;;py9:*verbose*;y6:hidden;;py7:*quiet*;y6:hi"
"dden;;py25:compile-and-run-core-expr;y6:hidden;;py17:evaluate-top-form"
";y6:hidden;;py10:run-script;y6:hidden;;py11:run-program;y6:hidden;;py2"
"2:repl-evaluate-top-form;y6:hidden;;py9:repl-read;y6:hidden;;py17:repl"
"-exec-command;y6:hidden;;py14:repl-from-port;y6:hidden;;py13:run-bench"
"mark;y6:hidden;;py4:repl;y6:hidden;;),&0{%1,,,,#0#1#2#3&0{%1.0,'(y1:w)"
",.1v?{'(l2:y6:scheme;y5:write;)]2}'(y1:t),.1v?{'(l2:y6:scheme;y4:time;"
")]2}'(y1:p),.1v?{'(l2:y6:scheme;y4:repl;)]2}'(y1:r),.1v?{'(l2:y6:schem"
"e;y4:read;)]2}'(y1:v),.1v?{'(l2:y6:scheme;y4:r5rs;)]2}'(y1:u),.1v?{'(l"
"2:y6:scheme;y9:r5rs-null;)]2}'(y1:d),.1v?{'(l2:y6:scheme;y4:load;)]2}'"
"(y1:z),.1v?{'(l2:y6:scheme;y4:lazy;)]2}'(y1:s),.1v?{'(l2:y6:scheme;y15"
":process-context;)]2}'(y1:i),.1v?{'(l2:y6:scheme;y7:inexact;)]2}'(y1:f"
"),.1v?{'(l2:y6:scheme;y4:file;)]2}'(y1:e),.1v?{'(l2:y6:scheme;y4:eval;"
")]2}'(y1:o),.1v?{'(l2:y6:scheme;y7:complex;)]2}'(y1:h),.1v?{'(l2:y6:sc"
"heme;y4:char;)]2}'(y1:l),.1v?{'(l2:y6:scheme;y11:case-lambda;)]2}'(y1:"
"a),.1v?{'(l2:y6:scheme;y3:cxr;)]2}'(y1:b),.1v?{'(l2:y6:scheme;y4:base;"
")]2}'(y1:x),.1v?{'(l2:y6:scheme;y3:box;)]2}.1I0?{.1,'(y4:srfi),l2]2}.1"
",l1]2}.!0&0{%1${&0{%1n,'(l1:y5:begin;),V12]1},.3,@(y20:*root-name-regi"
"stry*),@(y11:name-lookup)[03}z]1}.!1&0{%3'1,.1V4,.0,.3A3,.0?{.4,.1sd]5"
"}.1,.5,.5cc,'1,.4V5]5}.!2&0{%1&0{%1.0,'(y5:const),l2]1},.1,@(y20:*root"
"-name-registry*),@(y11:name-lookup)[13}.!3.4d,.5a,,#0.0,.6,.5,.7,.(i10"
"),&5{%2.1u?{${.2,:0^[01},.1,${'(l1:y5:skint;),:1^[01},:3^[23}.1p~?{${."
"2,:0^[01},.1,${n,.6c,'(y5:skint)c,:1^[01},:3^[23}${${.4,:0^[01},.3,${$"
"{.9a,:2^[01},:1^[01},:3^[03}.1d,.1,:4^[22}.!0.0^_1[52},@(y10:%25for-ea"
"ch1)[02}",
";l1:y5:letcc;;l1:y6:withcc;;l1:y13:syntax-lambda;;l1:y7:record?;;l1:y1"
"1:make-record;;l1:y13:record-length;;l1:y10:record-ref;;l1:y11:record-"
"set!;;l1:y6:expand;;l1:y7:fixnum?;;l1:y11:fxpositive?;;l1:y11:fxnegati"
"ve?;;l1:y7:fxeven?;;l1:y6:fxodd?;;l1:y7:fxzero?;;l1:y3:fx+;;l1:y3:fx*;"
";l1:y3:fx-;;l1:y3:fx/;;l1:y10:fxquotient;;l1:y11:fxremainder;;l1:y8:fx"
"modquo;;l1:y8:fxmodulo;;l1:y8:fxeucquo;;l1:y8:fxeucrem;;l1:y5:fxneg;;l"
"1:y5:fxabs;;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:fxneg;;l1:y5:fxabs;;l"
"1:y5:fxgcd;;l1:y6:fxexpt;;l1:y6:fxsqrt;;l1:y5:fxnot;;l1:y5:fxand;;l1:y"
"5:fxior;;l1:y5:fxxor;;l1:y5:fxsll;;l1:y5:fxsrl;;l1:y14:fixnum->flonum;"
";l1:y14:fixnum->string;;l1:y14:string->fixnum;;l1:y7:flonum?;;l1:y7:fl"
"zero?;;l1:y11:flpositive?;;l1:y11:flnegative?;;l1:y10:flinteger?;;l1:y"
"6:flnan?;;l1:y11:flinfinite?;;l1:y9:flfinite?;;l1:y7:fleven?;;l1:y6:fl"
"odd?;;l1:y3:fl+;;l1:y3:fl*;;l1:y3:fl-;;l1:y3:fl/;;l1:y5:flneg;;l1:y5:f"
"labs;;l1:y5:flgcd;;l1:y6:flexpt;;l1:y6:flsqrt;;l1:y7:flfloor;;l1:y9:fl"
"ceiling;;l1:y10:fltruncate;;l1:y7:flround;;l1:y5:flexp;;l1:y5:fllog;;l"
"1:y5:flsin;;l1:y5:flcos;;l1:y5:fltan;;l1:y6:flasin;;l1:y6:flacos;;l1:y"
"6:flatan;;l1:y4:fl<?;;l1:y5:fl<=?;;l1:y4:fl>?;;l1:y5:fl>=?;;l1:y4:fl=?"
";;l1:y5:fl!=?;;l1:y5:flmin;;l1:y5:flmax;;l1:y11:flremainder;;l1:y8:flm"
"odulo;;l1:y10:flquotient;;l1:y8:flmodquo;;l1:y14:flonum->fixnum;;l1:y1"
"4:flonum->string;;l1:y14:string->flonum;;l1:y8:list-cat;;l1:y9:last-pa"
"ir;;l1:y9:list-head;;l1:y4:meme;;l1:y4:asse;;l1:y4:memp;;l1:y4:assp;;l"
"1:y8:reverse!;;l1:y9:circular?;;l1:y5:cons*;;l1:y5:list*;;l1:y8:char-c"
"mp;;l1:y11:char-ci-cmp;;l1:y10:string-cat;;l1:y15:string-position;;l1:"
"y10:string-cmp;;l1:y13:string-ci-cmp;;l1:y10:vector-cat;;l1:y12:byteve"
"ctor=?;;l1:y16:bytevector->list;;l1:y16:list->bytevector;;l1:y13:subby"
"tevector;;l1:y19:standard-input-port;;l1:y20:standard-output-port;;l1:"
"y19:standard-error-port;;l1:y9:tty-port?;;l1:y15:port-fold-case?;;l1:y"
"19:set-port-fold-case!;;l1:y11:rename-file;;l1:y17:current-directory;;"
"l1:y19:directory-separator;;l1:y4:void;;l1:y5:void?;;l1:y19:implementa"
"tion-name;;l1:y22:implementation-version;;py20:*user-name-registry*;y6"
":hidden;;py25:make-readonly-environment;y6:hidden;;py27:make-controlle"
"d-environment;y6:hidden;;py20:make-sld-environment;y6:hidden;;py21:mak"
"e-repl-environment;y6:hidden;;py19:find-library-in-env;y6:hidden;;py16"
":root-environment;y6:hidden;;py16:repl-environment;y6:hidden;;py17:emp"
"ty-environment;y6:hidden;;py32:make-historic-report-environment;y6:hid"
"den;;py16:r5rs-environment;y6:hidden;;py21:r5rs-null-environment;y6:hi"
"dden;;py9:*verbose*;y6:hidden;;py7:*quiet*;y6:hidden;;py25:compile-and"
"-run-core-expr;y6:hidden;;py17:evaluate-top-form;y6:hidden;;py10:run-s"
"cript;y6:hidden;;py11:run-program;y6:hidden;;py22:repl-evaluate-top-fo"
"rm;y6:hidden;;py9:repl-read;y6:hidden;;py17:repl-exec-command;y6:hidde"
"n;;py14:repl-from-port;y6:hidden;;py13:run-benchmark;y6:hidden;;py4:re"
"pl;y6:hidden;;),&0{%1,,,,#0#1#2#3&0{%1.0,'(y1:w),.1v?{'(l2:y6:scheme;y"
"5:write;)]2}'(y1:t),.1v?{'(l2:y6:scheme;y4:time;)]2}'(y1:p),.1v?{'(l2:"
"y6:scheme;y4:repl;)]2}'(y1:r),.1v?{'(l2:y6:scheme;y4:read;)]2}'(y1:v),"
".1v?{'(l2:y6:scheme;y4:r5rs;)]2}'(y1:u),.1v?{'(l2:y6:scheme;y9:r5rs-nu"
"ll;)]2}'(y1:d),.1v?{'(l2:y6:scheme;y4:load;)]2}'(y1:z),.1v?{'(l2:y6:sc"
"heme;y4:lazy;)]2}'(y1:s),.1v?{'(l2:y6:scheme;y15:process-context;)]2}'"
"(y1:i),.1v?{'(l2:y6:scheme;y7:inexact;)]2}'(y1:f),.1v?{'(l2:y6:scheme;"
"y4:file;)]2}'(y1:e),.1v?{'(l2:y6:scheme;y4:eval;)]2}'(y1:o),.1v?{'(l2:"
"y6:scheme;y7:complex;)]2}'(y1:h),.1v?{'(l2:y6:scheme;y4:char;)]2}'(y1:"
"l),.1v?{'(l2:y6:scheme;y11:case-lambda;)]2}'(y1:a),.1v?{'(l2:y6:scheme"
";y3:cxr;)]2}'(y1:b),.1v?{'(l2:y6:scheme;y4:base;)]2}'(y1:x),.1v?{'(l2:"
"y6:scheme;y3:box;)]2}.1I0?{.1,'(y4:srfi),l2]2}.1,l1]2}.!0&0{%1${&0{%1n"
",'(l1:y5:begin;),V12]1},.3,@(y20:*root-name-registry*),@(y11:name-look"
"up)[03}z]1}.!1&0{%3'1,.1V4,.0,.3A3,.0?{.4,.1sd]5}.1,.5,.5cc,'1,.4V5]5}"
".!2&0{%1&0{%1.0,'(y5:const),l2]1},.1,@(y20:*root-name-registry*),@(y11"
":name-lookup)[13}.!3.4d,.5a,,#0.0,.6,.5,.7,.(i10),&5{%2.1u?{${.2,:0^[0"
"1},.1,${'(l1:y5:skint;),:1^[01},:3^[23}.1p~?{${.2,:0^[01},.1,${n,.6c,'"
"(y5:skint)c,:1^[01},:3^[23}${${.4,:0^[01},.3,${${.9a,:2^[01},:1^[01},:"
"3^[03}.1d,.1,:4^[22}.!0.0^_1[52},@(y10:%25for-each1)[02}",
"C", 0,
"@(y20:*root-name-registry*),${f,'(l1:y5:skint;),.4,@(y11:name-lookup)["