Fixed module-specs->non-lib-paths which was very broken in several different ways (PR10305)
svn: r15180
This commit is contained in:
parent
5f7e052469
commit
233df48709
|
@ -236,8 +236,8 @@
|
||||||
(define (module-specs->non-lib-paths mods)
|
(define (module-specs->non-lib-paths mods)
|
||||||
(define (lib? x)
|
(define (lib? x)
|
||||||
(if (module-path-index? x)
|
(if (module-path-index? x)
|
||||||
(let-values ([(m base) (module-path-index-split x)]) (lib? m))
|
(let-values ([(m base) (module-path-index-split x)]) (lib? m))
|
||||||
(and (pair? x) (eq? 'lib (car x)))))
|
(or (symbol? x) (and (pair? x) (eq? 'lib (car x))))))
|
||||||
;; turns a module spec to a simple one (except for lib specs)
|
;; turns a module spec to a simple one (except for lib specs)
|
||||||
(define (simple-modspec mod)
|
(define (simple-modspec mod)
|
||||||
(cond [(and (pair? mod) (eq? 'lib (car mod))) #f]
|
(cond [(and (pair? mod) (eq? 'lib (car mod))) #f]
|
||||||
|
@ -253,25 +253,22 @@
|
||||||
[(and (eq? 'prefix (car mod)) (pair? (cddr mod)))
|
[(and (eq? 'prefix (car mod)) (pair? (cddr mod)))
|
||||||
(simple-modspec (caddr mod))]
|
(simple-modspec (caddr mod))]
|
||||||
[else #f]))
|
[else #f]))
|
||||||
(let loop ([todo (filter values (map simple-modspec mods))]
|
(let loop ([todo (filter-map simple-modspec mods)]
|
||||||
[r '()])
|
[r '()])
|
||||||
(cond
|
(cond
|
||||||
[(null? todo) r]
|
[(null? todo) r]
|
||||||
[(member (car todo) r) (loop (cdr todo) r)]
|
[(member (car todo) r) (loop (cdr todo) r)]
|
||||||
[else
|
[else
|
||||||
(let ([path (car todo)])
|
(let ([path (car todo)])
|
||||||
(loop (filter values
|
(loop (append (cdr todo)
|
||||||
(map (lambda (i)
|
(filter-map
|
||||||
(simplify-path* (resolve-module-path-index i path)))
|
(lambda (i)
|
||||||
(filter (lambda (i)
|
(simplify-path* (resolve-module-path-index i path)))
|
||||||
(and (module-path-index? i) (not (lib? i))))
|
(filter (lambda (i)
|
||||||
(apply append
|
(and (module-path-index? i) (not (lib? i))))
|
||||||
(call-with-values
|
(append-map cdr (module-compiled-imports
|
||||||
(lambda ()
|
(get-module-code path))))))
|
||||||
(module-compiled-imports
|
(cons path r)))])))
|
||||||
(get-module-code (car todo))))
|
|
||||||
list)))))
|
|
||||||
(cons path r)))])))
|
|
||||||
|
|
||||||
;; Resources ----------------------------------------------------------------
|
;; Resources ----------------------------------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user