Mark a few more simple expressions as pure in the expander.

Related to #3204.
This commit is contained in:
Sam Tobin-Hochstadt 2020-05-21 22:53:11 -04:00 committed by Sam Tobin-Hochstadt
parent 617f9e9bd6
commit 8b629a329b
3 changed files with 440 additions and 142 deletions

View File

@ -58,6 +58,14 @@
(and (for/and ([e (in-list (m 'e))]) (and (for/and ([e (in-list (m 'e))])
(not (effects? e #f locals))) (not (effects? e #f locals)))
(loop (m 'e0) locals))] (loop (m 'e0) locals))]
[(make-parameter)
(define-correlated-match m e #:try '(mp v g (quot nm)))
(and (m)
(not (any-side-effects? (m 'v) 1))
(eq? 'quote (m 'quot))
(symbol? (m 'nm))
(equal? #f (m 'g))
1)]
[(make-struct-type) [(make-struct-type)
(and (ok-make-struct-type? e ready-variable? defns) (and (ok-make-struct-type? e ready-variable? defns)
5)] 5)]

View File

@ -9,6 +9,7 @@
(hash-set! seen-defns 'make-thread-cell (known-struct-op 'constructor 1)) (hash-set! seen-defns 'make-thread-cell (known-struct-op 'constructor 1))
(hash-set! seen-defns 'make-continuation-prompt-tag (known-struct-op 'constructor 1)) (hash-set! seen-defns 'make-continuation-prompt-tag (known-struct-op 'constructor 1))
(hash-set! seen-defns 'make-weak-hash (known-struct-op 'constructor 0)) (hash-set! seen-defns 'make-weak-hash (known-struct-op 'constructor 0))
(hash-set! seen-defns 'make-hash (known-struct-op 'constructor 0))
(hash-set! seen-defns 'gensym (known-struct-op 'constructor 0)) (hash-set! seen-defns 'gensym (known-struct-op 'constructor 0))
(hash-set! seen-defns 'string (known-struct-op 'constructor 2)) (hash-set! seen-defns 'string (known-struct-op 'constructor 2))
(hash-set! seen-defns 'cons (known-struct-op 'constructor 2)) (hash-set! seen-defns 'cons (known-struct-op 'constructor 2))
@ -27,6 +28,7 @@
(hash-set! seen-defns 'object-name (known-function 1 #t)) ; assuming no `prop:object-name` (hash-set! seen-defns 'object-name (known-function 1 #t)) ; assuming no `prop:object-name`
(hash-set! seen-defns 'procedure-rename (known-function-of-satisfying '(procedure symbol))) (hash-set! seen-defns 'procedure-rename (known-function-of-satisfying '(procedure symbol)))
(hash-set! seen-defns 'prop:custom-write (known-property-of-function 3)) (hash-set! seen-defns 'prop:custom-write (known-property-of-function 3))
(hash-set! seen-defns 'prop:exn:srclocs (known-property-of-function 1))
(hash-set! seen-defns 'prop:method-arity-error (known-property)) (hash-set! seen-defns 'prop:method-arity-error (known-property))
(hash-set! seen-defns 'prop:incomplete-arity (known-property)) (hash-set! seen-defns 'prop:incomplete-arity (known-property))
(hash-set! seen-defns 'prop:impersonator-of (known-property-of-function 1)) (hash-set! seen-defns 'prop:impersonator-of (known-property-of-function 1))

View File

@ -2425,7 +2425,6 @@ static const char *startup_source =
" loop_0)" " loop_0)"
" list_0" " list_0"
" null)))))" " null)))))"
"(define-values(no-empty-edge-table)(make-hash))"
" (define-values (binary-or-text-desc) \"(or/c 'binary 'text)\")" " (define-values (binary-or-text-desc) \"(or/c 'binary 'text)\")"
"(define-values" "(define-values"
"(open-input-file.1)" "(open-input-file.1)"
@ -34709,15 +34708,16 @@ static const char *startup_source =
"(begin . 5)" "(begin . 5)"
"(begin0 . 6)" "(begin0 . 6)"
"(case-lambda . 1)" "(case-lambda . 1)"
"(gensym . 11)" "(gensym . 12)"
"(if . 12)" "(if . 13)"
"(lambda . 1)" "(lambda . 1)"
"(let-values . 2)" "(let-values . 2)"
"(letrec-values . 2)" "(letrec-values . 2)"
"(make-struct-field-accessor . 8)" "(make-parameter . 7)"
"(make-struct-field-mutator . 9)" "(make-struct-field-accessor . 9)"
"(make-struct-type . 7)" "(make-struct-field-mutator . 10)"
"(make-struct-type-property . 10)" "(make-struct-type . 8)"
"(make-struct-type-property . 11)"
"(quote . 1)" "(quote . 1)"
"(values . 3)" "(values . 3)"
"(void . 4))" "(void . 4))"
@ -35805,12 +35805,301 @@ static const char *startup_source =
" #f)))" " #f)))"
"(if(unsafe-fx< index_0 8)" "(if(unsafe-fx< index_0 8)"
"(let-values()" "(let-values()"
"(let-values(((ok?_0"
" mp56_0"
" v57_0"
" g58_0"
" quot59_0"
" nm60_0)"
"(let-values(((s_0) e_1))"
"(if(let-values(((s_1)"
"(if(1/syntax?"
" s_0)"
"(syntax-e$2"
" s_0)"
" s_0)))"
"(if(pair? s_1)"
"(if(let-values(((s_2)"
"(car"
" s_1)))"
" #t)"
"(let-values(((s_2)"
"(cdr"
" s_1)))"
"(let-values(((s_3)"
"(if(1/syntax?"
" s_2)"
"(syntax-e$2"
" s_2)"
" s_2)))"
"(if(pair? s_3)"
"(if(let-values(((s_4)"
"(car"
" s_3)))"
" #t)"
"(let-values(((s_4)"
"(cdr"
" s_3)))"
"(let-values(((s_5)"
"(if(1/syntax?"
" s_4)"
"(syntax-e$2"
" s_4)"
" s_4)))"
"(if(pair?"
" s_5)"
"(if(let-values(((s_6)"
"(car"
" s_5)))"
" #t)"
"(let-values(((s_6)"
"(cdr"
" s_5)))"
"(let-values(((s_7)"
"(if(1/syntax?"
" s_6)"
"(syntax-e$2"
" s_6)"
" s_6)))"
"(if(pair?"
" s_7)"
"(if(let-values(((s_8)"
"(car"
" s_7)))"
"(let-values(((s_9)"
"(if(1/syntax?"
" s_8)"
"(syntax-e$2"
" s_8)"
" s_8)))"
"(if(pair?"
" s_9)"
"(if(let-values(((s_10)"
"(car"
" s_9)))"
" #t)"
"(let-values(((s_10)"
"(cdr"
" s_9)))"
"(let-values(((s_11)"
"(if(1/syntax?"
" s_10)"
"(syntax-e$2"
" s_10)"
" s_10)))"
"(if(pair?"
" s_11)"
"(if(let-values(((s_12)"
"(car"
" s_11)))"
" #t)"
"(let-values(((s_12)"
"(cdr"
" s_11)))"
"(let-values(((s_13)"
"(if(1/syntax?"
" s_12)"
"(syntax-e$2"
" s_12)"
" s_12)))"
"(null?"
" s_13)))"
" #f)"
" #f)))"
" #f)"
" #f)))"
"(let-values(((s_8)"
"(cdr"
" s_7)))"
"(let-values(((s_9)"
"(if(1/syntax?"
" s_8)"
"(syntax-e$2"
" s_8)"
" s_8)))"
"(null?"
" s_9)))"
" #f)"
" #f)))"
" #f)"
" #f)))"
" #f)"
" #f)))"
" #f)"
" #f))"
"(let-values()"
"(let-values(((mp56_0"
" v57_0"
" g58_0"
" quot59_0"
" nm60_0)"
"(let-values(((s_1)"
"(if(1/syntax?"
" s_0)"
"(syntax-e$2"
" s_0)"
" s_0)))"
"(let-values(((mp61_0)"
"(let-values(((s_2)"
"(car"
" s_1)))"
" s_2))"
"((v62_0"
" g63_0"
" quot64_0"
" nm65_0)"
"(let-values(((s_2)"
"(cdr"
" s_1)))"
"(let-values(((s_3)"
"(if(1/syntax?"
" s_2)"
"(syntax-e$2"
" s_2)"
" s_2)))"
"(let-values(((v66_0)"
"(let-values(((s_4)"
"(car"
" s_3)))"
" s_4))"
"((g67_0"
" quot68_0"
" nm69_0)"
"(let-values(((s_4)"
"(cdr"
" s_3)))"
"(let-values(((s_5)"
"(if(1/syntax?"
" s_4)"
"(syntax-e$2"
" s_4)"
" s_4)))"
"(let-values(((g70_0)"
"(let-values(((s_6)"
"(car"
" s_5)))"
" s_6))"
"((quot71_0"
" nm72_0)"
"(let-values(((s_6)"
"(cdr"
" s_5)))"
"(let-values(((s_7)"
"(if(1/syntax?"
" s_6)"
"(syntax-e$2"
" s_6)"
" s_6)))"
"(let-values(((quot73_0"
" nm74_0)"
"(let-values(((s_8)"
"(car"
" s_7)))"
"(let-values(((s_9)"
"(if(1/syntax?"
" s_8)"
"(syntax-e$2"
" s_8)"
" s_8)))"
"(let-values(((quot75_0)"
"(let-values(((s_10)"
"(car"
" s_9)))"
" s_10))"
"((nm76_0)"
"(let-values(((s_10)"
"(cdr"
" s_9)))"
"(let-values(((s_11)"
"(if(1/syntax?"
" s_10)"
"(syntax-e$2"
" s_10)"
" s_10)))"
"(let-values(((nm77_0)"
"(let-values(((s_12)"
"(car"
" s_11)))"
" s_12))"
"(()"
"(let-values(((s_12)"
"(cdr"
" s_11)))"
"(let-values(((s_13)"
"(if(1/syntax?"
" s_12)"
"(syntax-e$2"
" s_12)"
" s_12)))"
"(values)))))"
"(values"
" nm77_0))))))"
"(values"
" quot75_0"
" nm76_0)))))"
"(()"
"(let-values(((s_8)"
"(cdr"
" s_7)))"
"(let-values(((s_9)"
"(if(1/syntax?"
" s_8)"
"(syntax-e$2"
" s_8)"
" s_8)))"
"(values)))))"
"(values"
" quot73_0"
" nm74_0))))))"
"(values"
" g70_0"
" quot71_0"
" nm72_0))))))"
"(values"
" v66_0"
" g67_0"
" quot68_0"
" nm69_0))))))"
"(values"
" mp61_0"
" v62_0"
" g63_0"
" quot64_0"
" nm65_0)))))"
"(values"
" #t"
" mp56_0"
" v57_0"
" g58_0"
" quot59_0"
" nm60_0)))"
"(values #f #f #f #f #f #f)))))"
"(if ok?_0"
"(if(not"
"(let-values(((temp78_0) v57_0)"
"((temp79_0) 1))"
"(any-side-effects?.1"
" '#hasheq()"
" '#hasheq()"
" unsafe-undefined"
" temp78_0"
" temp79_0)))"
"(if(eq? 'quote quot59_0)"
"(if(symbol? nm60_0)"
"(if(equal? #f g58_0) 1 #f)"
" #f)"
" #f)"
" #f)"
" #f)))"
"(let-values()"
"(if(ok-make-struct-type?" "(if(ok-make-struct-type?"
" e_1" " e_1"
" ready-variable?_0" " ready-variable?_0"
" defns_0)" " defns_0)"
" 5" " 5"
" #f))" " #f))))"
"(if(unsafe-fx< index_0 11)"
"(if(unsafe-fx< index_0 10)"
"(let-values()" "(let-values()"
"(if(ok-make-struct-field-accessor/mutator?" "(if(ok-make-struct-field-accessor/mutator?"
" e_1" " e_1"
@ -35818,8 +36107,7 @@ static const char *startup_source =
" 'general-accessor" " 'general-accessor"
" defns_0)" " defns_0)"
" 1" " 1"
" #f))))" " #f))"
"(if(unsafe-fx< index_0 10)"
"(let-values()" "(let-values()"
"(if(ok-make-struct-field-accessor/mutator?" "(if(ok-make-struct-field-accessor/mutator?"
" e_1" " e_1"
@ -35827,15 +36115,15 @@ static const char *startup_source =
" 'general-mutator" " 'general-mutator"
" defns_0)" " defns_0)"
" 1" " 1"
" #f))" " #f)))"
"(if(unsafe-fx< index_0 11)" "(if(unsafe-fx< index_0 12)"
"(let-values()" "(let-values()"
"(if(ok-make-struct-type-property? e_1 defns_0)" "(if(ok-make-struct-type-property? e_1 defns_0)"
" 3" " 3"
" #f))" " #f))"
"(if(unsafe-fx< index_0 12)" "(if(unsafe-fx< index_0 13)"
"(let-values()" "(let-values()"
"(let-values(((ok?_0 gs56_0 quot57_0 datum58_0)" "(let-values(((ok?_0 gs80_0 quot81_0 datum82_0)"
"(let-values(((s_0) e_1))" "(let-values(((s_0) e_1))"
"(if(let-values(((s_1)" "(if(let-values(((s_1)"
"(if(1/syntax?" "(if(1/syntax?"
@ -35919,22 +36207,22 @@ static const char *startup_source =
" #f)" " #f)"
" #f))" " #f))"
"(let-values()" "(let-values()"
"(let-values(((gs56_0" "(let-values(((gs80_0"
" quot57_0" " quot81_0"
" datum58_0)" " datum82_0)"
"(let-values(((s_1)" "(let-values(((s_1)"
"(if(1/syntax?" "(if(1/syntax?"
" s_0)" " s_0)"
"(syntax-e$2" "(syntax-e$2"
" s_0)" " s_0)"
" s_0)))" " s_0)))"
"(let-values(((gs59_0)" "(let-values(((gs83_0)"
"(let-values(((s_2)" "(let-values(((s_2)"
"(car" "(car"
" s_1)))" " s_1)))"
" s_2))" " s_2))"
"((quot60_0" "((quot84_0"
" datum61_0)" " datum85_0)"
"(let-values(((s_2)" "(let-values(((s_2)"
"(cdr" "(cdr"
" s_1)))" " s_1)))"
@ -35944,8 +36232,8 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_2)" " s_2)"
" s_2)))" " s_2)))"
"(let-values(((quot62_0" "(let-values(((quot86_0"
" datum63_0)" " datum87_0)"
"(let-values(((s_4)" "(let-values(((s_4)"
"(car" "(car"
" s_3)))" " s_3)))"
@ -35955,12 +36243,12 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_4)" " s_4)"
" s_4)))" " s_4)))"
"(let-values(((quot64_0)" "(let-values(((quot88_0)"
"(let-values(((s_6)" "(let-values(((s_6)"
"(car" "(car"
" s_5)))" " s_5)))"
" s_6))" " s_6))"
"((datum65_0)" "((datum89_0)"
"(let-values(((s_6)" "(let-values(((s_6)"
"(cdr" "(cdr"
" s_5)))" " s_5)))"
@ -35970,7 +36258,7 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_6)" " s_6)"
" s_6)))" " s_6)))"
"(let-values(((datum66_0)" "(let-values(((datum90_0)"
"(let-values(((s_8)" "(let-values(((s_8)"
"(car" "(car"
" s_7)))" " s_7)))"
@ -35987,10 +36275,10 @@ static const char *startup_source =
" s_8)))" " s_8)))"
"(values)))))" "(values)))))"
"(values" "(values"
" datum66_0))))))" " datum90_0))))))"
"(values" "(values"
" quot64_0" " quot88_0"
" datum65_0)))))" " datum89_0)))))"
"(()" "(()"
"(let-values(((s_4)" "(let-values(((s_4)"
"(cdr" "(cdr"
@ -36003,28 +36291,28 @@ static const char *startup_source =
" s_4)))" " s_4)))"
"(values)))))" "(values)))))"
"(values" "(values"
" quot62_0" " quot86_0"
" datum63_0))))))" " datum87_0))))))"
"(values" "(values"
" gs59_0" " gs83_0"
" quot60_0" " quot84_0"
" datum61_0)))))" " datum85_0)))))"
"(values" "(values"
" #t" " #t"
" gs56_0" " gs80_0"
" quot57_0" " quot81_0"
" datum58_0)))" " datum82_0)))"
"(values #f #f #f #f)))))" "(values #f #f #f #f)))))"
"(if(let-values(((or-part_0)" "(if(let-values(((or-part_0)"
"(if ok?_0" "(if ok?_0"
"(if(eq? 'quote quot57_0)" "(if(eq? 'quote quot81_0)"
"(let-values(((or-part_0)" "(let-values(((or-part_0)"
"(symbol?" "(symbol?"
" datum58_0)))" " datum82_0)))"
"(if or-part_0" "(if or-part_0"
" or-part_0" " or-part_0"
"(string?" "(string?"
" datum58_0)))" " datum82_0)))"
" #f)" " #f)"
" #f)))" " #f)))"
"(if or-part_0" "(if or-part_0"
@ -36034,11 +36322,11 @@ static const char *startup_source =
" #f)))" " #f)))"
"(let-values()" "(let-values()"
"(let-values(((ok?_0" "(let-values(((ok?_0"
" _67_0" " _91_0"
" id:rator68_0" " id:rator92_0"
" id:arg69_0" " id:arg93_0"
" thn70_0" " thn94_0"
" els71_0)" " els95_0)"
"(let-values(((s_0) e_1))" "(let-values(((s_0) e_1))"
"(if(let-values(((s_1)" "(if(let-values(((s_1)"
"(if(1/syntax?" "(if(1/syntax?"
@ -36176,26 +36464,26 @@ static const char *startup_source =
" #f)" " #f)"
" #f))" " #f))"
"(let-values()" "(let-values()"
"(let-values(((_67_0" "(let-values(((_91_0"
" id:rator68_0" " id:rator92_0"
" id:arg69_0" " id:arg93_0"
" thn70_0" " thn94_0"
" els71_0)" " els95_0)"
"(let-values(((s_1)" "(let-values(((s_1)"
"(if(1/syntax?" "(if(1/syntax?"
" s_0)" " s_0)"
"(syntax-e$2" "(syntax-e$2"
" s_0)" " s_0)"
" s_0)))" " s_0)))"
"(let-values(((_72_0)" "(let-values(((_96_0)"
"(let-values(((s_2)" "(let-values(((s_2)"
"(car" "(car"
" s_1)))" " s_1)))"
" s_2))" " s_2))"
"((id:rator73_0" "((id:rator97_0"
" id:arg74_0" " id:arg98_0"
" thn75_0" " thn99_0"
" els76_0)" " els100_0)"
"(let-values(((s_2)" "(let-values(((s_2)"
"(cdr" "(cdr"
" s_1)))" " s_1)))"
@ -36205,8 +36493,8 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_2)" " s_2)"
" s_2)))" " s_2)))"
"(let-values(((id:rator77_0" "(let-values(((id:rator101_0"
" id:arg78_0)" " id:arg102_0)"
"(let-values(((s_4)" "(let-values(((s_4)"
"(car" "(car"
" s_3)))" " s_3)))"
@ -36216,12 +36504,12 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_4)" " s_4)"
" s_4)))" " s_4)))"
"(let-values(((id:rator81_0)" "(let-values(((id:rator105_0)"
"(let-values(((s_6)" "(let-values(((s_6)"
"(car" "(car"
" s_5)))" " s_5)))"
" s_6))" " s_6))"
"((id:arg82_0)" "((id:arg106_0)"
"(let-values(((s_6)" "(let-values(((s_6)"
"(cdr" "(cdr"
" s_5)))" " s_5)))"
@ -36231,7 +36519,7 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_6)" " s_6)"
" s_6)))" " s_6)))"
"(let-values(((id:arg83_0)" "(let-values(((id:arg107_0)"
"(let-values(((s_8)" "(let-values(((s_8)"
"(car" "(car"
" s_7)))" " s_7)))"
@ -36248,12 +36536,12 @@ static const char *startup_source =
" s_8)))" " s_8)))"
"(values)))))" "(values)))))"
"(values" "(values"
" id:arg83_0))))))" " id:arg107_0))))))"
"(values" "(values"
" id:rator81_0" " id:rator105_0"
" id:arg82_0)))))" " id:arg106_0)))))"
"((thn79_0" "((thn103_0"
" els80_0)" " els104_0)"
"(let-values(((s_4)" "(let-values(((s_4)"
"(cdr" "(cdr"
" s_3)))" " s_3)))"
@ -36263,12 +36551,12 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_4)" " s_4)"
" s_4)))" " s_4)))"
"(let-values(((thn84_0)" "(let-values(((thn108_0)"
"(let-values(((s_6)" "(let-values(((s_6)"
"(car" "(car"
" s_5)))" " s_5)))"
" s_6))" " s_6))"
"((els85_0)" "((els109_0)"
"(let-values(((s_6)" "(let-values(((s_6)"
"(cdr" "(cdr"
" s_5)))" " s_5)))"
@ -36278,7 +36566,7 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_6)" " s_6)"
" s_6)))" " s_6)))"
"(let-values(((els86_0)" "(let-values(((els110_0)"
"(let-values(((s_8)" "(let-values(((s_8)"
"(car" "(car"
" s_7)))" " s_7)))"
@ -36295,28 +36583,28 @@ static const char *startup_source =
" s_8)))" " s_8)))"
"(values)))))" "(values)))))"
"(values" "(values"
" els86_0))))))" " els110_0))))))"
"(values" "(values"
" thn84_0" " thn108_0"
" els85_0))))))" " els109_0))))))"
"(values" "(values"
" id:rator77_0" " id:rator101_0"
" id:arg78_0" " id:arg102_0"
" thn79_0" " thn103_0"
" els80_0))))))" " els104_0))))))"
"(values" "(values"
" _72_0" " _96_0"
" id:rator73_0" " id:rator97_0"
" id:arg74_0" " id:arg98_0"
" thn75_0" " thn99_0"
" els76_0)))))" " els100_0)))))"
"(values" "(values"
" #t" " #t"
" _67_0" " _91_0"
" id:rator68_0" " id:rator92_0"
" id:arg69_0" " id:arg93_0"
" thn70_0" " thn94_0"
" els71_0)))" " els95_0)))"
"(values #f #f #f #f #f #f)))))" "(values #f #f #f #f #f #f)))))"
"(if ok?_0" "(if ok?_0"
"(let-values()" "(let-values()"
@ -36324,37 +36612,37 @@ static const char *startup_source =
"(let-values(((or-part_0)" "(let-values(((or-part_0)"
"(hash-ref" "(hash-ref"
" locals_1" " locals_1"
" id:rator68_0" " id:rator92_0"
" #f)))" " #f)))"
"(if or-part_0" "(if or-part_0"
" or-part_0" " or-part_0"
"(lookup-defn" "(lookup-defn"
" defns_0" " defns_0"
" id:rator68_0)))))" " id:rator92_0)))))"
"(if c2_0" "(if c2_0"
"((lambda(d_0)" "((lambda(d_0)"
"(if(known-predicate? d_0)" "(if(known-predicate? d_0)"
"(if(not" "(if(not"
"(effects?_0" "(effects?_0"
" thn70_0" " thn94_0"
" expected-results_0" " expected-results_0"
"(hash-set" "(hash-set"
" locals_1" " locals_1"
" id:arg69_0" " id:arg93_0"
"(known-satisfies8.1" "(known-satisfies8.1"
"(known-predicate-key" "(known-predicate-key"
" d_0)))))" " d_0)))))"
"(loop_0 els71_0 locals_1)" "(loop_0 els95_0 locals_1)"
" #f)" " #f)"
" #f))" " #f))"
" c2_0)" " c2_0)"
"(let-values() #f))))" "(let-values() #f))))"
"(let-values()" "(let-values()"
"(let-values(((ok?_1" "(let-values(((ok?_1"
" _87_0" " _111_0"
" tst88_0" " tst112_0"
" thn89_0" " thn113_0"
" els90_0)" " els114_0)"
"(let-values(((s_0) e_1))" "(let-values(((s_0) e_1))"
"(if(let-values(((s_1)" "(if(let-values(((s_1)"
"(if(1/syntax?" "(if(1/syntax?"
@ -36432,24 +36720,24 @@ static const char *startup_source =
" #f)" " #f)"
" #f))" " #f))"
"(let-values()" "(let-values()"
"(let-values(((_87_0" "(let-values(((_111_0"
" tst88_0" " tst112_0"
" thn89_0" " thn113_0"
" els90_0)" " els114_0)"
"(let-values(((s_1)" "(let-values(((s_1)"
"(if(1/syntax?" "(if(1/syntax?"
" s_0)" " s_0)"
"(syntax-e$2" "(syntax-e$2"
" s_0)" " s_0)"
" s_0)))" " s_0)))"
"(let-values(((_91_0)" "(let-values(((_115_0)"
"(let-values(((s_2)" "(let-values(((s_2)"
"(car" "(car"
" s_1)))" " s_1)))"
" s_2))" " s_2))"
"((tst92_0" "((tst116_0"
" thn93_0" " thn117_0"
" els94_0)" " els118_0)"
"(let-values(((s_2)" "(let-values(((s_2)"
"(cdr" "(cdr"
" s_1)))" " s_1)))"
@ -36459,13 +36747,13 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_2)" " s_2)"
" s_2)))" " s_2)))"
"(let-values(((tst95_0)" "(let-values(((tst119_0)"
"(let-values(((s_4)" "(let-values(((s_4)"
"(car" "(car"
" s_3)))" " s_3)))"
" s_4))" " s_4))"
"((thn96_0" "((thn120_0"
" els97_0)" " els121_0)"
"(let-values(((s_4)" "(let-values(((s_4)"
"(cdr" "(cdr"
" s_3)))" " s_3)))"
@ -36475,12 +36763,12 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_4)" " s_4)"
" s_4)))" " s_4)))"
"(let-values(((thn98_0)" "(let-values(((thn122_0)"
"(let-values(((s_6)" "(let-values(((s_6)"
"(car" "(car"
" s_5)))" " s_5)))"
" s_6))" " s_6))"
"((els99_0)" "((els123_0)"
"(let-values(((s_6)" "(let-values(((s_6)"
"(cdr" "(cdr"
" s_5)))" " s_5)))"
@ -36490,7 +36778,7 @@ static const char *startup_source =
"(syntax-e$2" "(syntax-e$2"
" s_6)" " s_6)"
" s_6)))" " s_6)))"
"(let-values(((els100_0)" "(let-values(((els124_0)"
"(let-values(((s_8)" "(let-values(((s_8)"
"(car" "(car"
" s_7)))" " s_7)))"
@ -36507,25 +36795,25 @@ static const char *startup_source =
" s_8)))" " s_8)))"
"(values)))))" "(values)))))"
"(values" "(values"
" els100_0))))))" " els124_0))))))"
"(values" "(values"
" thn98_0" " thn122_0"
" els99_0))))))" " els123_0))))))"
"(values" "(values"
" tst95_0" " tst119_0"
" thn96_0" " thn120_0"
" els97_0))))))" " els121_0))))))"
"(values" "(values"
" _91_0" " _115_0"
" tst92_0" " tst116_0"
" thn93_0" " thn117_0"
" els94_0)))))" " els118_0)))))"
"(values" "(values"
" #t" " #t"
" _87_0" " _111_0"
" tst88_0" " tst112_0"
" thn89_0" " thn113_0"
" els90_0)))" " els114_0)))"
"(values" "(values"
" #f" " #f"
" #f" " #f"
@ -36534,13 +36822,13 @@ static const char *startup_source =
" #f)))))" " #f)))))"
"(if ok?_1" "(if ok?_1"
"(if(not" "(if(not"
"(effects?_0 tst88_0 1 locals_1))" "(effects?_0 tst112_0 1 locals_1))"
"(if(not" "(if(not"
"(effects?_0" "(effects?_0"
" thn89_0" " thn113_0"
" expected-results_0" " expected-results_0"
" locals_1))" " locals_1))"
"(loop_0 els90_0 locals_1)" "(loop_0 els114_0 locals_1)"
" #f)" " #f)"
" #f)" " #f)"
" #f)))))))))))))))))" " #f)))))))))))))))))"
@ -36777,8 +37065,8 @@ static const char *startup_source =
"(lambda(v_0)(ok-make-struct-type-property-super? v_0 defns_0))" "(lambda(v_0)(ok-make-struct-type-property-super? v_0 defns_0))"
"(lambda(v_0)" "(lambda(v_0)"
"(not" "(not"
"(let-values(((v101_0) v_0)((temp102_0) 1)((defns103_0) defns_0))" "(let-values(((v125_0) v_0)((temp126_0) 1)((defns127_0) defns_0))"
"(any-side-effects?.1 defns103_0 '#hasheq() unsafe-undefined v101_0 temp102_0)))))))" "(any-side-effects?.1 defns127_0 '#hasheq() unsafe-undefined v125_0 temp126_0)))))))"
"(begin" "(begin"
"(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-list lst_0)))" "(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-list lst_0)))"
"(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-list lst_1)))" "(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-list lst_1)))"
@ -36872,20 +37160,20 @@ static const char *startup_source =
"(known-property-of-function?" "(known-property-of-function?"
" o_0))))))" " o_0))))))"
"(not" "(not"
"(let-values(((temp104_0)" "(let-values(((temp128_0)"
"(list-ref" "(list-ref"
" prop+val_1" " prop+val_1"
" 2))" " 2))"
"((temp105_0)" "((temp129_0)"
" 1)" " 1)"
"((defns106_0)" "((defns130_0)"
" defns_0))" " defns_0))"
"(any-side-effects?.1" "(any-side-effects?.1"
" defns106_0" " defns130_0"
" '#hasheq()" " '#hasheq()"
" unsafe-undefined" " unsafe-undefined"
" temp104_0" " temp128_0"
" temp105_0)))" " temp129_0)))"
" #f)" " #f)"
" #f))" " #f))"
" #f)))))" " #f)))))"
@ -36964,16 +37252,16 @@ static const char *startup_source =
"(lambda(v_0)(field-count-expr-to-field-count v_0))" "(lambda(v_0)(field-count-expr-to-field-count v_0))"
"(lambda(v_0)" "(lambda(v_0)"
"(not" "(not"
"(let-values(((v107_0) v_0)" "(let-values(((v131_0) v_0)"
"((temp108_0) 1)" "((temp132_0) 1)"
"((ready-variable?109_0) ready-variable?_0)" "((ready-variable?133_0) ready-variable?_0)"
"((defns110_0) defns_0))" "((defns134_0) defns_0))"
"(any-side-effects?.1" "(any-side-effects?.1"
" defns110_0" " defns134_0"
" '#hasheq()" " '#hasheq()"
" ready-variable?109_0" " ready-variable?133_0"
" v107_0" " v131_0"
" temp108_0))))" " temp132_0))))"
"(lambda(v_0)" "(lambda(v_0)"
"(known-good-struct-properties? v_0 immutables-expr_0 super-expr_0 defns_0))" "(known-good-struct-properties? v_0 immutables-expr_0 super-expr_0 defns_0))"
"(lambda(v_0)(inspector-or-false? v_0))" "(lambda(v_0)(inspector-or-false? v_0))"
@ -37185,8 +37473,8 @@ static const char *startup_source =
"(if(known-property? o_0)" "(if(known-property? o_0)"
"(let-values()" "(let-values()"
"(not" "(not"
"(let-values(((val-expr111_0) val-expr_0)((temp112_0) 1)((defns113_0) defns_0))" "(let-values(((val-expr135_0) val-expr_0)((temp136_0) 1)((defns137_0) defns_0))"
"(any-side-effects?.1 defns113_0 '#hasheq() unsafe-undefined val-expr111_0 temp112_0))))" "(any-side-effects?.1 defns137_0 '#hasheq() unsafe-undefined val-expr135_0 temp136_0))))"
"(if(known-property-of-function? o_0)" "(if(known-property-of-function? o_0)"
"(let-values()(is-lambda? val-expr_0(known-property-of-function-arity o_0) defns_0))" "(let-values()(is-lambda? val-expr_0(known-property-of-function-arity o_0) defns_0))"
"(let-values() #f))))))))))))))" "(let-values() #f))))))))))))))"