- fixed np-normalize-context pass to process trivs list in mvset forms
in tail and predicate context and added regression tests. Thanks to @marcomaggi for reporting the bug and @yjqww6 for providing a simplified test and finding the initial solution. cpnanopass.ss, 3.ms original commit: 28f31d84b6c45e2fa701655e9131801dd603d925
This commit is contained in:
parent
55323a372b
commit
c854ef9ab7
6
LOG
6
LOG
|
@ -576,3 +576,9 @@
|
||||||
added a batch script for locating Visual Studio's vcredist merge
|
added a batch script for locating Visual Studio's vcredist merge
|
||||||
modules, updated installer paths and names.
|
modules, updated installer paths and names.
|
||||||
wininstall/*
|
wininstall/*
|
||||||
|
- fixed np-normalize-context pass to process trivs list in mvset forms
|
||||||
|
in tail and predicate context and added regression tests. Thanks to
|
||||||
|
@marcomaggi for reporting the bug and @yjqww6 for providing a
|
||||||
|
simplified test and finding the initial solution.
|
||||||
|
cpnanopass.ss,
|
||||||
|
3.ms
|
||||||
|
|
20
mats/3.ms
20
mats/3.ms
|
@ -2049,6 +2049,26 @@
|
||||||
(let ()
|
(let ()
|
||||||
(import $mrvs-double-call)
|
(import $mrvs-double-call)
|
||||||
(double-call 'a)))
|
(double-call 'a)))
|
||||||
|
|
||||||
|
; regression testing for handling mvset in tail context
|
||||||
|
(call-with-values
|
||||||
|
(lambda ()
|
||||||
|
(call-with-values
|
||||||
|
(lambda ()
|
||||||
|
(+ (random 1) 7))
|
||||||
|
list))
|
||||||
|
(lambda l (equal? l '((7)))))
|
||||||
|
|
||||||
|
; regression testing for handling mvset in predicate context
|
||||||
|
(if (call-with-values
|
||||||
|
(lambda ()
|
||||||
|
(call-with-values
|
||||||
|
(lambda ()
|
||||||
|
(+ (random 1) 7))
|
||||||
|
list))
|
||||||
|
(lambda l (equal? l '((7)))))
|
||||||
|
#t
|
||||||
|
#f)
|
||||||
)
|
)
|
||||||
|
|
||||||
(mat let-values
|
(mat let-values
|
||||||
|
|
|
@ -9756,7 +9756,7 @@
|
||||||
(tail (mvcall ,info ,mdcl ,t0? ,t1 ... (,t* ...)))
|
(tail (mvcall ,info ,mdcl ,t0? ,t1 ... (,t* ...)))
|
||||||
(true))]
|
(true))]
|
||||||
[(set! ,[lvalue] ,[rhs]) `(seq (set! ,lvalue ,rhs) (true))]
|
[(set! ,[lvalue] ,[rhs]) `(seq (set! ,lvalue ,rhs) (true))]
|
||||||
[(mvset ,info (,mdcl ,[t0?] ,[t1] ...) (,t* ...) ((,x** ...) ,interface* ,l*) ...)
|
[(mvset ,info (,mdcl ,[t0?] ,[t1] ...) (,[t*] ...) ((,x** ...) ,interface* ,l*) ...)
|
||||||
`(seq
|
`(seq
|
||||||
(mvset ,info (,mdcl ,t0? ,t1 ...) (,t* ...) ((,x** ...) ,interface* ,l*) ...)
|
(mvset ,info (,mdcl ,t0? ,t1 ...) (,t* ...) ((,x** ...) ,interface* ,l*) ...)
|
||||||
(true))]
|
(true))]
|
||||||
|
@ -9826,7 +9826,7 @@
|
||||||
(guard (info-call-error? info) (fx< (debug-level) 2))
|
(guard (info-call-error? info) (fx< (debug-level) 2))
|
||||||
`(mvcall ,info ,mdcl ,t0? ,t1 ... (,t* ...))]
|
`(mvcall ,info ,mdcl ,t0? ,t1 ... (,t* ...))]
|
||||||
[(set! ,[lvalue] ,[rhs]) `(seq (set! ,lvalue ,rhs) ,(%constant svoid))]
|
[(set! ,[lvalue] ,[rhs]) `(seq (set! ,lvalue ,rhs) ,(%constant svoid))]
|
||||||
[(mvset ,info (,mdcl ,[t0?] ,[t1] ...) (,t* ...) ((,x** ...) ,interface* ,l*) ...)
|
[(mvset ,info (,mdcl ,[t0?] ,[t1] ...) (,[t*] ...) ((,x** ...) ,interface* ,l*) ...)
|
||||||
`(seq
|
`(seq
|
||||||
(mvset ,info (,mdcl ,t0? ,t1 ...) (,t* ...) ((,x** ...) ,interface* ,l*) ...)
|
(mvset ,info (,mdcl ,t0? ,t1 ...) (,t* ...) ((,x** ...) ,interface* ,l*) ...)
|
||||||
,(%constant svoid))]
|
,(%constant svoid))]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user