mirror of
https://github.com/false-schemers/skint.git
synced 2024-12-26 21:58:51 +01:00
separation of root env (=> root + hidden)
This commit is contained in:
parent
373e9dec38
commit
b89b56655b
2 changed files with 122 additions and 81 deletions
56
src/t.scm
56
src/t.scm
|
@ -1853,6 +1853,21 @@
|
|||
; public registry for all non-hidden skint names
|
||||
(define *root-name-registry* (make-name-registry 300))
|
||||
|
||||
; nonpublic registry for all hidden skint names (used by built-in macros)
|
||||
(define *hidden-name-registry* (make-name-registry 1))
|
||||
|
||||
(define (builtin-sr-environment id at)
|
||||
(cond [(new-id? id) (new-id-lookup id at)]
|
||||
[(eq? at 'peek) ; for free-id=?
|
||||
(or (name-lookup *hidden-name-registry* id #f)
|
||||
(name-lookup *root-name-registry* id #f)
|
||||
*root-name-registry*)]
|
||||
[else
|
||||
(name-lookup *hidden-name-registry* id
|
||||
(lambda (n) ; create new bindings in rnr:
|
||||
(name-lookup *root-name-registry* id
|
||||
(lambda (n) (list 'ref n)))))]))
|
||||
|
||||
; register integrable procedures
|
||||
(let loop ([i 0])
|
||||
(let ([li (lookup-integrable i)]) ;=> #f, #<void>, or integrable (li == i)
|
||||
|
@ -1871,15 +1886,7 @@
|
|||
(name-lookup *root-name-registry* k (lambda (n) v))
|
||||
(loop l)]
|
||||
[(and (pair? v) (eq? (car v) 'syntax-rules))
|
||||
(body
|
||||
; this is the mac-env for built-in syntax-rules macros!
|
||||
(define (sr-env id at)
|
||||
(cond [(new-id? id) (new-id-lookup id at)]
|
||||
[(eq? at 'peek) ; for free-id=?
|
||||
(or (name-lookup *root-name-registry* id #f)
|
||||
*root-name-registry*)]
|
||||
[else (name-lookup *root-name-registry* id
|
||||
(lambda (n) (list 'ref n)))]))
|
||||
(let ([sr-env builtin-sr-environment])
|
||||
(define sr-v
|
||||
(if (id? (cadr v))
|
||||
(syntax-rules* sr-env (cadr v) (caddr v) (cdddr v))
|
||||
|
@ -1980,13 +1987,15 @@
|
|||
(interaction-environment p v) (null-environment v) (read r v) (scheme-report-environment v)
|
||||
(write w v) (current-jiffy t) (current-second t) (jiffies-per-second t) (write-shared w)
|
||||
(write-simple w)
|
||||
; these are special forms in skint!
|
||||
(define-library) (import) (export) (program)
|
||||
; selected extracts from r7rs-large and srfis
|
||||
(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 (skint) only
|
||||
(set&) (lambda*) (body) (letcc) (withcc) (syntax-lambda) (syntax-length)
|
||||
(record?) (make-record) (record-length) (record-ref) (record-set!)
|
||||
(fixnum?) (fxpositive?) (fxnegative?) (fxeven?) (fxodd?) (fx+) (fx*) (fx-) (fx/)
|
||||
(fixnum?) (fxpositive?) (fxnegative?) (fxeven?) (fxodd?) (fxzero?) (fx+) (fx*) (fx-) (fx/)
|
||||
(fxquotient) (fxremainder) (fxmodquo) (fxmodulo) (fxeucquo) (fxeucrem) (fxneg)
|
||||
(fxabs) (fx<?) (fx<=?) (fx>?) (fx>=?) (fx=?) (fx!=?) (fxmin) (fxmax) (fxneg) (fxabs) (fxgcd)
|
||||
(fxexpt) (fxsqrt) (fxnot) (fxand) (fxior) (fxxor) (fxsll) (fxsrl) (fixnum->flonum) (fixnum->string)
|
||||
|
@ -1994,17 +2003,30 @@
|
|||
(flinfinite?) (flfinite?) (fleven?) (flodd?) (fl+) (fl*) (fl-) (fl/) (flneg) (flabs) (flgcd)
|
||||
(flexpt) (flsqrt) (flfloor) (flceiling) (fltruncate) (flround) (flexp) (fllog) (flsin) (flcos)
|
||||
(fltan) (flasin) (flacos) (flatan) (fl<?) (fl<=?) (fl>?) (fl>=?) (fl=?) (fl!=?) (flmin)
|
||||
(flmax) (flonum->fixnum) (flonum->string) (string->flonum)
|
||||
(list-cat) (list-head) (meme) (asse) (reverse!) (circular?)
|
||||
(char-cmp) (char-ci-cmp) (string-cat) (string-position) (string-cmp) (string-ci-cmp)
|
||||
(vector-cat) (bytevector->list) (list->bytevector) (subbytevector)
|
||||
(flmax) (flremainder) (flmodulo) (flquotient) (flmodquo) (flonum->fixnum) (flonum->string)
|
||||
(string->flonum) (list-cat) (last-pair) (list-head) (meme) (asse) (reverse!) (circular?) (cons*)
|
||||
(list*) (char-cmp) (char-ci-cmp) (string-cat) (string-position) (string-cmp) (string-ci-cmp)
|
||||
(vector-cat) (bytevector=?) (bytevector->list) (list->bytevector) (subbytevector)
|
||||
(standard-input-port) (standard-output-port) (standard-error-port) (tty-port?)
|
||||
(rename-file)
|
||||
(port-fold-case?) (set-port-fold-case!) (rename-file) (void) (void?) (global-store)
|
||||
; temporarily here for debugging purposes
|
||||
(xform) (compile-and-run-core-expr) (compile-to-thunk-code) (deserialize-code)
|
||||
(closure) (repl-environment)
|
||||
;(xform) (compile-and-run-core-expr) (compile-to-thunk-code) (deserialize-code)
|
||||
;(closure) (repl-environment)
|
||||
))
|
||||
|
||||
; clean up root environment by moving all symbolic bindings not in (skint) library
|
||||
; to hidden name registry (so built-in macros can still work properly)
|
||||
(let* ([rr *root-name-registry*] [l (name-lookup rr '(skint) #f)]
|
||||
[eal (library-exports (location-val l))]
|
||||
[n-1 (- (vector-length rr) 1)]) ; sans listnames
|
||||
(do ([i 0 (+ i 1)]) [(= i n-1)]
|
||||
(let loop ([prev #f] [lst (vector-ref rr i)])
|
||||
(cond [(null? lst)]
|
||||
[(assq (caar lst) eal) (loop lst (cdr lst))]
|
||||
[else (if prev (set-cdr! prev (cdr lst)) (vector-set! rr i (cdr lst)))
|
||||
(name-install! *hidden-name-registry* (caar lst) (cdar lst))
|
||||
(loop prev (cdr lst))]))))
|
||||
|
||||
; private registry for names introduced in repl
|
||||
(define *user-name-registry* (make-name-registry 200))
|
||||
|
||||
|
|
135
t.c
135
t.c
|
@ -1069,6 +1069,17 @@ char *t_code[] = {
|
|||
"C", 0,
|
||||
"${'(i300),@(y18:make-name-registry)[01}@!(y20:*root-name-registry*)",
|
||||
|
||||
"C", 0,
|
||||
"${'1,@(y18:make-name-registry)[01}@!(y22:*hidden-name-registry*)",
|
||||
|
||||
"P", "builtin-sr-environment",
|
||||
"%2.0K0?{.1,.1,@(y13:new-id-lookup)[22}'(y4:peek),.2q?{${f,.3,@(y22:*hi"
|
||||
"dden-name-registry*),@(y11:name-lookup)[03},.0?{.0]3}${f,.4,@(y20:*roo"
|
||||
"t-name-registry*),@(y11:name-lookup)[03},.0?{.0]4}@(y20:*root-name-reg"
|
||||
"istry*)]4}.0,&1{%1&0{%1.0,'(y3:ref),l2]1},:0,@(y20:*root-name-registry"
|
||||
"*),@(y11:name-lookup)[13},.1,@(y22:*hidden-name-registry*),@(y11:name-"
|
||||
"lookup)[23",
|
||||
|
||||
"C", 0,
|
||||
"${'0,,#0.0,&1{%1.0U5,.0?{.1U0?{.1U7,.0Y0?{${.4,&1{%1:0]1},.3,@(y20:*ro"
|
||||
"ot-name-registry*),@(y11:name-lookup)[03}}_1}'1,.2+,:0^[21}]2}.!0.0^_1"
|
||||
|
@ -1077,13 +1088,11 @@ char *t_code[] = {
|
|||
"C", 0,
|
||||
"${U1,,#0.0,&1{%1.0u~?{.0a,.1d,.1a,.2d,.0Y0,.0?{.0}{.1U0}_1?{${.2,&1{%1"
|
||||
":0]1},.4,@(y20:*root-name-registry*),@(y11:name-lookup)[03}.2,:0^[51}."
|
||||
"0p?{'(y12:syntax-rules),.1aq}{f}?{,,#0#1&0{%2.0K0?{.1,.1,@(y13:new-id-"
|
||||
"lookup)[22}'(y4:peek),.2q?{${f,.3,@(y20:*root-name-registry*),@(y11:na"
|
||||
"me-lookup)[03},.0?{.0]3}@(y20:*root-name-registry*)]3}&0{%1.0,'(y3:ref"
|
||||
"),l2]1},.1,@(y20:*root-name-registry*),@(y11:name-lookup)[23}.!0${.4da"
|
||||
",@(y3:id?)[01}?{${.4ddd,.5dda,.6da,.5^,@(y13:syntax-rules*)[04}}{${.4d"
|
||||
"d,.5da,f,.5^,@(y13:syntax-rules*)[04}}.!1${.3,&1{%1:0^]1},.6,@(y20:*ro"
|
||||
"ot-name-registry*),@(y11:name-lookup)[03}.4,:0^[71}f]5}]1}.!0.0^_1[01}",
|
||||
"0p?{'(y12:syntax-rules),.1aq}{f}?{@(y22:builtin-sr-environment),,#0${."
|
||||
"4da,@(y3:id?)[01}?{${.4ddd,.5dda,.6da,.6,@(y13:syntax-rules*)[04}}{${."
|
||||
"4dd,.5da,f,.6,@(y13:syntax-rules*)[04}}.!0${.2,&1{%1:0^]1},.6,@(y20:*r"
|
||||
"oot-name-registry*),@(y11:name-lookup)[03}.4,:0^[71}f]5}]1}.!0.0^_1[01"
|
||||
"}",
|
||||
|
||||
"C", 0,
|
||||
"${&0{%1f,@(y24:make-include-transformer)[11},'(y7:include),@(y20:*root"
|
||||
|
@ -1098,7 +1107,7 @@ char *t_code[] = {
|
|||
"0:*root-name-registry*),@(y11:name-lookup)[03}",
|
||||
|
||||
"C", 0,
|
||||
"${'(l470:l3:y1:*;y1:v;y1:b;;l3:y1:+;y1:v;y1:b;;l3:y1:-;y1:v;y1:b;;l4:y"
|
||||
"${'(l482: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"
|
||||
|
@ -1227,56 +1236,66 @@ char *t_code[] = {
|
|||
"6:null-environment;y1:v;;l3:y4:read;y1:r;y1:v;;l2:y25:scheme-report-en"
|
||||
"vironment;y1:v;;l3:y5:write;y1:w;y1:v;;l2:y13:current-jiffy;y1:t;;l2:y"
|
||||
"14:current-second;y1:t;;l2:y18:jiffies-per-second;y1:t;;l2:y12:write-s"
|
||||
"hared;y1:w;;l2:y12:write-simple;y1:w;;l3:y4:box?;y1:x;i111;;l3:y3:box;"
|
||||
"y1:x;i111;;l3:y5:unbox;y1:x;i111;;l3:y8:set-box!;y1:x;i111;;l3:y6:form"
|
||||
"at;i28;i48;;l1:y7:fprintf;;l1:y19:format-pretty-print;;l1:y18:format-f"
|
||||
"ixed-print;;l1:y17:format-fresh-line;;l1:y18:format-help-string;;l1:y4"
|
||||
":set&;;l1:y7:lambda*;;l1:y4:body;;l1:y5:letcc;;l1:y6:withcc;;l1:y13:sy"
|
||||
"ntax-lambda;;l1:y13:syntax-length;;l1:y7:record?;;l1:y11:make-record;;"
|
||||
"l1:y13:record-length;;l1:y10:record-ref;;l1:y11:record-set!;;l1:y7:fix"
|
||||
"num?;;l1:y11:fxpositive?;;l1:y11:fxnegative?;;l1:y7:fxeven?;;l1:y6:fxo"
|
||||
"dd?;;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:y"
|
||||
"8:fxeucrem;;l1:y5:fxneg;;l1:y5:fxabs;;l1:y4:fx<?;;l1:y5:fx<=?;;l1:y4:f"
|
||||
"x>?;;l1:y5:fx>=?;;l1:y4:fx=?;;l1:y5:fx!=?;;l1:y5:fxmin;;l1:y5:fxmax;;l"
|
||||
"1:y5:fxneg;;l1:y5:fxabs;;l1:y5:fxgcd;;l1:y6:fxexpt;;l1:y6:fxsqrt;;l1:y"
|
||||
"5:fxnot;;l1:y5:fxand;;l1:y5:fxior;;l1:y5:fxxor;;l1:y5:fxsll;;l1:y5:fxs"
|
||||
"rl;;l1:y14:fixnum->flonum;;l1:y14:fixnum->string;;l1:y14:string->fixnu"
|
||||
"m;;l1:y7:flonum?;;l1:y7:flzero?;;l1:y11:flpositive?;;l1:y11:flnegative"
|
||||
"?;;l1:y10:flinteger?;;l1:y6:flnan?;;l1:y11:flinfinite?;;l1:y9:flfinite"
|
||||
"?;;l1: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:flsqr"
|
||||
"t;;l1:y7:flfloor;;l1:y9:flceiling;;l1:y10:fltruncate;;l1:y7:flround;;l"
|
||||
"1:y5:flexp;;l1:y5:fllog;;l1:y5:flsin;;l1:y5:flcos;;l1:y5:fltan;;l1:y6:"
|
||||
"flasin;;l1:y6:flacos;;l1:y6: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:"
|
||||
"y14:flonum->fixnum;;l1:y14:flonum->string;;l1:y14:string->flonum;;l1:y"
|
||||
"8:list-cat;;l1:y9:list-head;;l1:y4:meme;;l1:y4:asse;;l1:y8:reverse!;;l"
|
||||
"1:y9:circular?;;l1:y8:char-cmp;;l1:y11:char-ci-cmp;;l1:y10:string-cat;"
|
||||
";l1:y15:string-position;;l1:y10:string-cmp;;l1:y13:string-ci-cmp;;l1:y"
|
||||
"10:vector-cat;;l1:y16:bytevector->list;;l1:y16:list->bytevector;;l1:y1"
|
||||
"3:subbytevector;;l1:y19:standard-input-port;;l1:y20:standard-output-po"
|
||||
"rt;;l1:y19:standard-error-port;;l1:y9:tty-port?;;l1:y11:rename-file;;l"
|
||||
"1:y5:xform;;l1:y25:compile-and-run-core-expr;;l1:y21:compile-to-thunk-"
|
||||
"code;;l1:y16:deserialize-code;;l1:y7:closure;;l1:y16:repl-environment;"
|
||||
";),&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:scheme;y4:read;)]2}'(y1:v),.1v?{'(l2:y6:"
|
||||
"scheme;y4:r5rs;)]2}'(y1:u),.1v?{'(l2: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: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:begi"
|
||||
"n;),V12]1},.3,@(y20:*root-name-registry*),@(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}${${.4,:0^[01},.3,${${.9a,:2^[01},:1^[01},:3"
|
||||
"^[03}.1d,.1,:4^[22}.!0.0^_1[52},@(y10:%25for-each1)[02}",
|
||||
"hared;y1:w;;l2:y12:write-simple;y1:w;;l1:y14:define-library;;l1:y6:imp"
|
||||
"ort;;l1:y6:export;;l1:y7:program;;l3:y4:box?;y1:x;i111;;l3:y3:box;y1:x"
|
||||
";i111;;l3:y5:unbox;y1:x;i111;;l3:y8:set-box!;y1:x;i111;;l3:y6:format;i"
|
||||
"28;i48;;l1:y7:fprintf;;l1:y19:format-pretty-print;;l1:y18:format-fixed"
|
||||
"-print;;l1:y17:format-fresh-line;;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:y"
|
||||
"13:record-length;;l1:y10:record-ref;;l1:y11:record-set!;;l1:y7:fixnum?"
|
||||
";;l1:y11:fxpositive?;;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:fxq"
|
||||
"uotient;;l1:y11:fxremainder;;l1:y8:fxmodquo;;l1:y8:fxmodulo;;l1:y8:fxe"
|
||||
"ucquo;;l1:y8:fxeucrem;;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:f"
|
||||
"xsqrt;;l1:y5:fxnot;;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:st"
|
||||
"ring->fixnum;;l1:y7:flonum?;;l1:y7:flzero?;;l1:y11:flpositive?;;l1:y11"
|
||||
":flnegative?;;l1:y10:flinteger?;;l1:y6:flnan?;;l1:y11:flinfinite?;;l1:"
|
||||
"y9:flfinite?;;l1: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;;l1: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:fl"
|
||||
"tan;;l1:y6:flasin;;l1:y6:flacos;;l1:y6: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:flmodulo;;l1:y10:flquotient;;l1:y8:f"
|
||||
"lmodquo;;l1:y14:flonum->fixnum;;l1:y14:flonum->string;;l1:y14:string->"
|
||||
"flonum;;l1:y8:list-cat;;l1:y9:last-pair;;l1:y9:list-head;;l1:y4:meme;;"
|
||||
"l1:y4:asse;;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:y15:string-"
|
||||
"position;;l1:y10:string-cmp;;l1:y13:string-ci-cmp;;l1:y10:vector-cat;;"
|
||||
"l1:y12:bytevector=?;;l1:y16:bytevector->list;;l1:y16:list->bytevector;"
|
||||
";l1:y13:subbytevector;;l1:y19:standard-input-port;;l1:y20:standard-out"
|
||||
"put-port;;l1:y19:standard-error-port;;l1:y9:tty-port?;;l1:y15:port-fol"
|
||||
"d-case?;;l1:y19:set-port-fold-case!;;l1:y11:rename-file;;l1:y4:void;;l"
|
||||
"1:y5:void?;;l1:y12:global-store;;),&0{%1,,,,#0#1#2#3&0{%1.0,'(y1:w),.1"
|
||||
"v?{'(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:scheme;y"
|
||||
"4:read;)]2}'(y1:v),.1v?{'(l2:y6:scheme;y4:r5rs;)]2}'(y1:u),.1v?{'(l2:y"
|
||||
"6: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:pr"
|
||||
"ocess-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:schem"
|
||||
"e;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-registr"
|
||||
"y*),@(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-na"
|
||||
"me-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}${${.4,:0^[0"
|
||||
"1},.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)["
|
||||
"03},'1,.1zV4,'1,.3V3-,${'0,,#0.0,.6,.9,.7,&4{%1:0,.1=?{]1}${.2,:1V4,f,"
|
||||
",#0:2,.6,:1,.3,&4{%2.1u,.0?{.0]3}:3,.3aaA3?{.2d,.3,:0^[32}.1?{.2d,.2sd"
|
||||
"}{.2d,:2,:1V5}${.4ad,.5aa,@(y22:*hidden-name-registry*),@(y13:name-ins"
|
||||
"tall!)[03}.2d,.2,:0^[32}.!0.0^_1[02}'1,.1+,:3^[11}.!0.0^_1[01}_1_1_1_1",
|
||||
|
||||
"C", 0,
|
||||
"${'(i200),@(y18:make-name-registry)[01}@!(y20:*user-name-registry*)",
|
||||
|
|
Loading…
Reference in a new issue