fixing closure problem
This commit is contained in:
parent
ecc9ceb842
commit
2dfaab00f4
|
@ -87,7 +87,7 @@
|
||||||
(define (shared-obj-pos/modulo-v v)
|
(define (shared-obj-pos/modulo-v v)
|
||||||
(define skip? #t)
|
(define skip? #t)
|
||||||
(λ (v2 #:share [share? #t])
|
(λ (v2 #:share [share? #t])
|
||||||
(if (and skip? (eq? v v2) (not (closure? v2)))
|
(if (and skip? (eq? v v2) #;(not (closure? v2)))
|
||||||
(begin
|
(begin
|
||||||
(set! skip? #f)
|
(set! skip? #f)
|
||||||
#f)
|
#f)
|
||||||
|
|
|
@ -941,7 +941,9 @@
|
||||||
[ind (make-indirect #f)])
|
[ind (make-indirect #f)])
|
||||||
(symtab-write! cp l ind)
|
(symtab-write! cp l ind)
|
||||||
(let* ([v (read-compact cp)]
|
(let* ([v (read-compact cp)]
|
||||||
[cl (make-closure v (gensym
|
[cl (make-closure v
|
||||||
|
; XXX Why call gensym here?
|
||||||
|
(gensym
|
||||||
(let ([s (lam-name v)])
|
(let ([s (lam-name v)])
|
||||||
(cond
|
(cond
|
||||||
[(symbol? s) s]
|
[(symbol? s) s]
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
(compilation-top 0
|
(compilation-top 0
|
||||||
(prefix 0 empty empty)
|
(prefix 0 empty empty)
|
||||||
(let* ([ph (make-placeholder #f)]
|
(let* ([ph (make-placeholder #f)]
|
||||||
[x (closure
|
[x (indirect (closure
|
||||||
(lam 'name
|
(lam 'name
|
||||||
empty
|
empty
|
||||||
0
|
0
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
empty
|
empty
|
||||||
0
|
0
|
||||||
ph)
|
ph)
|
||||||
(gensym))])
|
'name))])
|
||||||
(placeholder-set! ph x)
|
(placeholder-set! ph x)
|
||||||
(make-reader-graph x))))
|
(make-reader-graph x))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user