Chez Scheme: unbreak $app/value rendering for expand/optimize

This commit is contained in:
Matthew Flatt 2020-12-13 19:59:19 -07:00
parent 2c26dc1e1a
commit 635005e882
2 changed files with 91 additions and 1 deletions

View File

@ -3232,3 +3232,93 @@
(expand/optimize '((make-arity-wrapper-procedure (lambda (x) x) 1 'ok) 5)))
5))
)
(mat uncprep-app-variants
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(x y))
'(x y)))
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#%$app x y))
'(x y)))
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#3%$app x y))
(if (eqv? 3 (optimize-level))
'(x y)
'(#3%$app x y))))
(parameterize ([enable-unsafe-application #t]
[enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(x y))
'(x y)))
(parameterize ([enable-unsafe-application #t]
[enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#3%$app x y))
'(x y)))
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#%$app/no-return x y))
'($app/no-return x y)))
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#3%$app/no-return x y))
(if (eqv? 3 (optimize-level))
'($app/no-return x y)
'(#3%$app/no-return x y))))
(parameterize ([enable-unsafe-application #t]
[enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#%$app/no-return x y))
'($app/no-return x y)))
(parameterize ([enable-unsafe-application #t]
[enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#3%$app/no-return x y))
'($app/no-return x y)))
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#%$app/no-inline x y))
'($app/no-inline x y)))
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#3%$app/no-inline x y))
(if (eqv? 3 (optimize-level))
'($app/no-inline x y)
'(#3%$app/no-inline x y))))
(parameterize ([enable-unsafe-application #t]
[enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#%$app/no-inline x y))
'($app/no-inline x y)))
(parameterize ([enable-unsafe-application #t]
[enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#3%$app/no-inline x y))
'($app/no-inline x y)))
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#%$app/value x y))
'($app/value x y)))
(parameterize ([enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#3%$app/value x y))
(if (eqv? 3 (optimize-level))
'($app/value x y)
'(#3%$app/value x y))))
(parameterize ([enable-unsafe-application #t]
[enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#%$app/value x y))
'($app/value x y)))
(parameterize ([enable-unsafe-application #t]
[enable-cp0 #t])
(equivalent-expansion?
(expand/optimize '(#3%$app/value x y))
'($app/value x y)))
)

View File

@ -178,7 +178,7 @@
[(preinfo-call-can-inline? preinfo)
(prim #f a)]
[else
(prim '$app/no-inline)])))])))]
(prim '$app/no-inline a)])))])))]
[,pr (let ([sym (primref-name pr)])
(if sexpr?
($sgetprop sym '*unprefixed* sym)