Correct handling of procedure env roots in mutator
This commit is contained in:
parent
a744958fd5
commit
05832af083
|
@ -178,8 +178,8 @@
|
||||||
(quasisyntax/loc stx
|
(quasisyntax/loc stx
|
||||||
(let ([closure (lambda (id ...)
|
(let ([closure (lambda (id ...)
|
||||||
(syntax-parameterize ([mutator-env-roots
|
(syntax-parameterize ([mutator-env-roots
|
||||||
(list* #'id ...
|
(list #'id ...
|
||||||
(syntax-parameter-value #'mutator-env-roots))]
|
#'free-id ...)]
|
||||||
[mutator-tail-call? #t])
|
[mutator-tail-call? #t])
|
||||||
(->address body)))])
|
(->address body)))])
|
||||||
(add-closure-env! closure (list (make-env-root free-id) ...))
|
(add-closure-env! closure (list (make-env-root free-id) ...))
|
||||||
|
|
12
collects/tests/plai/gc/good-mutators/danny-bug.rkt
Normal file
12
collects/tests/plai/gc/good-mutators/danny-bug.rkt
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#lang plai/mutator
|
||||||
|
(allocator-setup "../good-collectors/good-collector.rkt" 6)
|
||||||
|
|
||||||
|
(define
|
||||||
|
proc
|
||||||
|
(let* ([not-root 1] ; 2
|
||||||
|
[root 2]) ; 4
|
||||||
|
(lambda () ; 6
|
||||||
|
3
|
||||||
|
root)))
|
||||||
|
|
||||||
|
(proc)
|
Loading…
Reference in New Issue
Block a user