bug fix in lib fetch; format added to s.scm

This commit is contained in:
ESL 2024-07-09 22:21:30 -04:00
parent da3255ab71
commit c30ed2217d
4 changed files with 189 additions and 70 deletions

44
s.c
View file

@ -1000,5 +1000,49 @@ char *s_code[] = {
"P", "feature-available?", "P", "feature-available?",
"%1.0Y0?{${@(y8:features)[00},.1A0]1}f]1", "%1.0Y0?{${@(y8:features)[00},.1A0]1}f]1",
"C", 0,
"${@(y5:write),@(y14:make-parameter)[01}@!(y19:format-pretty-print)",
"C", 0,
"${&0{%4.3,.1W4]4},@(y14:make-parameter)[01}@!(y18:format-fixed-print)",
"C", 0,
"${@(y7:newline),@(y14:make-parameter)[01}@!(y17:format-fresh-line)",
"C", 0,
"${'(s78:supported directives: ~~ ~%25 ~%25 ~& ~t ~_ ~a ~s ~w ~y ~c ~b "
"~o ~d ~x ~f ~? ~k ~*),@(y14:make-parameter)[01}@!(y18:format-help-stri"
"ng)",
"P", "fprintf",
"%!2,,,,#0#1#2#3&0{%1.0p?{.0a]1}'(s35:format: no argument for ~ directi"
"ve),@(y5:error)[11}.!0&0{%1.0p?{.0a]1}'(s30:format: incomplete ~ direc"
"tive),@(y5:error)[11}.!1&0{%3.1N0?{.2,.1,.3E8W4]3}.2,.2W5]3}.!2.1,&1{%"
"3.1,${.3,:0^[01},.2,,#0.0,:0,.8,&3{%3.1C5?{'0,.3z<?{'0,.3sz}.1Cv,'(i10"
"),.4z*+,.3sz.2,${.3d,:1^[01},.2d,:2^[33}'(c,),.2C=?{:0,${.3d,:1^[01},."
"2d,:2^[33}.0]3}.!0.0^_1[33}.!3.4,.7X2,,#0.0,.9,.8,.6,.9,&5{%2.0u?{.1]2"
"}'(c~),.1aC=?{.0du?{${'(s34:format: incomplete escape sequence),@(y5:e"
"rror)[01}}'(i-1),#0'(i-1),#0${.2,.4,.6d,:2^[03},.0aCd,'(c*),.1v?{.5dd,"
".2d,:4^[62}'(c~),.1v?{:3,'(c~)W0.5,.2d,:4^[62}'(c%25),.1v?{:3W6.5,.2d,"
":4^[62}'(ct),.1v?{:3,'(c%09)W0.5,.2d,:4^[62}'(c_),.1v?{:3,'(c )W0.5,.2"
"d,:4^[62}'(c&),.1v?{${:3,${@(y17:format-fresh-line)[00}[01}.5,.2d,:4^["
"62}'(cs),.1v?{:3,${.8,:1^[01}W5.5d,.2d,:4^[62}'(ca),.1v?{:3,${.8,:1^[0"
"1}W4.5d,.2d,:4^[62}'(cw),.1v?{:3,${.8,:1^[01}W7.5d,.2d,:4^[62}'(cc),.1"
"v?{:3,${.8,:1^[01}W0.5d,.2d,:4^[62}'(cb),.1v?{${:3,${.(i10),:1^[01},'2"
",:0^[03}.5d,.2d,:4^[62}'(co),.1v?{${:3,${.(i10),:1^[01},'8,:0^[03}.5d,"
".2d,:4^[62}'(cd),.1v?{${:3,${.(i10),:1^[01},'(i10),:0^[03}.5d,.2d,:4^["
"62}'(cx),.1v?{${:3,${.(i10),:1^[01},'(i16),:0^[03}.5d,.2d,:4^[62}'(ch)"
",.1v?{:3,${@(y18:format-help-string)[00}W4.5,.2d,:4^[62}'(cy),.1v?{${:"
"3,${.(i10),:1^[01},${@(y19:format-pretty-print)[00}[02}.5d,.2d,:4^[62}"
"'(cf),.1v?{${:3,.5^,.7^,${.(i12),:1^[01},${@(y18:format-fixed-print)[0"
"0}[04}.5d,.2d,:4^[62}'(l2:c?;ck;),.1A1?{${${${.(i11),:1^[01},:1^[01},$"
"{.(i10),:1^[01}X2,:4^[02}.5dd,.2d,:4^[62}.1a,'(s32:format: unrecognize"
"d ~ directive),@(y5:error)[62}:3,.1aW0.1,.1d,:4^[22}.!0.0^_1[72",
"P", "format",
"%!1f,.2q,.0?{.0}{.2S0}_1?{P51,.2?{.1,.3c}{.1},${.2,.4c,@(y7:fprintf),@"
"(y13:apply-to-list)[02}.1P90]4}t,.2q?{.0,Poc,@(y7:fprintf),@(y13:apply"
"-to-list)[22}.0,.2c,@(y7:fprintf),@(y13:apply-to-list)[22",
0, 0, 0 0, 0, 0
}; };

