picrin/lib/ext/boot.c

790 lines
63 KiB
C

#include "picrin.h"
#include "picrin/extra.h"
#if PIC_USE_EVAL
static const char boot_compile_rom[][80] = {
"(core#begin (core#begin (core#define make-identifier #undefined) (core#begin (co",
"re#define identifier? #undefined) (core#begin (core#define identifier=? #undefin",
"ed) (core#begin (core#define identifier-name #undefined) (core#begin (core#defin",
"e identifier-environment #undefined) (core#begin (core#define make-environment #",
"undefined) (core#begin (core#define default-environment #undefined) (core#begin ",
"(core#define environment? #undefined) (core#begin (core#define find-identifier #",
"undefined) (core#begin (core#define add-identifier! #undefined) (core#begin (cor",
"e#define set-identifier! #undefined) (core#begin (core#define macro-objects #und",
"efined) (core#begin (core#define expand #undefined) (call-with-values (core#lamb",
"da () ((core#lambda () (core#begin (core#begin (core#define .make-identifier.214",
"9 (core#lambda (.name.2173 .env.2174) (make-record (core#quote identifier) (vect",
"or .name.2173 .env.2174)))) (core#begin (core#define .%identifier?.2150 (core#la",
"mbda (.obj.2175) (core#if (record? .obj.2175) (eq? (record-type .obj.2175) (core",
"#quote identifier)) #f))) (core#begin (core#define .identifier-environment.2151 ",
"(core#lambda (.obj.2176) (core#if (.%identifier?.2150 .obj.2176) (vector-ref (re",
"cord-datum .obj.2176) 1) (error \"record type mismatch\" .obj.2176 (core#quote ide",
"ntifier))))) (core#define .identifier-name.2152 (core#lambda (.obj.2177) (core#i",
"f (.%identifier?.2150 .obj.2177) (vector-ref (record-datum .obj.2177) 0) (error ",
"\"record type mismatch\" .obj.2177 (core#quote identifier)))))))) (core#begin (cor",
"e#define .identifier?.2153 (core#lambda (.obj.2178) ((core#lambda (.it.2179) (co",
"re#if .it.2179 .it.2179 ((core#lambda (.it.2180) (core#if .it.2180 .it.2180 #f))",
" (.%identifier?.2150 .obj.2178)))) (symbol? .obj.2178)))) (core#begin (core#defi",
"ne .identifier=?.2154 (core#lambda (.id1.2181 .id2.2182) (core#if (core#if (symb",
"ol? .id1.2181) (symbol? .id2.2182) #f) (eq? .id1.2181 .id2.2182) (core#if (core#",
"if (.%identifier?.2150 .id1.2181) (.%identifier?.2150 .id2.2182) #f) (eq? (.find",
"-identifier.2161 (.identifier-name.2152 .id1.2181) (.identifier-environment.2151",
" .id1.2181)) (.find-identifier.2161 (.identifier-name.2152 .id2.2182) (.identifi",
"er-environment.2151 .id2.2182))) #f)))) (core#begin (core#set! equal? ((core#lam",
"bda (.e?.2183) (core#lambda (.x.2184 .y.2185) (core#if (.%identifier?.2150 .x.21",
"84) (.identifier=?.2154 .x.2184 .y.2185) (.e?.2183 .x.2184 .y.2185)))) equal?)) ",
"(core#begin (core#begin (core#define .%make-environment.2155 (core#lambda (.pare",
"nt.2186 .prefix.2187 .binding.2188) (make-record (core#quote environment) (vecto",
"r .parent.2186 .prefix.2187 .binding.2188)))) (core#begin (core#define .environm",
"ent?.2156 (core#lambda (.obj.2189) (core#if (record? .obj.2189) (eq? (record-typ",
"e .obj.2189) (core#quote environment)) #f))) (core#begin (core#define .environme",
"nt-binding.2157 (core#lambda (.obj.2190) (core#if (.environment?.2156 .obj.2190)",
" (vector-ref (record-datum .obj.2190) 2) (error \"record type mismatch\" .obj.2190",
" (core#quote environment))))) (core#begin (core#define .environment-prefix.2158 ",
"(core#lambda (.obj.2191) (core#if (.environment?.2156 .obj.2191) (vector-ref (re",
"cord-datum .obj.2191) 1) (error \"record type mismatch\" .obj.2191 (core#quote env",
"ironment))))) (core#define .environment-parent.2159 (core#lambda (.obj.2192) (co",
"re#if (.environment?.2156 .obj.2192) (vector-ref (record-datum .obj.2192) 0) (er",
"ror \"record type mismatch\" .obj.2192 (core#quote environment))))))))) (core#begi",
"n (core#define .search-scope.2160 (core#lambda (.id.2193 .env.2194) ((.environme",
"nt-binding.2157 .env.2194) .id.2193))) (core#begin (core#define .find-identifier",
".2161 (core#lambda (.id.2195 .env.2196) ((core#lambda (.it.2197) (core#if .it.21",
"97 .it.2197 ((core#lambda (.it.2198) (core#if .it.2198 .it.2198 #f)) ((core#lamb",
"da (.parent.2199) (core#if .parent.2199 (.find-identifier.2161 .id.2195 .parent.",
"2199) (core#if (symbol? .id.2195) (.add-identifier!.2162 .id.2195 .env.2196) (.f",
"ind-identifier.2161 (.identifier-name.2152 .id.2195) (.identifier-environment.21",
"51 .id.2195))))) (.environment-parent.2159 .env.2196))))) (.search-scope.2160 .i",
"d.2195 .env.2196)))) (core#begin (core#define .add-identifier!.2162 ((core#lambd",
"a (.uniq.2200) (core#lambda (.id.2201 .env.2202) ((core#lambda (.it.2203) (core#",
"if .it.2203 .it.2203 ((core#lambda (.it.2204) (core#if .it.2204 .it.2204 #f)) (c",
"ore#if (core#if (not (.environment-parent.2159 .env.2202)) (symbol? .id.2201) #f",
") (string->symbol (string-append (.environment-prefix.2158 .env.2202) (symbol->s",
"tring .id.2201))) ((core#lambda (.uid.2205) (core#begin (.set-identifier!.2163 .",
"id.2201 .uid.2205 .env.2202) .uid.2205)) (.uniq.2200 .id.2201)))))) (.search-sco",
"pe.2160 .id.2201 .env.2202)))) ((core#lambda (.n.2206) (core#lambda (.id.2207) (",
"(core#lambda (.m.2208) (core#begin (core#set! .n.2206 (+ .n.2206 1)) (string->sy",
"mbol (string-append \".\" (symbol->string ((core#lambda () (core#begin (core#defin",
"e .loop.2209 (core#lambda (.id.2210) (core#if (symbol? .id.2210) .id.2210 (.loop",
".2209 (.identifier-name.2152 .id.2210))))) (.loop.2209 .id.2207))))) \".\" (number",
"->string .m.2208))))) .n.2206))) 0))) (core#begin (core#define .set-identifier!.",
"2163 (core#lambda (.id.2211 .uid.2212 .env.2213) ((.environment-binding.2157 .en",
"v.2213) .id.2211 .uid.2212))) (core#begin (core#define .make-environment.2164 (c",
"ore#lambda (.prefix.2214) (.%make-environment.2155 #f (symbol->string .prefix.22",
"14) (make-ephemeron-table)))) (core#begin (core#define .default-environment.2165",
" ((core#lambda (.env.2215) (core#begin (for-each (core#lambda (.x.2216) (.set-id",
"entifier!.2163 .x.2216 .x.2216 .env.2215)) (core#quote (core#define core#set! co",
"re#quote core#lambda core#if core#begin core#define-macro))) .env.2215)) (.make-",
"environment.2164 (string->symbol \"\")))) (core#begin (core#define .extend-environ",
"ment.2166 (core#lambda (.parent.2217) (.%make-environment.2155 .parent.2217 #f (",
"make-ephemeron-table)))) (core#begin (core#define .global-macro-table.2167 (make",
"-dictionary)) (core#begin (core#define .find-macro.2168 (core#lambda (.uid.2218)",
" (core#if (dictionary-has? .global-macro-table.2167 .uid.2218) (dictionary-ref .",
"global-macro-table.2167 .uid.2218) #f))) (core#begin (core#define .add-macro!.21",
"69 (core#lambda (.uid.2219 .expander.2220) (dictionary-set! .global-macro-table.",
"2167 .uid.2219 .expander.2220))) (core#begin (core#define .shadow-macro!.2170 (c",
"ore#lambda (.uid.2221) (core#if (dictionary-has? .global-macro-table.2167 .uid.2",
"221) (dictionary-delete! .global-macro-table.2167 .uid.2221) #undefined))) (core",
"#begin (core#define .macro-objects.2171 (core#lambda () .global-macro-table.2167",
")) (core#begin (core#define .expand.2172 ((core#lambda (.task-queue.2222) (core#",
"begin (core#define .queue.2223 (core#lambda (.task.2236) ((core#lambda (.tmp.223",
"7) (core#begin (.task-queue.2222 (cons (cons .tmp.2237 .task.2236) (.task-queue.",
"2222))) .tmp.2237)) (cons #f #f)))) (core#begin (core#define .run-all.2224 (core",
"#lambda () (for-each (core#lambda (.x.2238) ((core#lambda (.task.2239 .skelton.2",
"240) ((core#lambda (.x.2241) (core#begin (set-car! .skelton.2240 (car .x.2241)) ",
"(set-cdr! .skelton.2240 (cdr .x.2241)))) (.task.2239))) (cdr .x.2238) (car .x.22",
"38))) (reverse (.task-queue.2222))))) (core#begin (core#define .caddr.2225 (core",
"#lambda (.x.2242) (car (cddr .x.2242)))) (core#begin (core#define .map*.2226 (co",
"re#lambda (.proc.2243 .list*.2244) (core#if (null? .list*.2244) .list*.2244 (cor",
"e#if (pair? .list*.2244) (cons (.proc.2243 (car .list*.2244)) (.map*.2226 .proc.",
"2243 (cdr .list*.2244))) (.proc.2243 .list*.2244))))) (core#begin (core#define .",
"literal?.2227 (core#lambda (.x.2245) (not ((core#lambda (.it.2246) (core#if .it.",
"2246 .it.2246 ((core#lambda (.it.2247) (core#if .it.2247 .it.2247 #f)) (pair? .x",
".2245)))) (.identifier?.2153 .x.2245))))) (core#begin (core#define .call?.2228 (",
"core#lambda (.x.2248) (core#if (list? .x.2248) (core#if (not (null? .x.2248)) (.",
"identifier?.2153 (car .x.2248)) #f) #f))) (core#begin (core#define .expand-varia",
"ble.2229 (core#lambda (.var.2249 .env.2250) ((core#lambda (.x.2251) ((core#lambd",
"a (.m.2252) (core#if .m.2252 (.expand-node.2234 (.m.2252 .var.2249 .env.2250) .e",
"nv.2250) .x.2251)) (.find-macro.2168 .x.2251))) (.find-identifier.2161 .var.2249",
" .env.2250)))) (core#begin (core#define .expand-quote.2230 (core#lambda (.obj.22",
"53) (cons (core#quote core#quote) (cons .obj.2253 (core#quote ()))))) (core#begi",
"n (core#define .expand-define.2231 (core#lambda (.var.2254 .form.2255 .env.2256)",
" ((core#lambda (.uid.2257) (core#begin (.shadow-macro!.2170 .uid.2257) (cons (co",
"re#quote core#define) (cons .uid.2257 (cons (.expand-node.2234 .form.2255 .env.2",
"256) (core#quote ())))))) (.add-identifier!.2162 .var.2254 .env.2256)))) (core#b",
"egin (core#define .expand-lambda.2232 (core#lambda (.args.2258 .body.2259 .env.2",
"260) ((core#lambda (.env.2261) ((core#lambda (.args.2262) (with-dynamic-environm",
"ent (list (cons .task-queue.2222 (core#quote ()))) (core#lambda () ((core#lambda",
" (.body.2263) (core#begin (.run-all.2224) (cons (core#quote core#lambda) (cons .",
"args.2262 (cons .body.2263 (core#quote ())))))) (.expand-node.2234 .body.2259 .e",
"nv.2261))))) (.map*.2226 (core#lambda (.var.2264) (.add-identifier!.2162 .var.22",
"64 .env.2261)) .args.2258))) (.extend-environment.2166 .env.2260)))) (core#begin",
" (core#define .expand-define-macro.2233 (core#lambda (.var.2265 .transformer.226",
"6 .env.2267) ((core#lambda (.uid.2268) ((core#lambda (.expander.2269) (core#begi",
"n (.add-macro!.2169 .uid.2268 .expander.2269) #undefined)) (load (.expand.2235 .",
"transformer.2266 .env.2267)))) (.add-identifier!.2162 .var.2265 .env.2267)))) (c",
"ore#begin (core#define .expand-node.2234 (core#lambda (.expr.2270 .env.2271) (co",
"re#if (.literal?.2227 .expr.2270) .expr.2270 (core#if (.identifier?.2153 .expr.2",
"270) (.expand-variable.2229 .expr.2270 .env.2271) (core#if (.call?.2228 .expr.22",
"70) ((core#lambda (.functor.2272) ((core#lambda (.key.2273) (core#if ((core#lamb",
"da (.it.2274) (core#if .it.2274 .it.2274 #f)) (eqv? .key.2273 (core#quote core#q",
"uote))) (.expand-quote.2230 (cadr .expr.2270)) (core#if ((core#lambda (.it.2275)",
" (core#if .it.2275 .it.2275 #f)) (eqv? .key.2273 (core#quote core#define))) (.ex",
"pand-define.2231 (cadr .expr.2270) (.caddr.2225 .expr.2270) .env.2271) (core#if ",
"((core#lambda (.it.2276) (core#if .it.2276 .it.2276 #f)) (eqv? .key.2273 (core#q",
"uote core#lambda))) (.queue.2223 (core#lambda () (.expand-lambda.2232 (cadr .exp",
"r.2270) (.caddr.2225 .expr.2270) .env.2271))) (core#if ((core#lambda (.it.2277) ",
"(core#if .it.2277 .it.2277 #f)) (eqv? .key.2273 (core#quote core#define-macro)))",
" (.expand-define-macro.2233 (cadr .expr.2270) (.caddr.2225 .expr.2270) .env.2271",
") (core#if #t ((core#lambda (.m.2278) (core#if .m.2278 (.expand-node.2234 (.m.22",
"78 .expr.2270 .env.2271) .env.2271) (map (core#lambda (.x.2279) (.expand-node.22",
"34 .x.2279 .env.2271)) .expr.2270))) (.find-macro.2168 .functor.2272)) #undefine",
"d)))))) .functor.2272)) (.find-identifier.2161 (car .expr.2270) .env.2271)) (cor",
"e#if (list? .expr.2270) (map (core#lambda (.x.2280) (.expand-node.2234 .x.2280 .",
"env.2271)) .expr.2270) (error \"invalid expression\" .expr.2270))))))) (core#begin",
" (core#define .expand.2235 (core#lambda (.expr.2281 .env.2282) ((core#lambda (.x",
".2283) (core#begin (.run-all.2224) .x.2283)) (.expand-node.2234 .expr.2281 .env.",
"2282)))) .expand.2235)))))))))))))) (make-parameter (core#quote ())))) (values .",
"make-identifier.2149 .identifier?.2153 .identifier=?.2154 .identifier-name.2152 ",
".identifier-environment.2151 .make-environment.2164 .default-environment.2165 .e",
"nvironment?.2156 .find-identifier.2161 .add-identifier!.2162 .set-identifier!.21",
"63 .macro-objects.2171 .expand.2172)))))))))))))))))))))) (core#lambda (.make-id",
"entifier.2284 .identifier?.2285 .identifier=?.2286 .identifier-name.2287 .identi",
"fier-environment.2288 .make-environment.2289 .default-environment.2290 .environm",
"ent?.2291 .find-identifier.2292 .add-identifier!.2293 .set-identifier!.2294 .mac",
"ro-objects.2295 .expand.2296) (core#begin (core#set! make-identifier .make-ident",
"ifier.2284) (core#begin (core#set! identifier? .identifier?.2285) (core#begin (c",
"ore#set! identifier=? .identifier=?.2286) (core#begin (core#set! identifier-name",
" .identifier-name.2287) (core#begin (core#set! identifier-environment .identifie",
"r-environment.2288) (core#begin (core#set! make-environment .make-environment.22",
"89) (core#begin (core#set! default-environment .default-environment.2290) (core#",
"begin (core#set! environment? .environment?.2291) (core#begin (core#set! find-id",
"entifier .find-identifier.2292) (core#begin (core#set! add-identifier! .add-iden",
"tifier!.2293) (core#begin (core#set! set-identifier! .set-identifier!.2294) (cor",
"e#begin (core#set! macro-objects .macro-objects.2295) (core#set! expand .expand.",
"2296)))))))))))))))))))))))))))) (core#begin ((core#lambda () (core#begin (core#",
"define .define-transformer.2297 (core#lambda (.name.2299 .transformer.2300) (dic",
"tionary-set! (macro-objects) .name.2299 .transformer.2300))) (core#begin (core#d",
"efine .the.2298 (core#lambda (.var.2301) (make-identifier .var.2301 default-envi",
"ronment))) ((core#lambda (.the-core-define.2302 .the-core-lambda.2303 .the-core-",
"begin.2304 .the-core-quote.2305 .the-core-set!.2306 .the-core-if.2307 .the-core-",
"define-macro.2308 .the-define.2309 .the-lambda.2310 .the-begin.2311 .the-quote.2",
"312 .the-set!.2313 .the-if.2314 .the-define-macro.2315) (core#begin (.define-tra",
"nsformer.2297 (core#quote quote) (core#lambda (.form.2320 .env.2321) (core#if (=",
" (length .form.2320) 2) ((core#lambda (.obj.2322) (core#if (pair? .obj.2322) (co",
"ns (.the.2298 (core#quote cons)) (cons (cons .the-quote.2312 (cons (car .obj.232",
"2) (core#quote ()))) (cons (cons .the-quote.2312 (cons (cdr .obj.2322) (core#quo",
"te ()))) (core#quote ())))) (core#if (vector? .obj.2322) (cons (.the.2298 (core#",
"quote vector)) (vector->list (vector-map (core#lambda (.obj.2323) (cons .the-quo",
"te.2312 (cons .obj.2323 (core#quote ())))) .obj.2322))) (cons .the-core-quote.23",
"05 (cons .obj.2322 (core#quote ())))))) (cadr .form.2320)) (error \"malformed quo",
"te\" .form.2320)))) (core#begin (.define-transformer.2297 (core#quote if) (core#l",
"ambda (.form.2324 .env.2325) ((core#lambda (.len.2326) (core#if (= .len.2326 3) ",
"(append .form.2324 (cons (core#quote #undefined) (core#quote ()))) (core#if (= .",
"len.2326 4) (cons .the-core-if.2307 (cdr .form.2324)) (error \"malformed if\" .for",
"m.2324)))) (length .form.2324)))) (core#begin (.define-transformer.2297 (core#qu",
"ote begin) (core#lambda (.form.2327 .env.2328) ((core#lambda (.len.2329) (core#i",
"f (= .len.2329 1) #undefined (core#if (= .len.2329 2) (cadr .form.2327) (core#if",
" (= .len.2329 3) (cons .the-core-begin.2304 (cdr .form.2327)) (cons .the-core-be",
"gin.2304 (cons (cadr .form.2327) (cons (cons .the-begin.2311 (cddr .form.2327)) ",
"(core#quote ())))))))) (length .form.2327)))) (core#begin (.define-transformer.2",
"297 (core#quote set!) (core#lambda (.form.2330 .env.2331) (core#if (core#if (= (",
"length .form.2330) 3) (identifier? (cadr .form.2330)) #f) (cons .the-core-set!.2",
"306 (cdr .form.2330)) (error \"malformed set!\" .form.2330)))) (core#begin (core#d",
"efine .check-formal.2316 (core#lambda (.formal.2332) ((core#lambda (.it.2333) (c",
"ore#if .it.2333 .it.2333 ((core#lambda (.it.2334) (core#if .it.2334 .it.2334 ((c",
"ore#lambda (.it.2335) (core#if .it.2335 .it.2335 #f)) (core#if (pair? .formal.23",
"32) (core#if (identifier? (car .formal.2332)) (.check-formal.2316 (cdr .formal.2",
"332)) #f) #f)))) (identifier? .formal.2332)))) (null? .formal.2332)))) (core#beg",
"in (.define-transformer.2297 (core#quote lambda) (core#lambda (.form.2336 .env.2",
"337) (core#if (= (length .form.2336) 1) (error \"malformed lambda\" .form.2336) (c",
"ore#if (.check-formal.2316 (cadr .form.2336)) (cons .the-core-lambda.2303 (cons ",
"(cadr .form.2336) (cons (cons .the-begin.2311 (cddr .form.2336)) (core#quote ())",
"))) (error \"malformed lambda\" .form.2336))))) (core#begin (.define-transformer.2",
"297 (core#quote define) (core#lambda (.form.2338 .env.2339) ((core#lambda (.len.",
"2340) (core#if (= .len.2340 1) (error \"malformed define\" .form.2338) ((core#lamb",
"da (.formal.2341) (core#if (identifier? .formal.2341) (core#if (= .len.2340 3) (",
"cons .the-core-define.2302 (cdr .form.2338)) (error \"malformed define\" .form.233",
"8)) (core#if (pair? .formal.2341) (cons .the-define.2309 (cons (car .formal.2341",
") (cons (cons .the-lambda.2310 (cons (cdr .formal.2341) (cddr .form.2338))) (cor",
"e#quote ())))) (error \"define: binding to non-varaible object\" .form.2338)))) (c",
"adr .form.2338)))) (length .form.2338)))) (core#begin (.define-transformer.2297 ",
"(core#quote define-macro) (core#lambda (.form.2342 .env.2343) (core#if (= (lengt",
"h .form.2342) 3) (core#if (identifier? (cadr .form.2342)) (cons .the-core-define",
"-macro.2308 (cdr .form.2342)) (error \"define-macro: binding to non-variable obje",
"ct\" .form.2342)) (error \"malformed define-macro\" .form.2342)))) (core#begin #und",
"efined (core#begin (.define-transformer.2297 (core#quote else) (core#lambda ._.2",
"344 (error \"invalid use of auxiliary syntax\" (core#quote else)))) (core#begin (.",
"define-transformer.2297 (core#quote =>) (core#lambda ._.2345 (error \"invalid use",
" of auxiliary syntax\" (core#quote =>)))) (core#begin (.define-transformer.2297 (",
"core#quote unquote) (core#lambda ._.2346 (error \"invalid use of auxiliary syntax",
"\" (core#quote unquote)))) (core#begin (.define-transformer.2297 (core#quote unqu",
"ote-splicing) (core#lambda ._.2347 (error \"invalid use of auxiliary syntax\" (cor",
"e#quote unquote-splicing)))) (core#begin (.define-transformer.2297 (core#quote l",
"et) (core#lambda (.form.2348 .env.2349) (core#if (identifier? (cadr .form.2348))",
" ((core#lambda (.name.2350 .formal.2351 .body.2352) (cons (cons .the-lambda.2310",
" (cons (core#quote ()) (cons (cons .the-define.2309 (cons (cons .name.2350 (map ",
"car .formal.2351)) .body.2352)) (cons (cons .name.2350 (map cadr .formal.2351)) ",
"(core#quote ()))))) (core#quote ()))) (car (cdr .form.2348)) (car (cdr (cdr .for",
"m.2348))) (cdr (cdr (cdr .form.2348)))) ((core#lambda (.formal.2353 .body.2354) ",
"(cons (cons .the-lambda.2310 (cons (map car .formal.2353) .body.2354)) (map cadr",
" .formal.2353))) (car (cdr .form.2348)) (cdr (cdr .form.2348)))))) (core#begin (",
".define-transformer.2297 (core#quote and) (core#lambda (.form.2355 .env.2356) (c",
"ore#if (null? (cdr .form.2355)) #t (core#if (null? (cddr .form.2355)) (cadr .for",
"m.2355) (cons .the-if.2314 (cons (cadr .form.2355) (cons (cons (.the.2298 (core#",
"quote and)) (cddr .form.2355)) (cons (core#quote #f) (core#quote ()))))))))) (co",
"re#begin (.define-transformer.2297 (core#quote or) (core#lambda (.form.2357 .env",
".2358) (core#if (null? (cdr .form.2357)) #f ((core#lambda (.tmp.2359) (cons (.th",
"e.2298 (core#quote let)) (cons (cons (cons .tmp.2359 (cons (cadr .form.2357) (co",
"re#quote ()))) (core#quote ())) (cons (cons .the-if.2314 (cons .tmp.2359 (cons .",
"tmp.2359 (cons (cons (.the.2298 (core#quote or)) (cddr .form.2357)) (core#quote ",
"()))))) (core#quote ()))))) (make-identifier (core#quote it) .env.2358))))) (cor",
"e#begin (.define-transformer.2297 (core#quote cond) (core#lambda (.form.2360 .en",
"v.2361) ((core#lambda (.clauses.2362) (core#if (null? .clauses.2362) #undefined ",
"((core#lambda (.clause.2363) (core#if (core#if (identifier? (car .clause.2363)) ",
"(identifier=? (.the.2298 (core#quote else)) (make-identifier (car .clause.2363) ",
".env.2361)) #f) (cons .the-begin.2311 (cdr .clause.2363)) (core#if (null? (cdr .",
"clause.2363)) (cons (.the.2298 (core#quote or)) (cons (car .clause.2363) (cons (",
"cons (.the.2298 (core#quote cond)) (cdr .clauses.2362)) (core#quote ())))) (core",
"#if (core#if (identifier? (cadr .clause.2363)) (identifier=? (.the.2298 (core#qu",
"ote =>)) (make-identifier (cadr .clause.2363) .env.2361)) #f) ((core#lambda (.tm",
"p.2364) (cons (.the.2298 (core#quote let)) (cons (cons (cons .tmp.2364 (cons (ca",
"r .clause.2363) (core#quote ()))) (core#quote ())) (cons (cons .the-if.2314 (con",
"s .tmp.2364 (cons (cons (cadr (cdr .clause.2363)) (cons .tmp.2364 (core#quote ()",
"))) (cons (cons (.the.2298 (core#quote cond)) (cddr .form.2360)) (core#quote ())",
")))) (core#quote ()))))) (make-identifier (core#quote tmp) .env.2361)) (cons .th",
"e-if.2314 (cons (car .clause.2363) (cons (cons .the-begin.2311 (cdr .clause.2363",
")) (cons (cons (.the.2298 (core#quote cond)) (cdr .clauses.2362)) (core#quote ()",
"))))))))) (car .clauses.2362)))) (cdr .form.2360)))) (core#begin (.define-transf",
"ormer.2297 (core#quote quasiquote) (core#lambda (.form.2365 .env.2366) (core#beg",
"in (core#define .quasiquote?.2367 (core#lambda (.form.2371) (core#if (pair? .for",
"m.2371) (core#if (identifier? (car .form.2371)) (identifier=? (.the.2298 (core#q",
"uote quasiquote)) (make-identifier (car .form.2371) .env.2366)) #f) #f))) (core#",
"begin (core#define .unquote?.2368 (core#lambda (.form.2372) (core#if (pair? .for",
"m.2372) (core#if (identifier? (car .form.2372)) (identifier=? (.the.2298 (core#q",
"uote unquote)) (make-identifier (car .form.2372) .env.2366)) #f) #f))) (core#beg",
"in (core#define .unquote-splicing?.2369 (core#lambda (.form.2373) (core#if (pair",
"? .form.2373) (core#if (pair? (car .form.2373)) (core#if (identifier? (caar .for",
"m.2373)) (identifier=? (.the.2298 (core#quote unquote-splicing)) (make-identifie",
"r (caar .form.2373) .env.2366)) #f) #f) #f))) (core#begin (core#define .qq.2370 ",
"(core#lambda (.depth.2374 .expr.2375) (core#if (.unquote?.2368 .expr.2375) (core",
"#if (= .depth.2374 1) (cadr .expr.2375) (list (.the.2298 (core#quote list)) (lis",
"t (.the.2298 (core#quote quote)) (.the.2298 (core#quote unquote))) (.qq.2370 (- ",
".depth.2374 1) (car (cdr .expr.2375))))) (core#if (.unquote-splicing?.2369 .expr",
".2375) (core#if (= .depth.2374 1) (list (.the.2298 (core#quote append)) (car (cd",
"r (car .expr.2375))) (.qq.2370 .depth.2374 (cdr .expr.2375))) (list (.the.2298 (",
"core#quote cons)) (list (.the.2298 (core#quote list)) (list (.the.2298 (core#quo",
"te quote)) (.the.2298 (core#quote unquote-splicing))) (.qq.2370 (- .depth.2374 1",
") (car (cdr (car .expr.2375))))) (.qq.2370 .depth.2374 (cdr .expr.2375)))) (core",
"#if (.quasiquote?.2367 .expr.2375) (list (.the.2298 (core#quote list)) (list (.t",
"he.2298 (core#quote quote)) (.the.2298 (core#quote quasiquote))) (.qq.2370 (+ .d",
"epth.2374 1) (car (cdr .expr.2375)))) (core#if (pair? .expr.2375) (list (.the.22",
"98 (core#quote cons)) (.qq.2370 .depth.2374 (car .expr.2375)) (.qq.2370 .depth.2",
"374 (cdr .expr.2375))) (core#if (vector? .expr.2375) (list (.the.2298 (core#quot",
"e list->vector)) (.qq.2370 .depth.2374 (vector->list .expr.2375))) (list (.the.2",
"298 (core#quote quote)) .expr.2375)))))))) ((core#lambda (.x.2376) (.qq.2370 1 .",
"x.2376)) (cadr .form.2365)))))))) (core#begin (.define-transformer.2297 (core#qu",
"ote let*) (core#lambda (.form.2377 .env.2378) ((core#lambda (.bindings.2379 .bod",
"y.2380) (core#if (null? .bindings.2379) (cons (.the.2298 (core#quote let)) (cons",
" (core#quote ()) .body.2380)) (cons (.the.2298 (core#quote let)) (cons (cons (co",
"ns (car (car .bindings.2379)) (cdr (car .bindings.2379))) (core#quote ())) (cons",
" (cons (.the.2298 (core#quote let*)) (cons (cdr .bindings.2379) .body.2380)) (co",
"re#quote ())))))) (car (cdr .form.2377)) (cdr (cdr .form.2377))))) (core#begin (",
".define-transformer.2297 (core#quote letrec) (core#lambda (.form.2381 .env.2382)",
" (cons (.the.2298 (core#quote letrec*)) (cdr .form.2381)))) (core#begin (.define",
"-transformer.2297 (core#quote letrec*) (core#lambda (.form.2383 .env.2384) ((cor",
"e#lambda (.bindings.2385 .body.2386) ((core#lambda (.variables.2387 .initials.23",
"88) (cons (.the.2298 (core#quote let)) (cons .variables.2387 (append .initials.2",
"388 (append .body.2386 (core#quote ())))))) (map (core#lambda (.v.2389) (cons .v",
".2389 (cons (core#quote #undefined) (core#quote ())))) (map car .bindings.2385))",
" (map (core#lambda (.v.2390) (cons (.the.2298 (core#quote set!)) (append .v.2390",
" (core#quote ())))) .bindings.2385))) (car (cdr .form.2383)) (cdr (cdr .form.238",
"3))))) (core#begin (.define-transformer.2297 (core#quote let-values) (core#lambd",
"a (.form.2391 .env.2392) (cons (.the.2298 (core#quote let*-values)) (append (cdr",
" .form.2391) (core#quote ()))))) (core#begin (.define-transformer.2297 (core#quo",
"te let*-values) (core#lambda (.form.2393 .env.2394) ((core#lambda (.formals.2395",
" .body.2396) (core#if (null? .formals.2395) (cons (.the.2298 (core#quote let)) (",
"cons (core#quote ()) (append .body.2396 (core#quote ())))) ((core#lambda (.forma",
"l.2397) (cons (.the.2298 (core#quote call-with-values)) (cons (cons .the-lambda.",
"2310 (cons (core#quote ()) (cdr .formal.2397))) (cons (cons (.the.2298 (core#quo",
"te lambda)) (cons (car .formal.2397) (cons (cons (.the.2298 (core#quote let*-val",
"ues)) (cons (cdr .formals.2395) .body.2396)) (core#quote ())))) (core#quote ()))",
"))) (car .formals.2395)))) (cadr .form.2393) (cddr .form.2393)))) (core#begin (.",
"define-transformer.2297 (core#quote define-values) (core#lambda (.form.2398 .env",
".2399) ((core#lambda (.formal.2400 .body.2401) ((core#lambda (.tmps.2402) (cons ",
".the-begin.2311 (append ((core#lambda () (core#begin (core#define .loop.2403 (co",
"re#lambda (.formal.2404) (core#if (identifier? .formal.2404) (cons (cons .the-de",
"fine.2309 (cons .formal.2404 (cons (core#quote #undefined) (core#quote ())))) (c",
"ore#quote ())) (core#if (pair? .formal.2404) (cons (cons .the-define.2309 (cons ",
"(car .formal.2404) (cons (core#quote #undefined) (core#quote ())))) (.loop.2403 ",
"(cdr .formal.2404))) (core#quote ()))))) (.loop.2403 .formal.2400)))) (cons (con",
"s (.the.2298 (core#quote call-with-values)) (cons (cons .the-lambda.2310 (cons (",
"core#quote ()) .body.2401)) (cons (cons .the-lambda.2310 (cons .tmps.2402 ((core",
"#lambda () (core#begin (core#define .loop.2405 (core#lambda (.formal.2406 .tmps.",
"2407) (core#if (identifier? .formal.2406) (cons (cons .the-set!.2313 (cons .form",
"al.2406 (cons .tmps.2407 (core#quote ())))) (core#quote ())) (core#if (pair? .fo",
"rmal.2406) (cons (cons .the-set!.2313 (cons (car .formal.2406) (cons (car .tmps.",
"2407) (core#quote ())))) (.loop.2405 (cdr .formal.2406) (cdr .tmps.2407))) (core",
"#quote ()))))) (.loop.2405 .formal.2400 .tmps.2402)))))) (core#quote ())))) (cor",
"e#quote ()))))) ((core#lambda () (core#begin (core#define .loop.2408 (core#lambd",
"a (.formal.2409) (core#if (identifier? .formal.2409) (make-identifier .formal.24",
"09 .env.2399) (core#if (pair? .formal.2409) (cons (make-identifier (car .formal.",
"2409) .env.2399) (.loop.2408 (cdr .formal.2409))) (core#quote ()))))) (.loop.240",
"8 .formal.2400)))))) (cadr .form.2398) (cddr .form.2398)))) (core#begin (.define",
"-transformer.2297 (core#quote do) (core#lambda (.form.2410 .env.2411) ((core#lam",
"bda (.bindings.2412 .test.2413 .cleanup.2414 .body.2415) ((core#lambda (.loop.24",
"16) (cons (.the.2298 (core#quote let)) (cons .loop.2416 (cons (map (core#lambda ",
"(.x.2417) (cons (car .x.2417) (cons (cadr .x.2417) (core#quote ())))) .bindings.",
"2412) (cons (cons .the-if.2314 (cons .test.2413 (cons (cons .the-begin.2311 .cle",
"anup.2414) (cons (cons .the-begin.2311 (append .body.2415 (cons (cons .loop.2416",
" (map (core#lambda (.x.2418) (core#if (null? (cdr (cdr .x.2418))) (car .x.2418) ",
"(car (cdr (cdr .x.2418))))) .bindings.2412)) (core#quote ())))) (core#quote ()))",
"))) (core#quote ())))))) (make-identifier (core#quote loop) .env.2411))) (car (c",
"dr .form.2410)) (car (car (cdr (cdr .form.2410)))) (cdr (car (cdr (cdr .form.241",
"0)))) (cdr (cdr (cdr .form.2410)))))) (core#begin (.define-transformer.2297 (cor",
"e#quote when) (core#lambda (.form.2419 .env.2420) ((core#lambda (.test.2421 .bod",
"y.2422) (cons .the-if.2314 (cons .test.2421 (cons (cons .the-begin.2311 (append ",
".body.2422 (core#quote ()))) (cons (core#quote #undefined) (core#quote ())))))) ",
"(car (cdr .form.2419)) (cdr (cdr .form.2419))))) (core#begin (.define-transforme",
"r.2297 (core#quote unless) (core#lambda (.form.2423 .env.2424) ((core#lambda (.t",
"est.2425 .body.2426) (cons .the-if.2314 (cons .test.2425 (cons (core#quote #unde",
"fined) (cons (cons .the-begin.2311 (append .body.2426 (core#quote ()))) (core#qu",
"ote ())))))) (car (cdr .form.2423)) (cdr (cdr .form.2423))))) (core#begin (.defi",
"ne-transformer.2297 (core#quote case) (core#lambda (.form.2427 .env.2428) ((core",
"#lambda (.key.2429 .clauses.2430) ((core#lambda (.the-key.2431) (cons (.the.2298",
" (core#quote let)) (cons (cons (cons .the-key.2431 (cons .key.2429 (core#quote (",
")))) (core#quote ())) (cons ((core#lambda () (core#begin (core#define .loop.2432",
" (core#lambda (.clauses.2433) (core#if (null? .clauses.2433) #undefined ((core#l",
"ambda (.clause.2434) (cons .the-if.2314 (cons (core#if (core#if (identifier? (ca",
"r .clause.2434)) (identifier=? (.the.2298 (core#quote else)) (make-identifier (c",
"ar .clause.2434) .env.2428)) #f) #t (cons (.the.2298 (core#quote or)) (append (m",
"ap (core#lambda (.x.2435) (cons (.the.2298 (core#quote eqv?)) (cons .the-key.243",
"1 (cons (cons .the-quote.2312 (cons .x.2435 (core#quote ()))) (core#quote ()))))",
") (car .clause.2434)) (core#quote ())))) (cons (core#if (core#if (identifier? (c",
"adr .clause.2434)) (identifier=? (.the.2298 (core#quote =>)) (make-identifier (c",
"adr .clause.2434) .env.2428)) #f) (cons (car (cdr (cdr .clause.2434))) (cons .th",
"e-key.2431 (core#quote ()))) (cons .the-begin.2311 (append (cdr .clause.2434) (c",
"ore#quote ())))) (cons (.loop.2432 (cdr .clauses.2433)) (core#quote ())))))) (ca",
"r .clauses.2433))))) (.loop.2432 .clauses.2430)))) (core#quote ()))))) (make-ide",
"ntifier (core#quote key) .env.2428))) (car (cdr .form.2427)) (cdr (cdr .form.242",
"7))))) (core#begin (.define-transformer.2297 (core#quote parameterize) (core#lam",
"bda (.form.2436 .env.2437) ((core#lambda (.formal.2438 .body.2439) (cons (.the.2",
"298 (core#quote with-dynamic-environment)) (cons (cons (.the.2298 (core#quote li",
"st)) (append (map (core#lambda (.x.2440) (cons (.the.2298 (core#quote cons)) (co",
"ns (car .x.2440) (cons (cadr .x.2440) (core#quote ()))))) .formal.2438) (core#qu",
"ote ()))) (cons (cons .the-lambda.2310 (cons (core#quote ()) (append .body.2439 ",
"(core#quote ())))) (core#quote ()))))) (car (cdr .form.2436)) (cdr (cdr .form.24",
"36))))) (.define-transformer.2297 (core#quote define-record-type) (core#lambda (",
".form.2441 .env.2442) ((core#lambda (.type.2443 .ctor.2444 .pred.2445 .fields.24",
"46) (cons .the-begin.2311 (cons (cons .the-define.2309 (cons .ctor.2444 (cons (c",
"ons (.the.2298 (core#quote make-record)) (cons (cons (core#quote quote) (cons .t",
"ype.2443 (core#quote ()))) (cons (cons (.the.2298 (core#quote vector)) (map (cor",
"e#lambda (.field.2447) (core#if (memq (car .field.2447) (cdr .ctor.2444)) (car .",
"field.2447) #undefined)) .fields.2446)) (core#quote ())))) (core#quote ())))) (c",
"ons (cons .the-define.2309 (cons .pred.2445 (cons (cons (.the.2298 (core#quote l",
"ambda)) (cons (cons (core#quote obj) (core#quote ())) (cons (cons (.the.2298 (co",
"re#quote and)) (cons (cons (.the.2298 (core#quote record?)) (cons (core#quote ob",
"j) (core#quote ()))) (cons (cons (.the.2298 (core#quote eq?)) (cons (cons (.the.",
"2298 (core#quote record-type)) (cons (core#quote obj) (core#quote ()))) (cons (c",
"ons (core#quote quote) (cons .type.2443 (core#quote ()))) (core#quote ())))) (co",
"re#quote ())))) (core#quote ())))) (core#quote ())))) ((core#lambda () (core#beg",
"in (core#define .loop.2448 (core#lambda (.fields.2449 .pos.2450 .acc.2451) (core",
"#if (null? .fields.2449) .acc.2451 ((core#lambda (.field.2452) ((core#lambda (.d",
"efs.2453) (.loop.2448 (cdr .fields.2449) (+ .pos.2450 1) (append .defs.2453 .acc",
".2451))) (cons (cons .the-define.2309 (cons (cons (cadr .field.2452) (cons (core",
"#quote obj) (core#quote ()))) (cons (cons .the-if.2314 (cons (cons .pred.2445 (c",
"ons (core#quote obj) (core#quote ()))) (cons (cons (.the.2298 (core#quote vector",
"-ref)) (cons (cons (.the.2298 (core#quote record-datum)) (cons (core#quote obj) ",
"(core#quote ()))) (cons .pos.2450 (core#quote ())))) (cons (cons (.the.2298 (cor",
"e#quote error)) (cons (core#quote \"record type mismatch\") (cons (core#quote obj)",
" (cons (cons (core#quote quote) (cons .type.2443 (core#quote ()))) (core#quote (",
")))))) (core#quote ()))))) (core#quote ())))) (core#if (null? (cddr .field.2452)",
") (core#quote ()) (cons (cons .the-define.2309 (cons (cons (car (cddr .field.245",
"2)) (cons (core#quote obj) (cons (core#quote value) (core#quote ())))) (cons (co",
"ns .the-if.2314 (cons (cons .pred.2445 (cons (core#quote obj) (core#quote ()))) ",
"(cons (cons (.the.2298 (core#quote vector-set!)) (cons (cons (.the.2298 (core#qu",
"ote record-datum)) (cons (core#quote obj) (core#quote ()))) (cons .pos.2450 (con",
"s (core#quote value) (core#quote ()))))) (cons (cons (.the.2298 (core#quote erro",
"r)) (cons (core#quote \"record type mismatch\") (cons (core#quote obj) (cons (cons",
" (core#quote quote) (cons .type.2443 (core#quote ()))) (core#quote ()))))) (core",
"#quote ()))))) (core#quote ())))) (core#quote ())))))) (car .fields.2449))))) (.",
"loop.2448 .fields.2446 0 (core#quote ()))))))))) (car (cdr .form.2441)) (car (cd",
"r (cdr .form.2441))) (car (cdr (cdr (cdr .form.2441)))) (cdr (cdr (cdr (cdr .for",
"m.2441))))))))))))))))))))))))))))))))))))) (.the.2298 (core#quote core#define))",
" (.the.2298 (core#quote core#lambda)) (.the.2298 (core#quote core#begin)) (.the.",
"2298 (core#quote core#quote)) (.the.2298 (core#quote core#set!)) (.the.2298 (cor",
"e#quote core#if)) (.the.2298 (core#quote core#define-macro)) (.the.2298 (core#qu",
"ote define)) (.the.2298 (core#quote lambda)) (.the.2298 (core#quote begin)) (.th",
"e.2298 (core#quote quote)) (.the.2298 (core#quote set!)) (.the.2298 (core#quote ",
"if)) (.the.2298 (core#quote define-macro))))))) (core#begin (core#begin (core#de",
"fine compile #undefined) (call-with-values (core#lambda () ((core#lambda () (cor",
"e#begin (core#define .caddr.2454 (core#lambda (.x.2461) (car (cddr .x.2461)))) (",
"core#begin (core#define .cadddr.2455 (core#lambda (.x.2462) (cadr (cddr .x.2462)",
"))) (core#begin (core#define .max.2456 (core#lambda (.a.2463 .b.2464) (core#if (",
"< .a.2463 .b.2464) .b.2464 .a.2463))) (core#begin (core#define .integer?.2457 (c",
"ore#lambda (.n.2465) (core#if (number? .n.2465) (exact? .n.2465) #f))) (core#beg",
"in (core#define .normalize.2458 ((core#lambda (.defs.2466) (core#begin (core#def",
"ine .normalize.2467 (core#lambda (.e.2468) (core#if (symbol? .e.2468) (cons (cor",
"e#quote ref) (cons .e.2468 (core#quote ()))) (core#if (not (pair? .e.2468)) (con",
"s (core#quote quote) (cons .e.2468 (core#quote ()))) ((core#lambda (.key.2469) (",
"core#if ((core#lambda (.it.2470) (core#if .it.2470 .it.2470 #f)) (eqv? .key.2469",
" (core#quote core#quote))) (cons (core#quote quote) (cdr .e.2468)) (core#if ((co",
"re#lambda (.it.2471) (core#if .it.2471 .it.2471 #f)) (eqv? .key.2469 (core#quote",
" core#define))) ((core#lambda (.var.2472 .val.2473) (core#begin (.defs.2466 (con",
"s .var.2472 (.defs.2466))) (cons (core#quote set!) (cons .var.2472 (cons (.norma",
"lize.2467 .val.2473) (core#quote ())))))) (cadr .e.2468) (.caddr.2454 .e.2468)) ",
"(core#if ((core#lambda (.it.2474) (core#if .it.2474 .it.2474 #f)) (eqv? .key.246",
"9 (core#quote core#lambda))) ((core#lambda (.args.2475 .body.2476) (with-dynamic",
"-environment (list (cons .defs.2466 (core#quote ()))) (core#lambda () ((core#lam",
"bda (.body.2477) (core#if (null? (.defs.2466)) (cons (core#quote lambda) (cons .",
"args.2475 (cons .body.2477 (core#quote ())))) (cons (core#quote lambda) (cons .a",
"rgs.2475 (cons (cons (cons (core#quote lambda) (cons (.defs.2466) (cons .body.24",
"77 (core#quote ())))) (append (map (core#lambda (._.2478) #f) (.defs.2466)) (cor",
"e#quote ()))) (core#quote ())))))) (.normalize.2467 .body.2476))))) (cadr .e.246",
"8) (.caddr.2454 .e.2468)) (core#if ((core#lambda (.it.2479) (core#if .it.2479 .i",
"t.2479 #f)) (eqv? .key.2469 (core#quote core#set!))) (cons (core#quote set!) (ma",
"p .normalize.2467 (cdr .e.2468))) (core#if ((core#lambda (.it.2480) (core#if .it",
".2480 .it.2480 #f)) (eqv? .key.2469 (core#quote core#if))) (cons (core#quote if)",
" (map .normalize.2467 (cdr .e.2468))) (core#if ((core#lambda (.it.2481) (core#if",
" .it.2481 .it.2481 #f)) (eqv? .key.2469 (core#quote core#begin))) (cons (core#qu",
"ote begin) (map .normalize.2467 (cdr .e.2468))) (core#if #t (map .normalize.2467",
" .e.2468) #undefined)))))))) (car .e.2468)))))) .normalize.2467)) (make-paramete",
"r (core#quote ())))) (core#begin (core#define .transform.2459 ((core#lambda () (",
"core#begin (core#define .uniq.2482 ((core#lambda (.n.2487) (core#lambda () (core",
"#begin (core#set! .n.2487 (+ .n.2487 1)) (string->symbol (string-append \"$\" (num",
"ber->string .n.2487)))))) 0)) (core#begin (core#define .transform-k.2483 (core#l",
"ambda (.e.2488 .k.2489) ((core#lambda (.key.2490) (core#if ((core#lambda (.it.24",
"91) (core#if .it.2491 .it.2491 ((core#lambda (.it.2492) (core#if .it.2492 .it.24",
"92 ((core#lambda (.it.2493) (core#if .it.2493 .it.2493 #f)) (eqv? .key.2490 (cor",
"e#quote quote))))) (eqv? .key.2490 (core#quote lambda))))) (eqv? .key.2490 (core",
"#quote ref))) (.k.2489 (.transform-v.2486 .e.2488)) (core#if ((core#lambda (.it.",
"2494) (core#if .it.2494 .it.2494 #f)) (eqv? .key.2490 (core#quote begin))) (.tra",
"nsform-k.2483 (cadr .e.2488) (core#lambda (._.2495) (.transform-k.2483 (.caddr.2",
"454 .e.2488) .k.2489))) (core#if ((core#lambda (.it.2496) (core#if .it.2496 .it.",
"2496 #f)) (eqv? .key.2490 (core#quote set!))) (.transform-k.2483 (.caddr.2454 .e",
".2488) (core#lambda (.v.2497) (cons (core#quote set!) (cons (cadr .e.2488) (cons",
" .v.2497 (cons (.k.2489 (core#quote (undefined))) (core#quote ()))))))) (core#if",
" ((core#lambda (.it.2498) (core#if .it.2498 .it.2498 #f)) (eqv? .key.2490 (core#",
"quote if))) ((core#lambda (.v.2499 .c.2500) (cons (cons (core#quote lambda) (con",
"s (cons .c.2500 (core#quote ())) (cons (.transform-k.2483 (cadr .e.2488) (core#l",
"ambda (.x.2501) (cons (core#quote if) (cons .x.2501 (cons (.transform-c.2485 (.c",
"addr.2454 .e.2488) .c.2500) (cons (.transform-c.2485 (.cadddr.2455 .e.2488) .c.2",
"500) (core#quote ()))))))) (core#quote ())))) (cons (cons (core#quote lambda) (c",
"ons (cons .v.2499 (core#quote ())) (cons (.k.2489 (cons (core#quote ref) (cons .",
"v.2499 (core#quote ())))) (core#quote ())))) (core#quote ())))) (.uniq.2482) (co",
"ns (core#quote ref) (cons (.uniq.2482) (core#quote ())))) (core#if #t ((core#lam",
"bda (.v.2502) ((core#lambda (.c.2503) ((core#lambda () (.transform-k.2483 (car .",
"e.2488) (core#lambda (.f.2504) (.transform*-k.2484 (cdr .e.2488) (core#lambda (.",
"args.2505) (cons .f.2504 (cons .c.2503 (append .args.2505 (core#quote ()))))))))",
"))) (cons (core#quote lambda) (cons (cons .v.2502 (core#quote ())) (cons (.k.248",
"9 (cons (core#quote ref) (cons .v.2502 (core#quote ())))) (core#quote ())))))) (",
".uniq.2482)) #undefined)))))) (car .e.2488)))) (core#begin (core#define .transfo",
"rm*-k.2484 (core#lambda (.es.2506 .k.2507) (core#if (null? .es.2506) (.k.2507 (c",
"ore#quote ())) (.transform-k.2483 (car .es.2506) (core#lambda (.x.2508) (.transf",
"orm*-k.2484 (cdr .es.2506) (core#lambda (.xs.2509) (.k.2507 (cons .x.2508 .xs.25",
"09))))))))) (core#begin (core#define .transform-c.2485 (core#lambda (.e.2510 .c.",
"2511) ((core#lambda (.key.2512) (core#if ((core#lambda (.it.2513) (core#if .it.2",
"513 .it.2513 ((core#lambda (.it.2514) (core#if .it.2514 .it.2514 ((core#lambda (",
".it.2515) (core#if .it.2515 .it.2515 #f)) (eqv? .key.2512 (core#quote quote)))))",
" (eqv? .key.2512 (core#quote lambda))))) (eqv? .key.2512 (core#quote ref))) (con",
"s .c.2511 (cons (.transform-v.2486 .e.2510) (core#quote ()))) (core#if ((core#la",
"mbda (.it.2516) (core#if .it.2516 .it.2516 #f)) (eqv? .key.2512 (core#quote begi",
"n))) (.transform-k.2483 (cadr .e.2510) (core#lambda (._.2517) (.transform-c.2485",
" (.caddr.2454 .e.2510) .c.2511))) (core#if ((core#lambda (.it.2518) (core#if .it",
".2518 .it.2518 #f)) (eqv? .key.2512 (core#quote set!))) (.transform-k.2483 (.cad",
"dr.2454 .e.2510) (core#lambda (.v.2519) (cons (core#quote set!) (cons (cadr .e.2",
"510) (cons .v.2519 (cons (cons .c.2511 (cons (cons (core#quote undefined) (core#",
"quote ())) (core#quote ()))) (core#quote ()))))))) (core#if ((core#lambda (.it.2",
"520) (core#if .it.2520 .it.2520 #f)) (eqv? .key.2512 (core#quote if))) (core#if ",
"(core#if (pair? .c.2511) (eq? (core#quote lambda) (car .c.2511)) #f) ((core#lamb",
"da (.k.2521) (cons (cons (core#quote lambda) (cons (cons .k.2521 (core#quote ())",
") (cons (.transform-k.2483 (cadr .e.2510) (core#lambda (.x.2522) (cons (core#quo",
"te if) (cons .x.2522 (cons (.transform-c.2485 (.caddr.2454 .e.2510) .k.2521) (co",
"ns (.transform-c.2485 (.cadddr.2455 .e.2510) .k.2521) (core#quote ()))))))) (cor",
"e#quote ())))) (cons .c.2511 (core#quote ())))) (cons (core#quote ref) (cons (.u",
"niq.2482) (core#quote ())))) (.transform-k.2483 (cadr .e.2510) (core#lambda (.x.",
"2523) (cons (core#quote if) (cons .x.2523 (cons (.transform-c.2485 (.caddr.2454 ",
".e.2510) .c.2511) (cons (.transform-c.2485 (.cadddr.2455 .e.2510) .c.2511) (core",
"#quote ())))))))) (core#if #t (.transform-k.2483 (car .e.2510) (core#lambda (.f.",
"2524) (.transform*-k.2484 (cdr .e.2510) (core#lambda (.args.2525) (cons .f.2524 ",
"(cons .c.2511 (append .args.2525 (core#quote ())))))))) #undefined)))))) (car .e",
".2510)))) (core#begin (core#define .transform-v.2486 (core#lambda (.e.2526) ((co",
"re#lambda (.key.2527) (core#if ((core#lambda (.it.2528) (core#if .it.2528 .it.25",
"28 ((core#lambda (.it.2529) (core#if .it.2529 .it.2529 #f)) (eqv? .key.2527 (cor",
"e#quote quote))))) (eqv? .key.2527 (core#quote ref))) .e.2526 (core#if ((core#la",
"mbda (.it.2530) (core#if .it.2530 .it.2530 #f)) (eqv? .key.2527 (core#quote lamb",
"da))) ((core#lambda (.k.2531) (cons (core#quote lambda) (cons (cons .k.2531 (app",
"end (cadr .e.2526) (core#quote ()))) (cons (.transform-c.2485 (.caddr.2454 .e.25",
"26) (cons (core#quote ref) (cons .k.2531 (core#quote ())))) (core#quote ()))))) ",
"(.uniq.2482)) #undefined))) (car .e.2526)))) (core#lambda (.e.2532) ((core#lambd",
"a (.k.2533) (cons (core#quote lambda) (cons (cons .k.2533 (core#quote ())) (cons",
" (.transform-c.2485 .e.2532 (cons (core#quote ref) (cons .k.2533 (core#quote ())",
"))) (core#quote ()))))) (.uniq.2482))))))))))) (core#begin (core#define .codegen",
".2460 ((core#lambda () (core#begin (core#define .lookup.2534 (core#lambda (.var.",
"2546 .env.2547) ((core#lambda () (core#begin (core#define .up.2548 (core#lambda ",
"(.depth.2549 .env.2550) (core#if (null? .env.2550) (cons (core#quote global) (co",
"ns .var.2546 (core#quote ()))) ((core#lambda () (core#begin (core#define .loop.2",
"551 (core#lambda (.index.2552 .binding.2553) (core#if (symbol? .binding.2553) (c",
"ore#if (eq? .var.2546 .binding.2553) (cons (core#quote local) (cons .depth.2549 ",
"(cons .index.2552 (core#quote ())))) (.up.2548 (+ .depth.2549 1) (cdr .env.2550)",
")) (core#if (null? .binding.2553) (.up.2548 (+ .depth.2549 1) (cdr .env.2550)) (",
"core#if (eq? .var.2546 (car .binding.2553)) (cons (core#quote local) (cons .dept",
"h.2549 (cons .index.2552 (core#quote ())))) (.loop.2551 (+ .index.2552 1) (cdr .",
"binding.2553))))))) (.loop.2551 1 (car .env.2550)))))))) (.up.2548 0 .env.2547))",
")))) (core#begin (core#define .env.2535 (make-parameter (core#quote ()))) (core#",
"begin (core#define .code.2536 (make-parameter (core#quote ()))) (core#begin (cor",
"e#define .reps.2537 (make-parameter (core#quote ()))) (core#begin (core#define .",
"objs.2538 (make-parameter (core#quote ()))) (core#begin (core#define .emit.2539 ",
"(core#lambda (.inst.2554) (.code.2536 (cons .inst.2554 (.code.2536))))) (core#be",
"gin (core#define .emit-irep.2540 (core#lambda (.irep.2555) ((core#lambda (.n.255",
"6) (core#begin (.reps.2537 (cons .irep.2555 (.reps.2537))) .n.2556)) (length (.r",
"eps.2537))))) (core#begin (core#define .emit-objs.2541 (core#lambda (.obj.2557) ",
"((core#lambda (.n.2558) (core#begin (.objs.2538 (cons .obj.2557 (.objs.2538))) .",
"n.2558)) (length (.objs.2538))))) (core#begin (core#define .make-label.2542 ((co",
"re#lambda (.n.2559) (core#lambda () ((core#lambda (.m.2560) (core#begin (core#se",
"t! .n.2559 (+ .n.2559 1)) .m.2560)) .n.2559))) 0)) (core#begin (core#define .emi",
"t-label.2543 (core#lambda (.label.2561) (.code.2536 (cons .label.2561 (.code.253",
"6))))) (core#begin (core#define .codegen-e.2544 (core#lambda (.e.2562) ((core#la",
"mbda (.key.2563) (core#if ((core#lambda (.it.2564) (core#if .it.2564 .it.2564 ((",
"core#lambda (.it.2565) (core#if .it.2565 .it.2565 ((core#lambda (.it.2566) (core",
"#if .it.2566 .it.2566 ((core#lambda (.it.2567) (core#if .it.2567 .it.2567 #f)) (",
"eqv? .key.2563 (core#quote undefined))))) (eqv? .key.2563 (core#quote quote)))))",
" (eqv? .key.2563 (core#quote lambda))))) (eqv? .key.2563 (core#quote ref))) (.co",
"degen-a.2545 .e.2562 0) (core#if ((core#lambda (.it.2568) (core#if .it.2568 .it.",
"2568 #f)) (eqv? .key.2563 (core#quote set!))) (core#begin (.codegen-a.2545 (.cad",
"dr.2454 .e.2562) 0) (core#begin ((core#lambda (.x.2569) ((core#lambda (.op.2570)",
" ((core#lambda () (.emit.2539 (cons .op.2570 (cons (core#quote 0) (cdr .x.2569))",
"))))) (core#if (eq? (core#quote global) (car .x.2569)) (core#quote GSET) (core#q",
"uote LSET)))) (.lookup.2534 (cadr .e.2562) (.env.2535))) (.codegen-e.2544 (.cadd",
"dr.2455 .e.2562)))) (core#if ((core#lambda (.it.2571) (core#if .it.2571 .it.2571",
" #f)) (eqv? .key.2563 (core#quote if))) (core#begin (.codegen-a.2545 (cadr .e.25",
"62) 0) ((core#lambda (.label.2572) (core#begin (.emit.2539 (cons (core#quote CON",
"D) (cons (core#quote 0) (cons .label.2572 (core#quote ()))))) (core#begin (.code",
"gen-e.2544 (.caddr.2454 .e.2562)) (core#begin (.emit-label.2543 .label.2572) (.c",
"odegen-e.2544 (.cadddr.2455 .e.2562)))))) (.make-label.2542))) (core#if #t (core",
"#begin ((core#lambda () (core#begin (core#define .loop.2573 (core#lambda (.i.257",
"4 .e.2575) (core#if (null? .e.2575) #undefined (core#begin (.codegen-a.2545 (car",
" .e.2575) .i.2574) (.loop.2573 (+ .i.2574 1) (cdr .e.2575)))))) (.loop.2573 0 .e",
".2562)))) (.emit.2539 (cons (core#quote CALL) (cons (- (length .e.2562) 1) (core",
"#quote ()))))) #undefined))))) (car .e.2562)))) (core#begin (core#define .codege",
"n-a.2545 (core#lambda (.e.2576 .i.2577) ((core#lambda (.key.2578) (core#if ((cor",
"e#lambda (.it.2579) (core#if .it.2579 .it.2579 #f)) (eqv? .key.2578 (core#quote ",
"ref))) ((core#lambda (.x.2580) ((core#lambda (.op.2581) ((core#lambda () (.emit.",
"2539 (cons .op.2581 (cons .i.2577 (cdr .x.2580))))))) (core#if (eq? (core#quote ",
"global) (car .x.2580)) (core#quote GREF) (core#quote LREF)))) (.lookup.2534 (cad",
"r .e.2576) (.env.2535))) (core#if ((core#lambda (.it.2582) (core#if .it.2582 .it",
".2582 #f)) (eqv? .key.2578 (core#quote quote))) ((core#lambda (.obj.2583) (core#",
"if (eq? #t .obj.2583) (.emit.2539 (cons (core#quote LOADT) (cons .i.2577 (core#q",
"uote ())))) (core#if (eq? #f .obj.2583) (.emit.2539 (cons (core#quote LOADF) (co",
"ns .i.2577 (core#quote ())))) (core#if (null? .obj.2583) (.emit.2539 (cons (core",
"#quote LOADN) (cons .i.2577 (core#quote ())))) (core#if (eq? #undefined .obj.258",
"3) (.emit.2539 (cons (core#quote LOADU) (cons .i.2577 (core#quote ())))) (core#i",
"f (core#if (.integer?.2457 .obj.2583) (<= -128 .obj.2583 127) #f) (.emit.2539 (c",
"ons (core#quote LOADI) (cons .i.2577 (cons .obj.2583 (core#quote ()))))) ((core#",
"lambda (.n.2584) (.emit.2539 (cons (core#quote LOAD) (cons .i.2577 (cons .n.2584",
" (core#quote ())))))) (emit-obj .obj.2583)))))))) (cadr .e.2576)) (core#if ((cor",
"e#lambda (.it.2585) (core#if .it.2585 .it.2585 #f)) (eqv? .key.2578 (core#quote ",
"undefined))) (.emit.2539 (cons (core#quote LOADU) (cons .i.2577 (core#quote ()))",
")) (core#if ((core#lambda (.it.2586) (core#if .it.2586 .it.2586 #f)) (eqv? .key.",
"2578 (core#quote lambda))) ((core#lambda (.frame-size.2587 .argc-varg.2588) ((co",
"re#lambda (.irep.2589) ((core#lambda (.n.2590) (.emit.2539 (cons (core#quote PRO",
"C) (cons .i.2577 (cons .n.2590 (core#quote ())))))) (.emit-irep.2540 .irep.2589)",
")) (with-dynamic-environment (list (cons .code.2536 (core#quote ())) (cons .env.",
"2535 (cons (cadr .e.2576) (.env.2535))) (cons .reps.2537 (core#quote ())) (cons ",
".objs.2538 (core#quote ()))) (core#lambda () (core#begin (.codegen-e.2544 (.cadd",
"r.2454 .e.2576)) (list (reverse (.code.2536)) (reverse (.reps.2537)) (reverse (.",
"objs.2538)) .argc-varg.2588 .frame-size.2587)))))) ((core#lambda () (core#begin ",
"(core#define .loop.2591 (core#lambda (.e.2592) ((core#lambda (.key.2593) (core#i",
"f ((core#lambda (.it.2594) (core#if .it.2594 .it.2594 ((core#lambda (.it.2595) (",
"core#if .it.2595 .it.2595 ((core#lambda (.it.2596) (core#if .it.2596 .it.2596 ((",
"core#lambda (.it.2597) (core#if .it.2597 .it.2597 #f)) (eqv? .key.2593 (core#quo",
"te undefined))))) (eqv? .key.2593 (core#quote quote))))) (eqv? .key.2593 (core#q",
"uote lambda))))) (eqv? .key.2593 (core#quote ref))) 1 (core#if ((core#lambda (.i",
"t.2598) (core#if .it.2598 .it.2598 #f)) (eqv? .key.2593 (core#quote if))) (.max.",
"2456 (.loop.2591 (.caddr.2454 .e.2592)) (.loop.2591 (.cadddr.2455 .e.2592))) (co",
"re#if ((core#lambda (.it.2599) (core#if .it.2599 .it.2599 #f)) (eqv? .key.2593 (",
"core#quote set!))) (.loop.2591 (.cadddr.2455 .e.2592)) (core#if #t (+ 1 (length ",
".e.2592)) #undefined))))) (car .e.2592)))) (.loop.2591 (.caddr.2454 .e.2576)))))",
" ((core#lambda () (core#begin (core#define .loop.2600 (core#lambda (.args.2601 .",
"c.2602) (core#if (symbol? .args.2601) (cons .c.2602 #t) (core#if (null? .args.26",
"01) (cons .c.2602 #f) (.loop.2600 (cdr .args.2601) (+ 1 .c.2602)))))) (.loop.260",
"0 (cadr .e.2576) 0))))) #undefined))))) (car .e.2576)))) (core#lambda (.e.2603) ",
"(with-dynamic-environment (list (cons .code.2536 (core#quote ())) (cons .env.253",
"5 (core#quote ())) (cons .reps.2537 (core#quote ())) (cons .objs.2538 (core#quot",
"e ()))) (core#lambda () (core#begin (.codegen-e.2544 .e.2603) (car (.reps.2537))",
"))))))))))))))))))) (core#lambda (.e.2604) (.codegen.2460 (.transform.2459 (.nor",
"malize.2458 .e.2604)))))))))))))) (core#lambda (.compile.2605) (core#set! compil",
"e .compile.2605)))) (core#define eval (core#lambda (.expr.2606 . .env.2607) (loa",
"d (expand .expr.2606 (core#if (null? .env.2607) default-environment (car .env.26",
"07)))))))))",
};
#endif
#if PIC_USE_LIBRARY
static const char boot_library_rom[][80] = {
"(core#begin (core#define current-library #undefined) (core#begin (core#define fi",
"nd-library #undefined) (core#begin (core#define make-library #undefined) (core#b",
"egin (core#define library-environment #undefined) (core#begin (core#define libra",
"ry-exports #undefined) (core#begin (core#define library-import #undefined) (core",
"#begin (core#define library-export #undefined) (call-with-values (core#lambda ()",
" ((core#lambda () (core#begin (core#define .mangle.2608 (core#lambda (.name.2617",
") (core#begin (core#if (null? .name.2617) (error \"library name should be a list ",
"of at least one symbols\" .name.2617) #undefined) (core#begin (core#define .->str",
"ing.2618 (core#lambda (.n.2620) (core#if (symbol? .n.2620) ((core#lambda (.str.2",
"621) (core#begin (string-for-each (core#lambda (.c.2622) (core#if ((core#lambda ",
"(.it.2623) (core#if .it.2623 .it.2623 ((core#lambda (.it.2624) (core#if .it.2624",
" .it.2624 #f)) (char=? .c.2622 #\\:)))) (char=? .c.2622 #\\.)) (error \"elements of",
" library name may not contain '.' or ':'\" .n.2620) #undefined)) .str.2621) .str.",
"2621)) (symbol->string .n.2620)) (core#if (core#if (number? .n.2620) (core#if (e",
"xact? .n.2620) (<= 0 .n.2620) #f) #f) (number->string .n.2620) (error \"symbol or",
" non-negative integer is required\" .n.2620))))) (core#begin (core#define .join.2",
"619 (core#lambda (.strs.2625 .delim.2626) ((core#lambda () (core#begin (core#def",
"ine .loop.2627 (core#lambda (.res.2628 .strs.2629) (core#if (null? .strs.2629) .",
"res.2628 (.loop.2627 (string-append .res.2628 .delim.2626 (car .strs.2629)) (cdr",
" .strs.2629))))) (.loop.2627 (car .strs.2625) (cdr .strs.2625))))))) (core#if (s",
"ymbol? .name.2617) .name.2617 (string->symbol (.join.2619 (map .->string.2618 .n",
"ame.2617) \".\")))))))) (core#begin (core#define .current-library.2609 (make-param",
"eter (core#quote (picrin user)) .mangle.2608)) (core#begin (core#define .*librar",
"ies*.2610 (make-dictionary)) (core#begin (core#define .find-library.2611 (core#l",
"ambda (.name.2630) (dictionary-has? .*libraries*.2610 (.mangle.2608 .name.2630))",
")) (core#begin (core#define .make-library.2612 (core#lambda (.name.2631) ((core#",
"lambda (.name.2632) ((core#lambda (.env.2633 .exports.2634) (core#begin (set-ide",
"ntifier! (core#quote define-library) (core#quote define-library) .env.2633) (cor",
"e#begin (set-identifier! (core#quote import) (core#quote import) .env.2633) (cor",
"e#begin (set-identifier! (core#quote export) (core#quote export) .env.2633) (cor",
"e#begin (set-identifier! (core#quote cond-expand) (core#quote cond-expand) .env.",
"2633) (dictionary-set! .*libraries*.2610 .name.2632 (cons .env.2633 .exports.263",
"4))))))) (make-environment (string->symbol (string-append (symbol->string .name.",
"2632) \":\"))) (make-dictionary))) (.mangle.2608 .name.2631)))) (core#begin (core#",
"define .library-environment.2613 (core#lambda (.name.2635) (car (dictionary-ref ",
".*libraries*.2610 (.mangle.2608 .name.2635))))) (core#begin (core#define .librar",
"y-exports.2614 (core#lambda (.name.2636) (cdr (dictionary-ref .*libraries*.2610 ",
"(.mangle.2608 .name.2636))))) (core#begin (core#define .library-import.2615 (cor",
"e#lambda (.name.2637 .sym.2638 .alias.2639) ((core#lambda (.uid.2640) ((core#lam",
"bda (.env.2641) (set-identifier! .alias.2639 .uid.2640 .env.2641)) (.library-env",
"ironment.2613 (.current-library.2609)))) (dictionary-ref (.library-exports.2614 ",
".name.2637) .sym.2638)))) (core#begin (core#define .library-export.2616 (core#la",
"mbda (.sym.2642 .alias.2643) ((core#lambda (.env.2644 .exports.2645) (dictionary",
"-set! .exports.2645 .alias.2643 (find-identifier .sym.2642 .env.2644))) (.librar",
"y-environment.2613 (.current-library.2609)) (.library-exports.2614 (.current-lib",
"rary.2609))))) (core#begin ((core#lambda (.define-transformer.2646) (core#begin ",
"(.define-transformer.2646 (core#quote define-library) (core#lambda (.form.2647 .",
"_.2648) ((core#lambda (.name.2649 .body.2650) (core#begin ((core#lambda (.it.265",
"1) (core#if .it.2651 .it.2651 ((core#lambda (.it.2652) (core#if .it.2652 .it.265",
"2 #f)) (.make-library.2612 .name.2649)))) (.find-library.2611 .name.2649)) (with",
"-dynamic-environment (list (cons .current-library.2609 .name.2649)) (core#lambda",
" () (for-each (core#lambda (.expr.2653) (eval .expr.2653 .name.2649)) .body.2650",
"))))) (cadr .form.2647) (cddr .form.2647)))) (core#begin (.define-transformer.26",
"46 (core#quote cond-expand) (core#lambda (.form.2654 ._.2655) ((core#lambda (.te",
"st.2656) (core#begin (core#set! .test.2656 (core#lambda (.form.2657) ((core#lamb",
"da (.it.2658) (core#if .it.2658 .it.2658 ((core#lambda (.it.2659) (core#if .it.2",
"659 .it.2659 ((core#lambda (.it.2660) (core#if .it.2660 .it.2660 #f)) (core#if (",
"pair? .form.2657) ((core#lambda (.key.2661) (core#if ((core#lambda (.it.2662) (c",
"ore#if .it.2662 .it.2662 #f)) (eqv? .key.2661 (core#quote library))) (.find-libr",
"ary.2611 (cadr .form.2657)) (core#if ((core#lambda (.it.2663) (core#if .it.2663 ",
".it.2663 #f)) (eqv? .key.2661 (core#quote not))) (not (.test.2656 (cadr .form.26",
"57))) (core#if ((core#lambda (.it.2664) (core#if .it.2664 .it.2664 #f)) (eqv? .k",
"ey.2661 (core#quote and))) ((core#lambda () (core#begin (core#define .loop.2665 ",
"(core#lambda (.form.2666) ((core#lambda (.it.2667) (core#if .it.2667 .it.2667 ((",
"core#lambda (.it.2668) (core#if .it.2668 .it.2668 #f)) (core#if (.test.2656 (car",
" .form.2666)) (.loop.2665 (cdr .form.2666)) #f)))) (null? .form.2666)))) (.loop.",
"2665 (cdr .form.2657))))) (core#if ((core#lambda (.it.2669) (core#if .it.2669 .i",
"t.2669 #f)) (eqv? .key.2661 (core#quote or))) ((core#lambda () (core#begin (core",
"#define .loop.2670 (core#lambda (.form.2671) (core#if (pair? .form.2671) ((core#",
"lambda (.it.2672) (core#if .it.2672 .it.2672 ((core#lambda (.it.2673) (core#if .",
"it.2673 .it.2673 #f)) (.loop.2670 (cdr .form.2671))))) (.test.2656 (car .form.26",
"71))) #f))) (.loop.2670 (cdr .form.2657))))) (core#if #t #f #undefined)))))) (ca",
"r .form.2657)) #f)))) (core#if (symbol? .form.2657) (memq .form.2657 (features))",
" #f)))) (eq? .form.2657 (core#quote else))))) ((core#lambda () (core#begin (core",
"#define .loop.2674 (core#lambda (.clauses.2675) (core#if (null? .clauses.2675) #",
"undefined (core#if (.test.2656 (caar .clauses.2675)) (cons (make-identifier (cor",
"e#quote begin) default-environment) (append (cdar .clauses.2675) (core#quote ())",
")) (.loop.2674 (cdr .clauses.2675)))))) (.loop.2674 (cdr .form.2654))))))) #unde",
"fined))) (core#begin (.define-transformer.2646 (core#quote import) (core#lambda ",
"(.form.2676 ._.2677) ((core#lambda (.caddr.2678 .prefix.2679 .getlib.2680) ((cor",
"e#lambda (.extract.2681 .collect.2682) (core#begin (core#set! .extract.2681 (cor",
"e#lambda (.spec.2683) ((core#lambda (.key.2684) (core#if ((core#lambda (.it.2685",
") (core#if .it.2685 .it.2685 ((core#lambda (.it.2686) (core#if .it.2686 .it.2686",
" ((core#lambda (.it.2687) (core#if .it.2687 .it.2687 ((core#lambda (.it.2688) (c",
"ore#if .it.2688 .it.2688 #f)) (eqv? .key.2684 (core#quote except))))) (eqv? .key",
".2684 (core#quote prefix))))) (eqv? .key.2684 (core#quote rename))))) (eqv? .key",
".2684 (core#quote only))) (.extract.2681 (cadr .spec.2683)) (core#if #t (.getlib",
".2680 .spec.2683) #undefined))) (car .spec.2683)))) (core#begin (core#set! .coll",
"ect.2682 (core#lambda (.spec.2689) ((core#lambda (.key.2690) (core#if ((core#lam",
"bda (.it.2691) (core#if .it.2691 .it.2691 #f)) (eqv? .key.2690 (core#quote only)",
")) ((core#lambda (.alist.2692) (map (core#lambda (.var.2693) (assq .var.2693 .al",
"ist.2692)) (cddr .spec.2689))) (.collect.2682 (cadr .spec.2689))) (core#if ((cor",
"e#lambda (.it.2694) (core#if .it.2694 .it.2694 #f)) (eqv? .key.2690 (core#quote ",
"rename))) ((core#lambda (.alist.2695 .renames.2696) (map (core#lambda (.s.2697) ",
"((core#lambda (.it.2698) (core#if .it.2698 .it.2698 ((core#lambda (.it.2699) (co",
"re#if .it.2699 .it.2699 #f)) .s.2697))) (assq (car .s.2697) .renames.2696))) .al",
"ist.2695)) (.collect.2682 (cadr .spec.2689)) (map (core#lambda (.x.2700) (cons (",
"car .x.2700) (cadr .x.2700))) (cddr .spec.2689))) (core#if ((core#lambda (.it.27",
"01) (core#if .it.2701 .it.2701 #f)) (eqv? .key.2690 (core#quote prefix))) ((core",
"#lambda (.alist.2702) (map (core#lambda (.s.2703) (cons (.prefix.2679 (.caddr.26",
"78 .spec.2689) (car .s.2703)) (cdr .s.2703))) .alist.2702)) (.collect.2682 (cadr",
" .spec.2689))) (core#if ((core#lambda (.it.2704) (core#if .it.2704 .it.2704 #f))",
" (eqv? .key.2690 (core#quote except))) ((core#lambda (.alist.2705) ((core#lambda",
" () (core#begin (core#define .loop.2706 (core#lambda (.alist.2707) (core#if (nul",
"l? .alist.2707) (core#quote ()) (core#if (memq (caar .alist.2707) (cddr .spec.26",
"89)) (.loop.2706 (cdr .alist.2707)) (cons (car .alist.2707) (.loop.2706 (cdr .al",
"ist.2707))))))) (.loop.2706 .alist.2705))))) (.collect.2682 (cadr .spec.2689))) ",
"(core#if #t (dictionary-map (core#lambda (.x.2708) (cons .x.2708 .x.2708)) (.lib",
"rary-exports.2614 (.getlib.2680 .spec.2689))) #undefined)))))) (car .spec.2689))",
")) ((core#lambda (.import.2709) (core#begin (core#set! .import.2709 (core#lambda",
" (.spec.2710) ((core#lambda (.lib.2711 .alist.2712) (for-each (core#lambda (.slo",
"t.2713) (.library-import.2615 .lib.2711 (cdr .slot.2713) (car .slot.2713))) .ali",
"st.2712)) (.extract.2681 .spec.2710) (.collect.2682 .spec.2710)))) (for-each .im",
"port.2709 (cdr .form.2676)))) #undefined)))) #undefined #undefined)) (core#lambd",
"a (.x.2714) (car (cdr (cdr .x.2714)))) (core#lambda (.prefix.2715 .symbol.2716) ",
"(string->symbol (string-append (symbol->string .prefix.2715) (symbol->string .sy",
"mbol.2716)))) (core#lambda (.name.2717) (core#if (.find-library.2611 .name.2717)",
" .name.2717 (error \"library not found\" .name.2717)))))) (.define-transformer.264",
"6 (core#quote export) (core#lambda (.form.2718 ._.2719) ((core#lambda (.collect.",
"2720 .export.2721) (core#begin (core#set! .collect.2720 (core#lambda (.spec.2722",
") (core#if (symbol? .spec.2722) (cons .spec.2722 .spec.2722) (core#if (core#if (",
"list? .spec.2722) (core#if (= (length .spec.2722) 3) (eq? (car .spec.2722) (core",
"#quote rename)) #f) #f) (cons (list-ref .spec.2722 1) (list-ref .spec.2722 2)) (",
"error \"malformed export\"))))) (core#begin (core#set! .export.2721 (core#lambda (",
".spec.2723) ((core#lambda (.slot.2724) (.library-export.2616 (car .slot.2724) (c",
"dr .slot.2724))) (.collect.2720 .spec.2723)))) (for-each .export.2721 (cdr .form",
".2718))))) #undefined #undefined))))))) (core#lambda (.name.2725 .macro.2726) (d",
"ictionary-set! (macro-objects) .name.2725 .macro.2726))) (core#begin ((core#lamb",
"da () (core#begin (.make-library.2612 (core#quote (picrin base))) (core#begin (s",
"et-car! (dictionary-ref .*libraries*.2610 (.mangle.2608 (core#quote (picrin base",
")))) default-environment) (core#begin ((core#lambda (.exports.2727) ((core#lambd",
"a (.export-keyword.2728) ((core#lambda () (core#begin (for-each .export-keyword.",
"2728 (core#quote (define lambda quote set! if begin define-macro let let* letrec",
" letrec* let-values let*-values define-values quasiquote unquote unquote-splicin",
"g and or cond case else => do when unless parameterize define-record-type))) (co",
"re#begin (.export-keyword.2728 (core#quote boolean?)) (dictionary-for-each .expo",
"rt-keyword.2728 (global-objects))))))) (core#lambda (.keyword.2729) (dictionary-",
"set! .exports.2727 .keyword.2729 .keyword.2729)))) (.library-exports.2614 (core#",
"quote (picrin base)))) (core#begin (core#set! eval ((core#lambda (.e.2730) (core",
"#lambda (.expr.2731 . .lib.2732) ((core#lambda (.lib.2733) (with-dynamic-environ",
"ment (list (cons .current-library.2609 .lib.2733)) (core#lambda () (.e.2730 .exp",
"r.2731 (.library-environment.2613 .lib.2733))))) (core#if (null? .lib.2732) (.cu",
"rrent-library.2609) (car .lib.2732))))) eval)) (.make-library.2612 (core#quote (",
"picrin user))))))))) (values .current-library.2609 .find-library.2611 .make-libr",
"ary.2612 .library-environment.2613 .library-exports.2614 .library-import.2615 .l",
"ibrary-export.2616))))))))))))))) (core#lambda (.current-library.2734 .find-libr",
"ary.2735 .make-library.2736 .library-environment.2737 .library-exports.2738 .lib",
"rary-import.2739 .library-export.2740) (core#begin (core#set! current-library .c",
"urrent-library.2734) (core#begin (core#set! find-library .find-library.2735) (co",
"re#begin (core#set! make-library .make-library.2736) (core#begin (core#set! libr",
"ary-environment .library-environment.2737) (core#begin (core#set! library-export",
"s .library-exports.2738) (core#begin (core#set! library-import .library-import.2",
"739) (core#set! library-export .library-export.2740))))))))))))))))",
};
#endif
void
pic_boot(pic_state *PIC_UNUSED(pic))
{
#if PIC_USE_EVAL
pic_load_native(pic, &boot_compile_rom[0][0]);
#endif
#if PIC_USE_LIBRARY
pic_load_native(pic, &boot_library_rom[0][0]);
#endif
}