diff --git a/i.c b/i.c index 236788a..ad961c6 100644 --- a/i.c +++ b/i.c @@ -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); diff --git a/i.h b/i.h index c136ddb..12ce6b5 100644 --- a/i.h +++ b/i.h @@ -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 */ diff --git a/pre/s.scm b/pre/s.scm index c51177a..f9c4749 100644 --- a/pre/s.scm +++ b/pre/s.scm @@ -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 () diff --git a/pre/scm2c.ssc b/pre/scm2c.ssc index ee1b034..67a8c1e 100644 --- a/pre/scm2c.ssc +++ b/pre/scm2c.ssc @@ -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)))])) diff --git a/pre/t.scm b/pre/t.scm index 000fd85..5ef2e06 100644 --- a/pre/t.scm +++ b/pre/t.scm @@ -193,7 +193,6 @@ ; (body ...) ; (syntax-lambda ( ...) ) ; (syntax-rules ( ...) ...) -; (syntax-length
) ; (syntax-error ...) @@ -250,7 +249,7 @@ ; -> | | | | ; -> 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 ; -> ; -> @@ -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) diff --git a/s.c b/s.c index 1023e4e..f9558f6 100644 --- a/s.c +++ b/s.c @@ -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" diff --git a/t.c b/t.c index 90a0f44..e170eb4 100644 --- a/t.c +++ b/t.c @@ -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: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?;;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: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: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)["