View file

@ -1947,3 +1947,69 @@
;exit ;exit
;emergency-exit ;emergency-exit
;get-environment-variables ;get-environment-variables
;---------------------------------------------------------------------------------------------
; Extras
;---------------------------------------------------------------------------------------------
; SRFI-48 compatible intermediate formatting (advanced functionality accessible via params)
(define format-pretty-print
(make-parameter write))
(define format-fixed-print ; TODO: add (number->string/fixed arg ww dd) instruction
(make-parameter (lambda (arg wd dd p) (display arg p))))
(define format-fresh-line ; TODO: add (fresh-line [p]) instruction for source ports
(make-parameter newline))
(define format-help-string
(make-parameter "supported directives: ~~ ~% ~% ~& ~t ~_ ~a ~s ~w ~y ~c ~b ~o ~d ~x ~f ~? ~k ~*"))
(define (fprintf p fs . args)
(define (hd args)
(if (pair? args) (car args) (error "format: no argument for ~ directive")))
(define (fhd fl)
(if (pair? fl) (car fl) (error "format: incomplete ~ directive")))
(define (write-num rx arg p)
(if (number? arg) (display (number->string arg rx) p) (write arg p)))
(define (memd fl &w &d)
(let loop ([fl fl] [c (fhd fl)] [&n &w])
(cond [(char-numeric? c)
(when (< (unbox &n) 0) (set-box! &n 0))
(set-box! &n (+ (* (unbox &n) 10) (digit-value c)))
(loop (cdr fl) (fhd (cdr fl)) &n)]
[(char=? c #\,)
(loop (cdr fl) (fhd (cdr fl)) &d)]
[else fl])))
(let lp ([fl (string->list fs)] [args args])
(cond [(null? fl) args] ; formally unspecified, but useful value
[(char=? (car fl) #\~)
(when (null? (cdr fl)) (error "format: incomplete escape sequence"))
(let* ([w -1] [d -1] [fl (memd (cdr fl) (set& w) (set& d))])
(case (char-downcase (car fl))
[(#\*) (lp (cdr fl) (cddr args))] ;+ CL
[(#\~) (write-char #\~ p) (lp (cdr fl) args)]
[(#\%) (newline p) (lp (cdr fl) args)]
[(#\t) (write-char #\tab p) (lp (cdr fl) args)]
[(#\_) (write-char #\space p) (lp (cdr fl) args)]
[(#\&) ((format-fresh-line) p) (lp (cdr fl) args)]
[(#\s) (write (hd args) p) (lp (cdr fl) (cdr args))]
[(#\a) (display (hd args) p) (lp (cdr fl) (cdr args))]
[(#\w) (write-shared (hd args) p) (lp (cdr fl) (cdr args))]
[(#\c) (write-char (hd args) p) (lp (cdr fl) (cdr args))]
[(#\b) (write-num 2 (hd args) p) (lp (cdr fl) (cdr args))]
[(#\o) (write-num 8 (hd args) p) (lp (cdr fl) (cdr args))]
[(#\d) (write-num 10 (hd args) p) (lp (cdr fl) (cdr args))]
[(#\x) (write-num 16 (hd args) p) (lp (cdr fl) (cdr args))]
[(#\h) (display (format-help-string) p) (lp (cdr fl) args)]
[(#\y) ((format-pretty-print) (hd args) p) (lp (cdr fl) (cdr args))]
[(#\f) ((format-fixed-print) (hd args) w d p) (lp (cdr fl) (cdr args))]
[(#\? #\k) (lp (string->list (hd args)) (hd (hd args))) (lp (cdr fl) (cddr args))]
[else (error "format: unrecognized ~ directive" (car fl))]))]
[else (write-char (car fl) p) (lp (cdr fl) args)])))
(define (format arg . args)
(cond [(or (eq? arg #f) (string? arg))
(let ([args (if arg (cons arg args) args)] [p (open-output-string)])
(apply fprintf p args) (get-output-string p))]
[(eq? arg #t) (apply fprintf (current-output-port) args)]
[else (apply fprintf arg args)]))

View file

@ -1820,7 +1820,8 @@
[(d) '(scheme load)] [(z) '(scheme lazy)] [(s) '(scheme process-context)] [(d) '(scheme load)] [(z) '(scheme lazy)] [(s) '(scheme process-context)]
[(i) '(scheme inexact)] [(f) '(scheme file)] [(e) '(scheme eval)] [(i) '(scheme inexact)] [(f) '(scheme file)] [(e) '(scheme eval)]
[(o) '(scheme complex)] [(h) '(scheme char)] [(l) '(scheme case-lambda)] [(o) '(scheme complex)] [(h) '(scheme char)] [(l) '(scheme case-lambda)]
[(x) '(scheme cxr)] [(b) '(scheme base)])) [(a) '(scheme cxr)] [(b) '(scheme base)] [(x) '(scheme box)]
[else (if (exact-integer? k) (list 'srfi k) (list k))]))
(define (get-library! listname) ;=> <library> (define (get-library! listname) ;=> <library>
(location-val (location-val
(name-lookup *root-name-registry* listname (name-lookup *root-name-registry* listname
@ -1882,10 +1883,10 @@
(char-upcase v h) (char-upper-case? v h) (char-whitespace? v h) (digit-value h) (string-ci<=? v h) (char-upcase v h) (char-upper-case? v h) (char-whitespace? v h) (digit-value h) (string-ci<=? v h)
(string-ci<? v h) (string-ci=? v h) (string-ci>=? v h) (string-ci>? v h) (string-downcase h) (string-ci<? v h) (string-ci=? v h) (string-ci>=? v h) (string-ci>? v h) (string-downcase h)
(string-foldcase h) (string-upcase h) (angle v o) (imag-part v o) (magnitude v o) (make-polar v o) (string-foldcase h) (string-upcase h) (angle v o) (imag-part v o) (magnitude v o) (make-polar v o)
(make-rectangular v o) (real-part v o) (caaar v x) (caadr v x) (cadar v x) (caddr v x) (cdaar v x) (make-rectangular v o) (real-part v o) (caaar v a) (caadr v a) (cadar v a) (caddr v a) (cdaar v a)
(cdadr v x) (cddar v x) (cdddr v x) (caaaar v x) (caaadr v x) (caadar v x) (caaddr v x) (cadaar v x) (cdadr v a) (cddar v a) (cdddr v a) (caaaar v a) (caaadr v a) (caadar v a) (caaddr v a) (cadaar v a)
(cadadr v x) (caddar v x) (cadddr v x) (cdaaar v x) (cdaadr v x) (cdadar v x) (cdaddr v x) (cadadr v a) (caddar v a) (cadddr v a) (cdaaar v a) (cdaadr v a) (cdadar v a) (cdaddr v a)
(cddaar v x) (cddadr v x) (cdddar v x) (cddddr v x) (environment e) (eval v e) (cddaar v a) (cddadr v a) (cdddar v a) (cddddr v a) (environment e) (eval v e)
(call-with-input-file v f) (call-with-output-file v f) (delete-file f) (file-exists? f) (call-with-input-file v f) (call-with-output-file v f) (delete-file f) (file-exists? f)
(open-binary-input-file f) (open-binary-output-file f) (open-input-file v f) (open-output-file v f) (open-binary-input-file f) (open-binary-output-file f) (open-input-file v f) (open-output-file v f)
(with-input-from-file v f) (with-output-to-file v f) (acos v z i) (asin v z i) (atan v z i) (with-input-from-file v f) (with-output-to-file v f) (acos v z i) (asin v z i) (atan v z i)
@ -1896,10 +1897,13 @@
(interaction-environment p v) (null-environment v) (read r v) (scheme-report-environment v) (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 w v) (current-jiffy t) (current-second t) (jiffies-per-second t) (write-shared w)
(write-simple w) (write-simple w)
; 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 (repl) only - not to be confused with (scheme repl) ; skint extras go into (repl) only - not to be confused with (scheme repl)
(set&) (lambda*) (body) (letcc) (withcc) (syntax-lambda) (syntax-length) (set&) (lambda*) (body) (letcc) (withcc) (syntax-lambda) (syntax-length)
(box?) (box) (unbox) (set-box!) (record?) (make-record) (record-length) (record-ref) (record?) (make-record) (record-length) (record-ref) (record-set!)
(record-set!) (fixnum?) (fxpositive?) (fxnegative?) (fxeven?) (fxodd?) (fx+) (fx*) (fx-) (fx/) (fixnum?) (fxpositive?) (fxnegative?) (fxeven?) (fxodd?) (fx+) (fx*) (fx-) (fx/)
(fxquotient) (fxremainder) (fxmodquo) (fxmodulo) (fxeucquo) (fxeucrem) (fxneg) (fxquotient) (fxremainder) (fxmodquo) (fxmodulo) (fxeucquo) (fxeucrem) (fxneg)
(fxabs) (fx<?) (fx<=?) (fx>?) (fx>=?) (fx=?) (fx!=?) (fxmin) (fxmax) (fxneg) (fxabs) (fxgcd) (fxabs) (fx<?) (fx<=?) (fx>?) (fx>=?) (fx=?) (fx!=?) (fxmin) (fxmax) (fxneg) (fxabs) (fxgcd)
(fxexpt) (fxsqrt) (fxnot) (fxand) (fxior) (fxxor) (fxsll) (fxsrl) (fixnum->flonum) (fixnum->string) (fxexpt) (fxsqrt) (fxnot) (fxand) (fxior) (fxxor) (fxsll) (fxsrl) (fixnum->flonum) (fixnum->string)
@ -1907,10 +1911,11 @@
(flinfinite?) (flfinite?) (fleven?) (flodd?) (fl+) (fl*) (fl-) (fl/) (flneg) (flabs) (flgcd) (flinfinite?) (flfinite?) (fleven?) (flodd?) (fl+) (fl*) (fl-) (fl/) (flneg) (flabs) (flgcd)
(flexpt) (flsqrt) (flfloor) (flceiling) (fltruncate) (flround) (flexp) (fllog) (flsin) (flcos) (flexpt) (flsqrt) (flfloor) (flceiling) (fltruncate) (flround) (flexp) (fllog) (flsin) (flcos)
(fltan) (flasin) (flacos) (flatan (y)) (fl<?) (fl<=?) (fl>?) (fl>=?) (fl=?) (fl!=?) (flmin) (fltan) (flasin) (flacos) (flatan (y)) (fl<?) (fl<=?) (fl>?) (fl>=?) (fl=?) (fl!=?) (flmin)
(flmax) (flonum->fixnum) (flonum->string) (string->flonum) (list-cat) (meme) (asse) (reverse!) (flmax) (flonum->fixnum) (flonum->string) (string->flonum)
(circular?) (char-cmp) (char-ci-cmp) (string-cat) (string-position) (string-cmp) (string-ci-cmp) (list-cat) (meme) (asse) (reverse!) (circular?)
(vector-cat) (bytevector->list) (list->bytevector) (subbytevector) (standard-input-port) (char-cmp) (char-ci-cmp) (string-cat) (string-position) (string-cmp) (string-ci-cmp)
(standard-output-port) (standard-error-port) (rename-file) (vector-cat) (bytevector->list) (list->bytevector) (subbytevector)
(standard-input-port) (standard-output-port) (standard-error-port) (rename-file)
)) ))
; private registry for names introduced in repl ; private registry for names introduced in repl
@ -1980,7 +1985,7 @@
[(not (listname? id)) #f] [(not (listname? id)) #f]
[else (name-lookup rr id [else (name-lookup rr id
(lambda (n) ; no library? see if we can fetch it recursively (lambda (n) ; no library? see if we can fetch it recursively
(fetch-library name sld-env)))])) ;=> <library> or #f (fetch-library id sld-env)))])) ;=> <library> or #f
sld-env) sld-env)
; makes mutable environments from two registries; new bindings go to user registry ; makes mutable environments from two registries; new bindings go to user registry
@ -1994,8 +1999,8 @@
(lambda (n) ; ok, not in ur: check rr (lambda (n) ; ok, not in ur: check rr
(or (name-lookup rr name ; if in rr, return it as-is (or (name-lookup rr name ; if in rr, return it as-is
(lambda (n) ; not in rr: see if it is a library to autoload (lambda (n) ; not in rr: see if it is a library to autoload
(and (listname? name) ; special default value: autoload from .sld (and (listname? name) ; default value: autoload from .sld
(let ([sld-env (make-sld-environment rr)]) ; make env for .sld files (let ([sld-env (make-sld-environment rr)])
(fetch-library name sld-env))))) ;=> <library> or #f (fetch-library name sld-env))))) ;=> <library> or #f
(and (symbol? name) (list 'ref (global name))))))] ; alloc in repl store (and (symbol? name) (list 'ref (global name))))))] ; alloc in repl store
[(eq? at 'set!) ; for assigning new values to variables [(eq? at 'set!) ; for assigning new values to variables

116
t.c
View file

@ -1056,7 +1056,7 @@ char *t_code[] = {
"0:*root-name-registry*),@(y11:name-lookup)[03}", "0:*root-name-registry*),@(y11:name-lookup)[03}",
"C", 0, "C", 0,
"${'(l456:l3:y1:*;y1:v;y1:b;;l3:y1:+;y1:v;y1:b;;l3:y1:-;y1:v;y1:b;;l4:y" "${'(l462: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"
@ -1158,15 +1158,15 @@ char *t_code[] = {
"2:y15:string-foldcase;y1:h;;l2:y13:string-upcase;y1:h;;l3:y5:angle;y1:" "2:y15:string-foldcase;y1:h;;l2:y13:string-upcase;y1:h;;l3:y5:angle;y1:"
"v;y1:o;;l3:y9:imag-part;y1:v;y1:o;;l3:y9:magnitude;y1:v;y1:o;;l3:y10:m" "v;y1:o;;l3:y9:imag-part;y1:v;y1:o;;l3:y9:magnitude;y1:v;y1:o;;l3:y10:m"
"ake-polar;y1:v;y1:o;;l3:y16:make-rectangular;y1:v;y1:o;;l3:y9:real-par" "ake-polar;y1:v;y1:o;;l3:y16:make-rectangular;y1:v;y1:o;;l3:y9:real-par"
"t;y1:v;y1:o;;l3:y5:caaar;y1:v;y1:x;;l3:y5:caadr;y1:v;y1:x;;l3:y5:cadar" "t;y1:v;y1:o;;l3:y5:caaar;y1:v;y1:a;;l3:y5:caadr;y1:v;y1:a;;l3:y5:cadar"
";y1:v;y1:x;;l3:y5:caddr;y1:v;y1:x;;l3:y5:cdaar;y1:v;y1:x;;l3:y5:cdadr;" ";y1:v;y1:a;;l3:y5:caddr;y1:v;y1:a;;l3:y5:cdaar;y1:v;y1:a;;l3:y5:cdadr;"
"y1:v;y1:x;;l3:y5:cddar;y1:v;y1:x;;l3:y5:cdddr;y1:v;y1:x;;l3:y6:caaaar;" "y1:v;y1:a;;l3:y5:cddar;y1:v;y1:a;;l3:y5:cdddr;y1:v;y1:a;;l3:y6:caaaar;"
"y1:v;y1:x;;l3:y6:caaadr;y1:v;y1:x;;l3:y6:caadar;y1:v;y1:x;;l3:y6:caadd" "y1:v;y1:a;;l3:y6:caaadr;y1:v;y1:a;;l3:y6:caadar;y1:v;y1:a;;l3:y6:caadd"
"r;y1:v;y1:x;;l3:y6:cadaar;y1:v;y1:x;;l3:y6:cadadr;y1:v;y1:x;;l3:y6:cad" "r;y1:v;y1:a;;l3:y6:cadaar;y1:v;y1:a;;l3:y6:cadadr;y1:v;y1:a;;l3:y6:cad"
"dar;y1:v;y1:x;;l3:y6:cadddr;y1:v;y1:x;;l3:y6:cdaaar;y1:v;y1:x;;l3:y6:c" "dar;y1:v;y1:a;;l3:y6:cadddr;y1:v;y1:a;;l3:y6:cdaaar;y1:v;y1:a;;l3:y6:c"
"daadr;y1:v;y1:x;;l3:y6:cdadar;y1:v;y1:x;;l3:y6:cdaddr;y1:v;y1:x;;l3:y6" "daadr;y1:v;y1:a;;l3:y6:cdadar;y1:v;y1:a;;l3:y6:cdaddr;y1:v;y1:a;;l3:y6"
":cddaar;y1:v;y1:x;;l3:y6:cddadr;y1:v;y1:x;;l3:y6:cdddar;y1:v;y1:x;;l3:" ":cddaar;y1:v;y1:a;;l3:y6:cddadr;y1:v;y1:a;;l3:y6:cdddar;y1:v;y1:a;;l3:"
"y6:cddddr;y1:v;y1:x;;l2:y11:environment;y1:e;;l3:y4:eval;y1:v;y1:e;;l3" "y6:cddddr;y1:v;y1:a;;l2:y11:environment;y1:e;;l3:y4:eval;y1:v;y1:e;;l3"
":y20:call-with-input-file;y1:v;y1:f;;l3:y21:call-with-output-file;y1:v" ":y20:call-with-input-file;y1:v;y1:f;;l3:y21:call-with-output-file;y1:v"
";y1:f;;l2:y11:delete-file;y1:f;;l2:y12:file-exists?;y1:f;;l2:y22:open-" ";y1:f;;l2:y11:delete-file;y1:f;;l2:y12:file-exists?;y1:f;;l2:y22:open-"
"binary-input-file;y1:f;;l2:y23:open-binary-output-file;y1:f;;l3:y15:op" "binary-input-file;y1:f;;l2:y23:open-binary-output-file;y1:f;;l3:y15:op"
@ -1185,50 +1185,54 @@ char *t_code[] = {
"6:null-environment;y1:v;;l3:y4:read;y1:r;y1:v;;l2:y25:scheme-report-en" "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" "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" "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;;l1:y4:set&;;l1:y7:lambda*;;l1:y4" "hared;y1:w;;l2:y12:write-simple;y1:w;;l3:y4:box?;y1:x;i111;;l3:y3:box;"
":body;;l1:y5:letcc;;l1:y6:withcc;;l1:y13:syntax-lambda;;l1:y13:syntax-" "y1:x;i111;;l3:y5:unbox;y1:x;i111;;l3:y8:set-box!;y1:x;i111;;l3:y6:form"
"length;;l1:y4:box?;;l1:y3:box;;l1:y5:unbox;;l1:y8:set-box!;;l1:y7:reco" "at;i28;i48;;l1:y7:fprintf;;l1:y19:format-pretty-print;;l1:y18:format-f"
"rd?;;l1:y11:make-record;;l1:y13:record-length;;l1:y10:record-ref;;l1:y" "ixed-print;;l1:y17:format-fresh-line;;l1:y18:format-help-string;;l1:y4"
"11:record-set!;;l1:y7:fixnum?;;l1:y11:fxpositive?;;l1:y11:fxnegative?;" ":set&;;l1:y7:lambda*;;l1:y4:body;;l1:y5:letcc;;l1:y6:withcc;;l1:y13:sy"
";l1:y7:fxeven?;;l1:y6:fxodd?;;l1:y3:fx+;;l1:y3:fx*;;l1:y3:fx-;;l1:y3:f" "ntax-lambda;;l1:y13:syntax-length;;l1:y7:record?;;l1:y11:make-record;;"
"x/;;l1:y10:fxquotient;;l1:y11:fxremainder;;l1:y8:fxmodquo;;l1:y8:fxmod" "l1:y13:record-length;;l1:y10:record-ref;;l1:y11:record-set!;;l1:y7:fix"
"ulo;;l1:y8:fxeucquo;;l1:y8:fxeucrem;;l1:y5:fxneg;;l1:y5:fxabs;;l1:y4:f" "num?;;l1:y11:fxpositive?;;l1:y11:fxnegative?;;l1:y7:fxeven?;;l1:y6:fxo"
"x<?;;l1:y5:fx<=?;;l1:y4:fx>?;;l1:y5:fx>=?;;l1:y4:fx=?;;l1:y5:fx!=?;;l1" "dd?;;l1:y3:fx+;;l1:y3:fx*;;l1:y3:fx-;;l1:y3:fx/;;l1:y10:fxquotient;;l1"
":y5:fxmin;;l1:y5:fxmax;;l1:y5:fxneg;;l1:y5:fxabs;;l1:y5:fxgcd;;l1:y6:f" ":y11:fxremainder;;l1:y8:fxmodquo;;l1:y8:fxmodulo;;l1:y8:fxeucquo;;l1:y"
"xexpt;;l1:y6:fxsqrt;;l1:y5:fxnot;;l1:y5:fxand;;l1:y5:fxior;;l1:y5:fxxo" "8:fxeucrem;;l1:y5:fxneg;;l1:y5:fxabs;;l1:y4:fx<?;;l1:y5:fx<=?;;l1:y4:f"
"r;;l1:y5:fxsll;;l1:y5:fxsrl;;l1:y14:fixnum->flonum;;l1:y14:fixnum->str" "x>?;;l1:y5:fx>=?;;l1:y4:fx=?;;l1:y5:fx!=?;;l1:y5:fxmin;;l1:y5:fxmax;;l"
"ing;;l1:y14:string->fixnum;;l1:y7:flonum?;;l1:y7:flzero?;;l1:y11:flpos" "1:y5:fxneg;;l1:y5:fxabs;;l1:y5:fxgcd;;l1:y6:fxexpt;;l1:y6:fxsqrt;;l1:y"
"itive?;;l1:y11:flnegative?;;l1:y10:flinteger?;;l1:y6:flnan?;;l1:y11:fl" "5:fxnot;;l1:y5:fxand;;l1:y5:fxior;;l1:y5:fxxor;;l1:y5:fxsll;;l1:y5:fxs"
"infinite?;;l1:y9:flfinite?;;l1:y7:fleven?;;l1:y6:flodd?;;l1:y3:fl+;;l1" "rl;;l1:y14:fixnum->flonum;;l1:y14:fixnum->string;;l1:y14:string->fixnu"
":y3:fl*;;l1:y3:fl-;;l1:y3:fl/;;l1:y5:flneg;;l1:y5:flabs;;l1:y5:flgcd;;" "m;;l1:y7:flonum?;;l1:y7:flzero?;;l1:y11:flpositive?;;l1:y11:flnegative"
"l1:y6:flexpt;;l1:y6:flsqrt;;l1:y7:flfloor;;l1:y9:flceiling;;l1:y10:flt" "?;;l1:y10:flinteger?;;l1:y6:flnan?;;l1:y11:flinfinite?;;l1:y9:flfinite"
"runcate;;l1:y7:flround;;l1:y5:flexp;;l1:y5:fllog;;l1:y5:flsin;;l1:y5:f" "?;;l1:y7:fleven?;;l1:y6:flodd?;;l1:y3:fl+;;l1:y3:fl*;;l1:y3:fl-;;l1:y3"
"lcos;;l1:y5:fltan;;l1:y6:flasin;;l1:y6:flacos;;l2:y6:flatan;l1:y1:y;;;" ":fl/;;l1:y5:flneg;;l1:y5:flabs;;l1:y5:flgcd;;l1:y6:flexpt;;l1:y6:flsqr"
"l1:y4:fl<?;;l1:y5:fl<=?;;l1:y4:fl>?;;l1:y5:fl>=?;;l1:y4:fl=?;;l1:y5:fl" "t;;l1:y7:flfloor;;l1:y9:flceiling;;l1:y10:fltruncate;;l1:y7:flround;;l"
"!=?;;l1:y5:flmin;;l1:y5:flmax;;l1:y14:flonum->fixnum;;l1:y14:flonum->s" "1:y5:flexp;;l1:y5:fllog;;l1:y5:flsin;;l1:y5:flcos;;l1:y5:fltan;;l1:y6:"
"tring;;l1:y14:string->flonum;;l1:y8:list-cat;;l1:y4:meme;;l1:y4:asse;;" "flasin;;l1:y6:flacos;;l2:y6:flatan;l1:y1:y;;;l1:y4:fl<?;;l1:y5:fl<=?;;"
"l1:y8:reverse!;;l1:y9:circular?;;l1:y8:char-cmp;;l1:y11:char-ci-cmp;;l" "l1:y4:fl>?;;l1:y5:fl>=?;;l1:y4:fl=?;;l1:y5:fl!=?;;l1:y5:flmin;;l1:y5:f"
"1:y10:string-cat;;l1:y15:string-position;;l1:y10:string-cmp;;l1:y13:st" "lmax;;l1:y14:flonum->fixnum;;l1:y14:flonum->string;;l1:y14:string->flo"
"ring-ci-cmp;;l1:y10:vector-cat;;l1:y16:bytevector->list;;l1:y16:list->" "num;;l1:y8:list-cat;;l1:y4:meme;;l1:y4:asse;;l1:y8:reverse!;;l1:y9:cir"
"bytevector;;l1:y13:subbytevector;;l1:y19:standard-input-port;;l1:y20:s" "cular?;;l1:y8:char-cmp;;l1:y11:char-ci-cmp;;l1:y10:string-cat;;l1:y15:"
"tandard-output-port;;l1:y19:standard-error-port;;l1:y11:rename-file;;)" "string-position;;l1:y10:string-cmp;;l1:y13:string-ci-cmp;;l1:y10:vecto"
",&0{%1,,,,#0#1#2#3&0{%1.0,'(y1:w),.1v?{'(l2:y6:scheme;y5:write;)]2}'(y" "r-cat;;l1:y16:bytevector->list;;l1:y16:list->bytevector;;l1:y13:subbyt"
"1:t),.1v?{'(l2:y6:scheme;y4:time;)]2}'(y1:p),.1v?{'(l2:y6:scheme;y4:re" "evector;;l1:y19:standard-input-port;;l1:y20:standard-output-port;;l1:y"
"pl;)]2}'(y1:r),.1v?{'(l2:y6:scheme;y4:read;)]2}'(y1:v),.1v?{'(l2:y6:sc" "19:standard-error-port;;l1:y11:rename-file;;),&0{%1,,,,#0#1#2#3&0{%1.0"
"heme;y4:r5rs;)]2}'(y1:u),.1v?{'(l2:y6:scheme;y9:r5rs-null;)]2}'(y1:d)," ",'(y1:w),.1v?{'(l2:y6:scheme;y5:write;)]2}'(y1:t),.1v?{'(l2:y6:scheme;"
".1v?{'(l2:y6:scheme;y4:load;)]2}'(y1:z),.1v?{'(l2:y6:scheme;y4:lazy;)]" "y4:time;)]2}'(y1:p),.1v?{'(l2:y6:scheme;y4:repl;)]2}'(y1:r),.1v?{'(l2:"
"2}'(y1:s),.1v?{'(l2:y6:scheme;y15:process-context;)]2}'(y1:i),.1v?{'(l" "y6:scheme;y4:read;)]2}'(y1:v),.1v?{'(l2:y6:scheme;y4:r5rs;)]2}'(y1:u),"
"2:y6:scheme;y7:inexact;)]2}'(y1:f),.1v?{'(l2:y6:scheme;y4:file;)]2}'(y" ".1v?{'(l2:y6:scheme;y9:r5rs-null;)]2}'(y1:d),.1v?{'(l2:y6:scheme;y4:lo"
"1:e),.1v?{'(l2:y6:scheme;y4:eval;)]2}'(y1:o),.1v?{'(l2:y6:scheme;y7:co" "ad;)]2}'(y1:z),.1v?{'(l2:y6:scheme;y4:lazy;)]2}'(y1:s),.1v?{'(l2:y6:sc"
"mplex;)]2}'(y1:h),.1v?{'(l2:y6:scheme;y4:char;)]2}'(y1:l),.1v?{'(l2:y6" "heme;y15:process-context;)]2}'(y1:i),.1v?{'(l2:y6:scheme;y7:inexact;)]"
":scheme;y11:case-lambda;)]2}'(y1:x),.1v?{'(l2:y6:scheme;y3:cxr;)]2}'(y" "2}'(y1:f),.1v?{'(l2:y6:scheme;y4:file;)]2}'(y1:e),.1v?{'(l2:y6:scheme;"
"1:b),.1v?{'(l2:y6:scheme;y4:base;)]2}]2}.!0&0{%1${&0{%1n,'(l1:y5:begin" "y4:eval;)]2}'(y1:o),.1v?{'(l2:y6:scheme;y7:complex;)]2}'(y1:h),.1v?{'("
";),V12]1},.3,@(y20:*root-name-registry*),@(y11:name-lookup)[03}z]1}.!1" "l2:y6:scheme;y4:char;)]2}'(y1:l),.1v?{'(l2:y6:scheme;y11:case-lambda;)"
"&0{%3'1,.1V4,.0,.3A3,.0?{.4,.1sd]5}.1,.5,.5cc,'1,.4V5]5}.!2&0{%1&0{%1." "]2}'(y1:a),.1v?{'(l2:y6:scheme;y3:cxr;)]2}'(y1:b),.1v?{'(l2:y6:scheme;"
"0,'(y5:const),l2]1},.1,@(y20:*root-name-registry*),@(y11:name-lookup)[" "y4:base;)]2}'(y1:x),.1v?{'(l2:y6:scheme;y3:box;)]2}.1I0?{.1,'(y4:srfi)"
"13}.!3.4d,.5a,,#0.0,.6,.5,.7,.(i10),&5{%2.1u?{${.2,:0^[01},.1,${'(l1:y" ",l2]2}.1,l1]2}.!0&0{%1${&0{%1n,'(l1:y5:begin;),V12]1},.3,@(y20:*root-n"
"4:repl;),:1^[01},:3^[23}${${.4,:0^[01},.3,${${.9a,:2^[01},:1^[01},:3^[" "ame-registry*),@(y11:name-lookup)[03}z]1}.!1&0{%3'1,.1V4,.0,.3A3,.0?{."
"03}.1d,.1,:4^[22}.!0.0^_1[52},@(y10:%25for-each1)[02}", "4,.1sd]5}.1,.5,.5cc,'1,.4V5]5}.!2&0{%1&0{%1.0,'(y5:const),l2]1},.1,@(y"
"20:*root-name-registry*),@(y11:name-lookup)[13}.!3.4d,.5a,,#0.0,.6,.5,"
".7,.(i10),&5{%2.1u?{${.2,:0^[01},.1,${'(l1:y4:repl;),: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, "C", 0,
"${'(i200),@(y18:make-name-registry)[01}@!(y20:*user-name-registry*)", "${'(i200),@(y18:make-name-registry)[01}@!(y20:*user-name-registry*)",
@ -1255,8 +1259,8 @@ char *t_code[] = {
"P", "make-sld-environment", "P", "make-sld-environment",
"%1,#0.0,.2,&2{%2'(y3:ref),.2q~?{f]2}.0K0?{.0,@(y7:old-den)[21}'(y14:de" "%1,#0.0,.2,&2{%2'(y3:ref),.2q~?{f]2}.0K0?{.0,@(y7:old-den)[21}'(y14:de"
"fine-library),.1q?{'(y14:define-library)b]2}${.2,@(y9:listname?)[01}~?" "fine-library),.1q?{'(y14:define-library)b]2}${.2,@(y9:listname?)[01}~?"
"{f]2}:1,&1{%1:0^,@(y4:name),@(y13:fetch-library)[12},.1,:0,@(y11:name-" "{f]2}:1,.1,&2{%1:1^,:0,@(y13:fetch-library)[12},.1,:0,@(y11:name-looku"
"lookup)[23}.!0.0^]2", "p)[23}.!0.0^]2",
"P", "make-repl-environment", "P", "make-repl-environment",
"%3,#0.3,&1{%1.0,:0,@(y37:fully-qualified-library-prefixed-name)[12}.!0" "%3,#0.3,&1{%1.0,:0,@(y37:fully-qualified-library-prefixed-name)[12}.!0"