fix serialization problems

svn: r15241
This commit is contained in:
Matthew Flatt 2009-06-23 12:07:54 +00:00
parent a33dcc0073
commit 8e5993f99f
2 changed files with 18 additions and 3 deletions

View File

@ -71,6 +71,18 @@
(void))))
(define varref (#%variable-reference varref))
(define (collapse/resolve-module-path-index mpi rel-to)
(let ([v (collapse-module-path-index mpi rel-to)])
(if (path? v)
;; If collapsing gives a path, then we can't do any better than
;; resolving --- and we must resolved, because the mpi may record
;; a more accurate path inside.
(let ([v2 (resolved-module-path-name (module-path-index-resolve mpi))])
(if (symbol? v2)
`(quote ,v2)
v2))
v)))
(define (mod-to-id info mod-map cache)
(let ([deserialize-id (serialize-info-deserialize-id info)])
(hash-ref
@ -86,7 +98,7 @@
(if (symbol? (caddr b))
(caddr b)
(protect-path
(collapse-module-path-index
(collapse/resolve-module-path-index
(caddr b)
(build-path (serialize-info-dir info)
"here.ss")))))
@ -98,7 +110,7 @@
(if (symbol? (cdr deserialize-id))
(cdr deserialize-id)
(protect-path
(collapse-module-path-index
(collapse/resolve-module-path-index
(cdr deserialize-id)
(build-path (serialize-info-dir info)
"here.ss"))))

View File

@ -138,8 +138,11 @@ Use syntax/modcollapse instead.
(cdddr relto-mp))
(list (cadr relto-mp))))))])
(normalize-planet `(planet ,pathstr ,(caddr relto-mp)))))]
[(eq? (car relto-mp) 'quote)
(set! relto-mp (build-path (current-directory) "x"))
(combine-relative-elements elements)]
[else (error 'combine-relative-elements
"don't know how to deal with: ~s" relto-mp)]))
"don't know how to deal with: ~s for ~s" relto-mp elements)]))
(define (normalize-lib s)
(if (null? (cddr s))