mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-24 04:25:06 +02:00
686 lines
97 KiB
Scheme
686 lines
97 KiB
Scheme
; may need to look at closure output, but consider __lambda_229
|
|
; seems like it is unnecessary. could it have been optimized out?
|
|
|
|
CHICKEN
|
|
(c)2008-2011 The Chicken Team
|
|
(c)2000-2007 Felix L. Winkelmann
|
|
Version 4.7.0
|
|
linux-unix-gnu-x86 [ manyargs dload ptables ]
|
|
compiled 2011-10-17 on roseapple (Linux)
|
|
|
|
; loading tmp2.scm ...
|
|
((define c-compile-and-emit
|
|
(lambda (k$178 input-program$73 lib-deps$72 src-file$71)
|
|
((lambda (globals$80
|
|
imported-vars$79
|
|
imports$78
|
|
lib-exports$77
|
|
lib-name$76
|
|
module-globals$75
|
|
program?$74)
|
|
((lambda (r$179) (call/cc k$178 r$179))
|
|
(lambda (k$180 return$81)
|
|
((lambda (globals$88
|
|
module-globals$87
|
|
program?$86
|
|
imports$85
|
|
imported-vars$84
|
|
lib-name$83
|
|
lib-exports$82)
|
|
((lambda (r$329)
|
|
((lambda (r$181)
|
|
((lambda (r$328)
|
|
((lambda (r$182)
|
|
((lambda (r$183)
|
|
((lambda (r$327)
|
|
((lambda (r$184)
|
|
((lambda (r$326)
|
|
((lambda (r$185)
|
|
((lambda (r$325)
|
|
((lambda (r$186)
|
|
((lambda (r$324)
|
|
((lambda (r$187)
|
|
(emit (lambda (r$188)
|
|
(trace:info
|
|
(lambda (r$189)
|
|
(trace:info
|
|
(lambda (r$190)
|
|
((lambda (k$290)
|
|
((lambda (r$323)
|
|
(library?
|
|
(lambda (r$291)
|
|
(if r$291
|
|
((lambda ()
|
|
((lambda (r$316)
|
|
(lib:includes
|
|
(lambda (r$292)
|
|
((lambda (includes$97)
|
|
((lambda (r$293)
|
|
((lambda (r$315)
|
|
(lib:name
|
|
(lambda (r$314)
|
|
((lambda (r$294)
|
|
(lib:name->symbol
|
|
(lambda (r$311)
|
|
((lambda (r$313)
|
|
(lib:exports
|
|
(lambda (r$312)
|
|
((lambda (r$310)
|
|
((lambda (r$295)
|
|
((lambda (r$309)
|
|
(lib:imports
|
|
(lambda (r$308)
|
|
((lambda (r$296)
|
|
((lambda (r$307)
|
|
(lib:body
|
|
(lambda (r$306)
|
|
((lambda (r$297)
|
|
((lambda (r$305)
|
|
(not (lambda (r$298)
|
|
(if r$298
|
|
((lambda (r$299)
|
|
(for-each k$290 r$299 includes$97))
|
|
(lambda (k$300 include$98)
|
|
(lib:import->path
|
|
(lambda (r$304)
|
|
((lambda (r$303)
|
|
(read-file
|
|
(lambda (r$302)
|
|
(append
|
|
(lambda (r$301)
|
|
(k$300 (set! input-program$73 r$301)))
|
|
r$302
|
|
input-program$73))
|
|
r$303))
|
|
(string-append r$304 include$98)))
|
|
lib-name$83)))
|
|
(k$290 #f)))
|
|
r$305))
|
|
(null? includes$97)))
|
|
(set! input-program$73 r$306)))
|
|
r$307))
|
|
(car input-program$73)))
|
|
(set! imports$85 r$308)))
|
|
r$309))
|
|
(car input-program$73)))
|
|
(set! lib-exports$82 r$310)))
|
|
(cons r$311 r$312)))
|
|
r$313))
|
|
(car input-program$73)))
|
|
lib-name$83))
|
|
(set! lib-name$83 r$314)))
|
|
r$315))
|
|
(car input-program$73)))
|
|
(set! program?$86 #f)))
|
|
r$292))
|
|
r$316))
|
|
(car input-program$73))))
|
|
((lambda (r$321)
|
|
((lambda (r$322)
|
|
(tagged-list?
|
|
(lambda (r$317)
|
|
(if r$317
|
|
((lambda ()
|
|
((lambda (r$320)
|
|
((lambda (r$318)
|
|
((lambda (r$319)
|
|
(k$290 (set! input-program$73 r$319)))
|
|
(cdr input-program$73)))
|
|
(set! imports$85 r$320)))
|
|
(cdar input-program$73))))
|
|
(k$290 #f)))
|
|
r$321
|
|
r$322))
|
|
(car input-program$73)))
|
|
'import)))
|
|
r$323))
|
|
(car input-program$73)))
|
|
(lambda (r$191)
|
|
(trace:info
|
|
(lambda (r$192)
|
|
(trace:info
|
|
(lambda (r$193)
|
|
(lib:resolve-imports
|
|
(lambda (r$289)
|
|
((lambda (r$194)
|
|
(trace:info
|
|
(lambda (r$195)
|
|
(trace:info
|
|
(lambda (r$196)
|
|
(lib:resolve-meta
|
|
(lambda (r$285)
|
|
((lambda (meta$96)
|
|
(append
|
|
(lambda (r$288)
|
|
((lambda (r$286)
|
|
(trace:info
|
|
(lambda (r$287)
|
|
(trace:info
|
|
(lambda (r$197)
|
|
((lambda (r$280)
|
|
((lambda (r$281)
|
|
(filter
|
|
(lambda (r$278)
|
|
((lambda (macros$95)
|
|
(append
|
|
(lambda (r$279)
|
|
((lambda (r$198)
|
|
((lambda (r$276)
|
|
((lambda (r$277)
|
|
(create-environment
|
|
(lambda (r$275)
|
|
(macro:load-env!
|
|
(lambda (r$199)
|
|
((lambda (k$274)
|
|
(if program?$86
|
|
(k$274 expand-lambda-body)
|
|
(k$274 expand)))
|
|
(lambda (r$272)
|
|
(macro:get-env
|
|
(lambda (r$273)
|
|
(r$272 (lambda (r$271)
|
|
((lambda (r$200)
|
|
(trace:info
|
|
(lambda (r$201)
|
|
(trace:info
|
|
(lambda (r$202)
|
|
(isolate-globals
|
|
(lambda (r$270)
|
|
((lambda (r$203)
|
|
((lambda (k$265)
|
|
((lambda (r$269)
|
|
(has-global?
|
|
(lambda (r$268)
|
|
(not (lambda (r$266)
|
|
(if r$266
|
|
(filter-unused-variables
|
|
(lambda (r$267)
|
|
(k$265 (set! input-program$73 r$267)))
|
|
input-program$73
|
|
lib-exports$82)
|
|
(k$265 #f)))
|
|
r$268))
|
|
input-program$73
|
|
r$269))
|
|
'eval))
|
|
(lambda (r$204)
|
|
(trace:info
|
|
(lambda (r$205)
|
|
(trace:info
|
|
(lambda (r$206)
|
|
(global-vars
|
|
(lambda (r$264)
|
|
((lambda (r$207)
|
|
(append
|
|
(lambda (r$263)
|
|
((lambda (r$208)
|
|
((lambda (r$261)
|
|
(map (lambda (r$260)
|
|
((lambda (r$209)
|
|
(trace:info
|
|
(lambda (r$210)
|
|
(trace:info
|
|
(lambda (r$211)
|
|
((lambda (r$258)
|
|
(map (lambda (r$245)
|
|
((lambda (cps$92)
|
|
((lambda (k$246)
|
|
((lambda (k$256)
|
|
(if library?
|
|
((lambda (r$257)
|
|
(k$256 (equal? lib-name$83 r$257)))
|
|
'(scheme base))
|
|
(k$256 #f)))
|
|
(lambda (r$247)
|
|
(if r$247
|
|
((lambda ()
|
|
((lambda (r$255)
|
|
(append
|
|
(lambda (r$254)
|
|
((lambda (r$248)
|
|
((lambda (r$253)
|
|
(append
|
|
(lambda (r$252)
|
|
((lambda (r$249)
|
|
((lambda (r$251)
|
|
((lambda (r$250)
|
|
(k$246 (set! input-program$73 r$250)))
|
|
(cons r$251 cps$92)))
|
|
'(define call/cc
|
|
(lambda (k f)
|
|
(f k (lambda (_ result) (k result)))))))
|
|
(set! module-globals$87 r$252)))
|
|
r$253
|
|
module-globals$87))
|
|
'(call/cc)))
|
|
(set! globals$88 r$254)))
|
|
r$255
|
|
globals$88))
|
|
'(call/cc))))
|
|
((lambda ()
|
|
(k$246 (set! input-program$73 cps$92))))))))
|
|
(lambda (r$212)
|
|
(trace:info
|
|
(lambda (r$213)
|
|
(trace:info
|
|
(lambda (r$214)
|
|
((lambda (r$241)
|
|
(map (lambda (r$240)
|
|
((lambda (r$215)
|
|
(trace:info
|
|
(lambda (r$216)
|
|
(trace:info
|
|
(lambda (r$217)
|
|
((lambda (r$229)
|
|
(map (lambda (r$228)
|
|
((lambda (r$218)
|
|
(trace:info
|
|
(lambda (r$219)
|
|
(trace:info
|
|
(lambda (r$220)
|
|
((lambda (k$225)
|
|
(not (lambda (r$226)
|
|
(if r$226
|
|
((lambda ()
|
|
(trace:error
|
|
(lambda (r$227) (k$225 (exit 0)))
|
|
"DEBUG, existing program")))
|
|
(k$225 #f)))
|
|
*do-code-gen*))
|
|
(lambda (r$221)
|
|
(trace:info
|
|
(lambda (r$222)
|
|
(mta:code-gen
|
|
(lambda (r$223)
|
|
((lambda (r$224) (return$81 k$180 r$224)) '()))
|
|
input-program$73
|
|
program?$86
|
|
lib-name$83
|
|
lib-exports$82
|
|
imported-vars$84
|
|
module-globals$87
|
|
lib-deps$72
|
|
src-file$71))
|
|
"---------------- C code:"))))
|
|
input-program$73))
|
|
"---------------- after closure-convert:"))
|
|
(set! input-program$73 r$228)))
|
|
r$229
|
|
input-program$73))
|
|
(lambda (k$230 expr$89)
|
|
(define?
|
|
(lambda (r$231)
|
|
(if r$231
|
|
((lambda ()
|
|
((lambda (r$232)
|
|
(define->var
|
|
(lambda (r$234)
|
|
(define->exp
|
|
(lambda (r$237)
|
|
(closure-convert
|
|
(lambda (r$236)
|
|
((lambda (r$235)
|
|
((lambda (r$233) (k$230 (cons r$232 r$233)))
|
|
(cons r$234 r$235)))
|
|
(caddr r$236)))
|
|
r$237
|
|
globals$88))
|
|
expr$89))
|
|
expr$89))
|
|
'define)))
|
|
(define-c?
|
|
(lambda (r$238)
|
|
(if r$238
|
|
((lambda () (k$230 expr$89)))
|
|
((lambda ()
|
|
(closure-convert
|
|
(lambda (r$239) (k$230 (caddr r$239)))
|
|
expr$89
|
|
globals$88)))))
|
|
expr$89)))
|
|
expr$89))))
|
|
input-program$73))
|
|
"---------------- after wrap-mutables:"))
|
|
(set! input-program$73 r$240)))
|
|
r$241
|
|
input-program$73))
|
|
(lambda (k$242 expr$90)
|
|
(clear-mutables
|
|
(lambda (r$243)
|
|
(analyze-mutable-variables
|
|
(lambda (r$244)
|
|
(wrap-mutables k$242 expr$90 globals$88))
|
|
expr$90))))))
|
|
input-program$73))
|
|
"---------------- after CPS:"))))
|
|
r$245))
|
|
r$258
|
|
input-program$73))
|
|
(lambda (k$259 expr$91)
|
|
(cps-convert k$259 expr$91))))
|
|
input-program$73))
|
|
"---------------- after alpha conversion:"))
|
|
(set! input-program$73 r$260)))
|
|
r$261
|
|
input-program$73))
|
|
(lambda (k$262 expr$93)
|
|
(alpha-convert
|
|
k$262
|
|
expr$93
|
|
globals$88
|
|
return$81))))
|
|
(set! globals$88 r$263)))
|
|
imported-vars$84
|
|
module-globals$87))
|
|
(set! module-globals$87 r$264)))
|
|
input-program$73))
|
|
input-program$73))
|
|
"---------------- after processing globals"))))
|
|
(set! input-program$73 r$270)))
|
|
input-program$73
|
|
program?$86
|
|
lib-name$83))
|
|
input-program$73))
|
|
"---------------- after macro expansion:"))
|
|
(set! input-program$73 r$271)))
|
|
input-program$73
|
|
r$273))))))
|
|
*defined-macros*
|
|
r$275))
|
|
r$276
|
|
r$277))
|
|
'()))
|
|
'()))
|
|
(set! *defined-macros* r$279)))
|
|
macros$95
|
|
*defined-macros*))
|
|
r$278))
|
|
r$280
|
|
r$281))
|
|
(Cyc-global-vars)))
|
|
(lambda (k$282 v$94)
|
|
((lambda (r$284)
|
|
((lambda (r$283) (k$282 (macro? r$283)))
|
|
(Cyc-get-cvar r$284)))
|
|
(cdr v$94)))))
|
|
meta$96))
|
|
"resolved macros:"))
|
|
(set! *defined-macros* r$288)))
|
|
meta$96
|
|
*defined-macros*))
|
|
r$285))
|
|
imports$85))
|
|
imported-vars$84))
|
|
"resolved imports:"))
|
|
(set! imported-vars$84 r$289)))
|
|
imports$85))
|
|
imports$85))
|
|
"imports:"))))
|
|
input-program$73))
|
|
"---------------- input program:"))
|
|
*c-file-header-comment*))
|
|
(set! lib-exports$82 r$324)))
|
|
'()))
|
|
(set! lib-name$83 r$325)))
|
|
'()))
|
|
(set! imported-vars$84 r$326)))
|
|
'()))
|
|
(set! imports$85 r$327)))
|
|
'()))
|
|
(set! program?$86 #t)))
|
|
(set! module-globals$87 r$328)))
|
|
'()))
|
|
(set! globals$88 r$329)))
|
|
'()))
|
|
#f
|
|
#f
|
|
#f
|
|
#f
|
|
#f
|
|
#f
|
|
#f))))
|
|
#f
|
|
#f
|
|
#f
|
|
#f
|
|
#f
|
|
#f
|
|
#f)))
|
|
(define read-file
|
|
(lambda (k$173 filename$69)
|
|
((lambda (r$174) (call-with-input-file k$173 filename$69 r$174))
|
|
(lambda (k$175 port$70) (read-all k$175 port$70)))))
|
|
(define run-compiler
|
|
(lambda (k$130 args$53 cc?$52)
|
|
((lambda (r$131)
|
|
((lambda (in-file$54)
|
|
(read-file
|
|
(lambda (r$132)
|
|
((lambda (in-prog$55)
|
|
((lambda (r$170)
|
|
(library?
|
|
(lambda (r$169)
|
|
(not (lambda (r$133)
|
|
((lambda (program?$56)
|
|
((lambda (k$163)
|
|
((lambda (k$166)
|
|
(if program?$56
|
|
((lambda (r$167)
|
|
((lambda (r$168) (tagged-list? k$166 r$167 r$168))
|
|
(car in-prog$55)))
|
|
'import)
|
|
(k$166 #f)))
|
|
(lambda (r$164)
|
|
(if r$164
|
|
((lambda (r$165)
|
|
(lib:get-all-import-deps k$163 r$165))
|
|
(cdar in-prog$55))
|
|
(k$163 '())))))
|
|
(lambda (r$134)
|
|
((lambda (lib-deps$57)
|
|
(basename
|
|
(lambda (r$135)
|
|
((lambda (exec-file$58)
|
|
((lambda (r$136)
|
|
((lambda (src-file$59)
|
|
((lambda (r$137)
|
|
((lambda (meta-file$60)
|
|
((lambda (r$138)
|
|
((lambda (create-c-file$62)
|
|
(create-c-file$62
|
|
(lambda (r$139)
|
|
((lambda (result$63)
|
|
((lambda ()
|
|
(if program?$56
|
|
((lambda ()
|
|
((lambda (objs-str$67 comp-prog-cmd$66 comp-objs-cmd$65)
|
|
((lambda (r$150)
|
|
(map (lambda (r$149)
|
|
((lambda (r$148)
|
|
((lambda (r$140)
|
|
((lambda (r$147)
|
|
((lambda (r$141)
|
|
((lambda (r$146)
|
|
((lambda (r$142)
|
|
(if cc?$52
|
|
((lambda ()
|
|
((lambda (r$144)
|
|
((lambda (r$143)
|
|
(if r$143
|
|
(k$130 (system comp-objs-cmd$65))
|
|
(k$130 #f)))
|
|
(equal? 0 r$144)))
|
|
(system comp-prog-cmd$66))))
|
|
((lambda ()
|
|
(write (lambda (r$145) (write k$130 comp-objs-cmd$65))
|
|
comp-prog-cmd$66)))))
|
|
(set! comp-objs-cmd$65 r$146)))
|
|
(string-append
|
|
"gcc "
|
|
exec-file$58
|
|
".o "
|
|
objs-str$67
|
|
" -pthread -lcyclone -lck -lm -g -o "
|
|
exec-file$58)))
|
|
(set! comp-prog-cmd$66 r$147)))
|
|
(string-append
|
|
"gcc "
|
|
src-file$59
|
|
" -g -c -o "
|
|
exec-file$58
|
|
".o")))
|
|
(set! objs-str$67 r$148)))
|
|
(apply string-append r$149)))
|
|
r$150
|
|
lib-deps$57))
|
|
(lambda (k$151 i$68)
|
|
(lib:import->filename
|
|
(lambda (r$152)
|
|
(k$151 (string-append " " r$152 " ")))
|
|
i$68
|
|
".o"))))
|
|
#f
|
|
#f
|
|
#f)))
|
|
((lambda ()
|
|
((lambda (r$155)
|
|
(with-output-to-file
|
|
(lambda (r$153)
|
|
((lambda (r$154)
|
|
((lambda (comp-lib-cmd$64)
|
|
(if cc?$52
|
|
((lambda () (k$130 (system comp-lib-cmd$64))))
|
|
((lambda () (write k$130 comp-lib-cmd$64)))))
|
|
r$154))
|
|
(string-append
|
|
"gcc "
|
|
src-file$59
|
|
" -g -c -o "
|
|
exec-file$58
|
|
".o")))
|
|
meta-file$60
|
|
r$155))
|
|
(lambda (k$156)
|
|
(display
|
|
(lambda (r$157)
|
|
(newline
|
|
(lambda (r$158)
|
|
(macro:get-defined-macros
|
|
(lambda (r$159) (write k$156 r$159))))))
|
|
";; This file was automatically generated by the Cyclone Scheme compiler")))))))))
|
|
r$139))
|
|
in-prog$55))
|
|
r$138))
|
|
(lambda (k$160 program$61)
|
|
((lambda (r$161)
|
|
(with-output-to-file k$160 src-file$59 r$161))
|
|
(lambda (k$162)
|
|
(c-compile-and-emit
|
|
k$162
|
|
program$61
|
|
lib-deps$57
|
|
in-file$54))))))
|
|
r$137))
|
|
(string-append exec-file$58 ".meta")))
|
|
r$136))
|
|
(string-append exec-file$58 ".c")))
|
|
r$135))
|
|
in-file$54))
|
|
r$134))))
|
|
r$133))
|
|
r$169))
|
|
r$170))
|
|
(car in-prog$55)))
|
|
r$132))
|
|
in-file$54))
|
|
r$131))
|
|
(car args$53))))
|
|
((lambda ()
|
|
((lambda (r$99)
|
|
((lambda (r$100)
|
|
((lambda (r$101)
|
|
((lambda (args$47)
|
|
((lambda (r$121)
|
|
(filter
|
|
(lambda (r$102)
|
|
((lambda (non-opts$49)
|
|
((lambda (compile?$50)
|
|
((lambda ()
|
|
((lambda (k$119)
|
|
((lambda (r$120)
|
|
(if r$120
|
|
(k$119 (set! *trace-level* 4))
|
|
(k$119 #f)))
|
|
(member "-t" args$47)))
|
|
(lambda (r$103)
|
|
((lambda (k$117)
|
|
((lambda (r$118)
|
|
(if r$118
|
|
(k$117 (set! compile?$50 #f))
|
|
(k$117 #f)))
|
|
(member "-d" args$47)))
|
|
(lambda (r$104)
|
|
((lambda (r$116)
|
|
((lambda (r$105)
|
|
(if r$105
|
|
((lambda ()
|
|
(display
|
|
(lambda (r$106) (newline %halt))
|
|
"cyclone: no input file")))
|
|
((lambda (r$114)
|
|
((lambda (tmp$51)
|
|
((lambda (k$115)
|
|
(if tmp$51
|
|
(k$115 tmp$51)
|
|
(k$115 (member "--help" args$47))))
|
|
(lambda (r$107)
|
|
(if r$107
|
|
((lambda ()
|
|
(display
|
|
(lambda (r$108) (newline %halt))
|
|
"\n -t Show intermediate trace output in generated C files\n -d Only generate intermediate C files, do not compile them\n -h, --help Display usage information\n -v Display version information\n --autogen Cyclone developer use only, create autogen.out file\n")))
|
|
((lambda (r$109)
|
|
(if r$109
|
|
((lambda () (display %halt *version-banner*)))
|
|
((lambda (r$110)
|
|
(if r$110
|
|
((lambda ()
|
|
(autogen
|
|
(lambda (r$111) (newline %halt))
|
|
"autogen.out")))
|
|
((lambda (r$112)
|
|
(if r$112
|
|
((lambda () (display %halt *version-banner*)))
|
|
((lambda (r$113)
|
|
(if r$113
|
|
((lambda () (autogen %halt "autogen.out")))
|
|
((lambda ()
|
|
(run-compiler %halt non-opts$49 compile?$50)))))
|
|
(member "--autogen" args$47))))
|
|
(member "-v" args$47))))
|
|
(member "--autogen" args$47))))
|
|
(member "-v" args$47))))))
|
|
r$114))
|
|
(member "-h" args$47))))
|
|
(< r$116 1)))
|
|
(length args$47)))))))))
|
|
#t))
|
|
r$102))
|
|
r$121
|
|
args$47))
|
|
(lambda (k$122 arg$48)
|
|
((lambda (k$124)
|
|
((lambda (r$127)
|
|
((lambda (r$125)
|
|
(if r$125
|
|
((lambda (r$126) (k$124 (equal? #\- r$126)))
|
|
(string-ref arg$48 0))
|
|
(k$124 #f)))
|
|
(> r$127 1)))
|
|
(string-length arg$48)))
|
|
(lambda (r$123) (not k$122 r$123))))))
|
|
r$101))
|
|
(command-line-arguments)))
|
|
#f))
|
|
0))))
|
|
#;1>
|