fixing closure problem

This commit is contained in:
Blake Johnson 2010-08-27 15:36:45 -06:00 committed by Jay McCarthy
parent ecc9ceb842
commit 2dfaab00f4
3 changed files with 80 additions and 78 deletions

View File

@ -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)

View File

@ -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]

View File

@ -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))))