Skip to content

Instantly share code, notes, and snippets.

@samth
Created June 18, 2019 15:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save samth/0a6301f6adee2f8b5dbdc8f7230932a3 to your computer and use it in GitHub Desktop.
Save samth/0a6301f6adee2f8b5dbdc8f7230932a3 to your computer and use it in GitHub Desktop.
;; linklet ---------------------
(linklet
(() (.syntax-literals) () (interp-match) (syntax-protect)
(t-resyntax t-subst check-loc) (pattern-failure)
(raise-syntax-error
(syntax-e 1/syntax-e)
free-identifier=?))
()
(lambda (user-stx_1)
(let-values ([(arg_2) user-stx_1])
(let-values ([(rslt_3)
((lambda (e_4)
(interp-match
'#(pair #f
#(pair #(bind #f #f)
#(pair #(bind #f #f)
#(pair #(bind #f #f)
#(pair #(bind #t #f) () #t #f) #t #t)
#t #t)
#t #t)
#f #t)
e_4
#f
free-identifier=?))
arg_2)])
(if rslt_3
(let-values ([(sc1_5) (unsafe-car rslt_3)]
[(sc2_6) (unsafe-list-ref rslt_3 1)]
[(sc3_7) (unsafe-list-ref rslt_3 2)]
[(sc4_8) (unsafe-list-tail rslt_3 3)])
(let-values ()
(syntax-protect
(let-values ([(loc_13)
(check-loc 'syntax/loc user-stx_1)])
(let-values ()
(t-subst loc_13 (unsafe-vector*-ref .syntax-literals 0)
'(recur 1 recur 2 recur 3 recur 5)
(list
'(2)
(t-resyntax
#f
(unsafe-vector*-ref .syntax-literals 1)
(list*
sc2_6
(1/syntax-e
(unsafe-vector*-ref .syntax-literals 2)))))
(list
'(recur 2 recur 3)
(list
'(2)
(t-resyntax
#f
(unsafe-vector*-ref .syntax-literals 3)
(list*
sc3_7
(1/syntax-e
(unsafe-vector*-ref
.syntax-literals
4)))))
(list
'(recur 2)
(list
'(1)
(t-resyntax
#f
(unsafe-vector*-ref .syntax-literals 5)
(list*
sc2_6
(1/syntax-e
(unsafe-vector*-ref
.syntax-literals
6)))))))
(list
'(recur 2 3)
(list
'(2)
(t-resyntax
#f
(unsafe-vector*-ref .syntax-literals 7)
(list*
sc3_7
(1/syntax-e
(unsafe-vector*-ref
.syntax-literals
8)))))
(t-resyntax
#f
(unsafe-vector*-ref .syntax-literals 9)
(list*
sc2_6
(1/syntax-e
(unsafe-vector*-ref
.syntax-literals
10)))))
(list
'(1 recur 2)
(t-resyntax
#f
(unsafe-vector*-ref .syntax-literals 11)
(list sc1_5))
(list
'(3)
(t-resyntax
#f
(unsafe-vector*-ref .syntax-literals 12)
(list*
sc4_8
(1/syntax-e
(unsafe-vector*-ref
.syntax-literals
13))))))))))))
(let-values ([(rslt_14) ((lambda (e_15) null) arg_2)])
(if rslt_14
(let-values ()
(let-values ()
(pattern-failure
user-stx_1
'(main make-stream stream-unfold stream-get))))
(raise-syntax-error #f "bad syntax" arg_2))))))))
;; schemified ---------------------
(lambda (instance-variable-reference .syntax-literals82
interp-match83 syntax-protect84 t-resyntax85 t-subst86
check-loc87 pattern-failure88 raise-syntax-error89
1/syntax-e90 free-identifier=?91)
(#%name
\x5B;...et/private/misc.rkt:36:15
(lambda (user-stx_1)
(let ([rslt_3 (let ([app_92 (variable-ref/no-check
interp-match83)])
(#%app app_92
'#(pair #f
#(pair #(bind #f #f)
#(pair #(bind #f #f)
#(pair #(bind #f #f)
#(pair #(bind #t #f) () #t #f) #t #t)
#t #t)
#t #t)
#f #t)
user-stx_1 #f
(variable-ref/no-check free-identifier=?91)))])
(if rslt_3
(let ([sc1_5 (unsafe-car rslt_3)])
(let ([sc2_6 (unsafe-list-ref rslt_3 1)])
(let ([sc3_7 (unsafe-list-ref rslt_3 2)])
(let ([sc4_8 (unsafe-list-tail rslt_3 3)])
(let ([app_151 (variable-ref/no-check
syntax-protect84)])
(#%app
app_151
(let ([loc_13 (#%app
(variable-ref/no-check check-loc87)
'syntax/loc
user-stx_1)])
(let ([app_145 (variable-ref/no-check
t-subst86)])
(let ([app_146 (unsafe-vector*-ref
.syntax-literals82
0)])
(let ([app_147 (list
'(2)
(let ([app_98 (variable-ref/no-check
t-resyntax85)])
(let ([app_99 (unsafe-vector*-ref
.syntax-literals82
1)])
(#%app
app_98
#f
app_99
(list*
sc2_6
(let ([app_95 (variable-ref/no-check
1/syntax-e90)])
(#%app
app_95
(unsafe-vector*-ref
.syntax-literals82
2))))))))])
(let ([app_148 (let ([app_117 (list
'(2)
(let ([app_105 (variable-ref/no-check
t-resyntax85)])
(let ([app_106 (unsafe-vector*-ref
.syntax-literals82
3)])
(#%app
app_105
#f
app_106
(list*
sc3_7
(let ([app_102 (variable-ref/no-check
1/syntax-e90)])
(#%app
app_102
(unsafe-vector*-ref
.syntax-literals82
4))))))))])
(list
'(recur 2 recur 3)
app_117
(list
'(recur 2)
(list
'(1)
(let ([app_112 (variable-ref/no-check
t-resyntax85)])
(let ([app_113 (unsafe-vector*-ref
.syntax-literals82
5)])
(#%app
app_112
#f
app_113
(list*
sc2_6
(let ([app_109 (variable-ref/no-check
1/syntax-e90)])
(#%app
app_109
(unsafe-vector*-ref
.syntax-literals82
6)))))))))))])
(let ([app_149 (let ([app_132 (list
'(2)
(let ([app_122 (variable-ref/no-check
t-resyntax85)])
(let ([app_123 (unsafe-vector*-ref
.syntax-literals82
7)])
(#%app
app_122
#f
app_123
(list*
sc3_7
(let ([app_119 (variable-ref/no-check
1/syntax-e90)])
(#%app
app_119
(unsafe-vector*-ref
.syntax-literals82
8))))))))])
(list
'(recur 2 3)
app_132
(let ([app_129 (variable-ref/no-check
t-resyntax85)])
(let ([app_130 (unsafe-vector*-ref
.syntax-literals82
9)])
(#%app
app_129
#f
app_130
(list*
sc2_6
(let ([app_126 (variable-ref/no-check
1/syntax-e90)])
(#%app
app_126
(unsafe-vector*-ref
.syntax-literals82
10)))))))))])
(#%app app_145 loc_13 app_146
'(recur 1 recur 2 recur 3 recur 5)
app_147 app_148 app_149
(let ([app_143 (let ([app_134 (variable-ref/no-check
t-resyntax85)])
(#%app
app_134
#f
(unsafe-vector*-ref
.syntax-literals82
11)
(list sc1_5)))])
(list
'(1 recur 2)
app_143
(list
'(3)
(let ([app_139 (variable-ref/no-check
t-resyntax85)])
(let ([app_140 (unsafe-vector*-ref
.syntax-literals82
12)])
(#%app
app_139
#f
app_140
(list*
sc4_8
(let ([app_136 (variable-ref/no-check
1/syntax-e90)])
(#%app
app_136
(unsafe-vector*-ref
.syntax-literals82
13)))))))))))))))))))))))
(let ([rslt_14 null])
(if rslt_14
(#%app
(variable-ref/no-check pattern-failure88)
user-stx_1
'(main make-stream stream-unfold stream-get))
(#%app
(variable-ref/no-check raise-syntax-error89)
#f
"bad syntax"
user-stx_1))))))))
;; cp0 ---------------------
(lambda (instance-variable-reference .syntax-literals82
interp-match83 syntax-protect84 t-resyntax85 t-subst86
check-loc87 pattern-failure88 raise-syntax-error89
1/syntax-e90 free-identifier=?91)
(lambda (user-stx_1)
(let ([rslt_3 (let ([app_92 (#3%$object-ref
'scheme-object
interp-match83
9)])
((if (#2%procedure? app_92)
app_92
((#3%$top-level-value 'slow-extract-procedure)
app_92
4))
'#(pair #f
#(pair #(bind #f #f)
#(pair #(bind #f #f)
#(pair #(bind #f #f)
#(pair #(bind #t #f) () #t #f) #t #t)
#t #t)
#t #t)
#f #t)
user-stx_1
#f
(#3%$object-ref
'scheme-object
free-identifier=?91
9)))])
(if rslt_3
(let ([sc1_5 (#3%car rslt_3)])
(let ([sc2_6 (#3%list-ref rslt_3 1)])
(let ([sc3_7 (#3%list-ref rslt_3 2)])
(let ([sc4_8 (#3%list-tail rslt_3 3)])
(let ([app_151 (#3%$object-ref
'scheme-object
syntax-protect84
9)])
((if (#2%procedure? app_151)
app_151
((#3%$top-level-value 'slow-extract-procedure)
app_151
1))
(let ([loc_13 ((let ([tmp (#3%$object-ref
'scheme-object
check-loc87
9)])
(if (#2%procedure? tmp)
tmp
((#3%$top-level-value
'slow-extract-procedure)
tmp
2)))
'syntax/loc
user-stx_1)])
(let ([app_145 (#3%$object-ref
'scheme-object
t-subst86
9)])
(let ([app_146 (#3%vector-ref
.syntax-literals82
0)])
(let ([app_147 (#2%list
'(2)
(let ([app_98 (#3%$object-ref
'scheme-object
t-resyntax85
9)])
(let ([app_99 (#3%vector-ref
.syntax-literals82
1)])
((if (#2%procedure?
app_98)
app_98
((#3%$top-level-value
'slow-extract-procedure)
app_98
3))
#f
app_99
(#2%list*
sc2_6
(let ([app_95 (#3%$object-ref
'scheme-object
1/syntax-e90
9)])
((if (#2%procedure?
app_95)
app_95
((#3%$top-level-value
'slow-extract-procedure)
app_95
1))
(#3%vector-ref
.syntax-literals82
2))))))))])
(let ([app_148 (let ([app_117 (#2%list
'(2)
(let ([app_105 (#3%$object-ref
'scheme-object
t-resyntax85
9)])
(let ([app_106 (#3%vector-ref
.syntax-literals82
3)])
((if (#2%procedure?
app_105)
app_105
((#3%$top-level-value
'slow-extract-procedure)
app_105
3))
#f
app_106
(#2%list*
sc3_7
(let ([app_102 (#3%$object-ref
'scheme-object
1/syntax-e90
9)])
((if (#2%procedure?
app_102)
app_102
((#3%$top-level-value
'slow-extract-procedure)
app_102
1))
(#3%vector-ref
.syntax-literals82
4))))))))])
(#2%list
'(recur 2 recur 3)
app_117
(#2%list
'(recur 2)
(#2%list
'(1)
(let ([app_112 (#3%$object-ref
'scheme-object
t-resyntax85
9)])
(let ([app_113 (#3%vector-ref
.syntax-literals82
5)])
((if (#2%procedure?
app_112)
app_112
((#3%$top-level-value
'slow-extract-procedure)
app_112
3))
#f
app_113
(#2%list*
sc2_6
(let ([app_109 (#3%$object-ref
'scheme-object
1/syntax-e90
9)])
((if (#2%procedure?
app_109)
app_109
((#3%$top-level-value
'slow-extract-procedure)
app_109
1))
(#3%vector-ref
.syntax-literals82
6)))))))))))])
(let ([app_149 (let ([app_132 (#2%list
'(2)
(let ([app_122 (#3%$object-ref
'scheme-object
t-resyntax85
9)])
(let ([app_123 (#3%vector-ref
.syntax-literals82
7)])
((if (#2%procedure?
app_122)
app_122
((#3%$top-level-value
'slow-extract-procedure)
app_122
3))
#f
app_123
(#2%list*
sc3_7
(let ([app_119 (#3%$object-ref
'scheme-object
1/syntax-e90
9)])
((if (#2%procedure?
app_119)
app_119
((#3%$top-level-value
'slow-extract-procedure)
app_119
1))
(#3%vector-ref
.syntax-literals82
8))))))))])
(#2%list
'(recur 2 3)
app_132
(let ([app_129 (#3%$object-ref
'scheme-object
t-resyntax85
9)])
(let ([app_130 (#3%vector-ref
.syntax-literals82
9)])
((if (#2%procedure?
app_129)
app_129
((#3%$top-level-value
'slow-extract-procedure)
app_129
3))
#f
app_130
(#2%list*
sc2_6
(let ([app_126 (#3%$object-ref
'scheme-object
1/syntax-e90
9)])
((if (#2%procedure?
app_126)
app_126
((#3%$top-level-value
'slow-extract-procedure)
app_126
1))
(#3%vector-ref
.syntax-literals82
10)))))))))])
((if (#2%procedure? app_145)
app_145
((#3%$top-level-value
'slow-extract-procedure)
app_145
7)) loc_13 app_146
'(recur 1 recur 2 recur 3 recur 5)
app_147 app_148 app_149
(let ([app_143 (let ([app_134 (#3%$object-ref
'scheme-object
t-resyntax85
9)])
((if (#2%procedure?
app_134)
app_134
((#3%$top-level-value
'slow-extract-procedure)
app_134
3))
#f
(#3%vector-ref
.syntax-literals82
11)
(#2%list sc1_5)))])
(#2%list
'(1 recur 2)
app_143
(#2%list
'(3)
(let ([app_139 (#3%$object-ref
'scheme-object
t-resyntax85
9)])
(let ([app_140 (#3%vector-ref
.syntax-literals82
12)])
((if (#2%procedure? app_139)
app_139
((#3%$top-level-value
'slow-extract-procedure)
app_139
3))
#f
app_140
(#2%list*
sc4_8
(let ([app_136 (#3%$object-ref
'scheme-object
1/syntax-e90
9)])
((if (#2%procedure?
app_136)
app_136
((#3%$top-level-value
'slow-extract-procedure)
app_136
1))
(#3%vector-ref
.syntax-literals82
13)))))))))))))))))))))))
((let ([tmp (#3%$object-ref
'scheme-object
pattern-failure88
9)])
(if (#2%procedure? tmp)
tmp
((#3%$top-level-value 'slow-extract-procedure) tmp 2)))
user-stx_1
'(main make-stream stream-unfold stream-get))))))
;; compiled ---------------------
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment