I downloaded the nightly build version 5.0.1.1--2010-07-23(57d3dd7df753abacc8642809216a873962204d4f/a) [3m] and the error message is now:<br><br>..\..\..\..\..\..\..\..\..\Program Files\Racket\collects\compiler\cm.rkt:94:26: cdr: expects argument of type <pair>; given #<path:compiled><br>
<br>and the backtrace is:<br><br>cdr: expects argument of type <pair>; given #<path:compiled><br><br>C:\Program Files\Racket\collects\compiler\cm.rkt: 94:26 <br> (delay (get-compiled-file-sha1 (get-zo-path))))]<br>
<br>C:\Program Files\Racket\collects\racket\private\promise.rkt: 103:10 <br> (lambda ()<br> (let ([vs (call-with-values v list)]) (pset! promise vs) vs))))<br><br>C:\Program Files\Racket\collects\racket\private\more-scheme.rkt: 274:2 <br>
(define (call-with-exception-handler exnh thunk)<br> ;; The `begin0' ensures that we don't overwrite an enclosing<br> ;; exception handler.<br> (begin0<br> (with-continuation-mark<br> exception-handler-key<br>
exnh<br> (thunk))<br> (void)))<br><br>C:\Program Files\Racket\collects\racket\private\promise.rkt: 95:0 <br> (define (force/generic promise)<br> (reify-result<br> (let ([v (pref promise)])<br> (if (procedure? v)<br>
(begin<br> (pset! promise (make-running (object-name v)))<br> (call-with-exception-handler<br> (lambda (e) (pset! promise (make-reraise e)) e)<br> (lambda ()<br> (let ([vs (call-with-values v list)]) (pset! promise vs) vs))))<br>
v))))<br><br>C:\Program Files\Racket\collects\compiler\cm.rkt: 212:23 <br> [l (map (lambda (v) <br> (let ([sha1 (force (car v))]<br> [dep (cdr v)])<br>
(unless sha1<br> (error 'cm "no SHA-1 for dependency: ~s" dep))<br> (cons sha1 dep)))<br><br>C:\Program Files\Racket\collects\racket\private\map.rkt: 23:17 <br>
(let loop ([l l])<br> (cond<br> [(null? l) null]<br> [else (cons (f (car l)) (loop (cdr l)))]))<br><br>C:\Program Files\Racket\collects\racket\private\map.rkt: 18:11 <br>
(case-lambda<br> [(f l)<br> (if (and (procedure? f)<br> (procedure-arity-includes? f 1)<br> (list? l))<br> (let loop ([l l])<br>
(cond<br> [(null? l) null]<br> [else (cons (f (car l)) (loop (cdr l)))]))<br> (map f l))]<br> [(f l1 l2)<br> (if (and (procedure? f)<br>
(procedure-arity-includes? f 2)<br> (list? l1)<br> (list? l2)<br> (= (length l1) (length l2)))<br> (let loop ([l1 l1][l2 l2])<br>
(cond<br> [(null? l1) null]<br> [else (cons (f (car l1) (car l2)) <br> (loop (cdr l1) (cdr l2)))]))<br> (map f l1 l2))]<br>
[(f . args) (apply map f args)])])<br><br>C:\Program Files\Racket\collects\compiler\cm.rkt: 187:0 <br> (define (get-dep-sha1s deps up-to-date read-src-syntax mode must-exist?)<br> (let ([l (for/fold ([l null]) ([dep (in-list deps)])<br>
(and l<br> ;; (cons 'ext rel-path) => a non-module file, check source<br> ;; rel-path => a module file name, check cache<br> (let* ([ext? (and (pair? dep) (eq? 'ext (car dep)))]<br>
[p (main-collects-relative->path (if ext? (cdr dep) dep))])<br> (cond<br> [ext? (let ([v (get-source-sha1 p)])<br> (cond<br> [v (cons (cons (delay v) dep) l)]<br>
[must-exist? (error 'cm "cannot find external-dependency file: ~v" p)]<br> [else #f]))]<br> [(or (hash-ref up-to-date (simple-form-path p) #f)<br>
;; Use `compiler-root' with `sha1-only?' as #t:<br> (compile-root mode p up-to-date read-src-syntax #t))<br> => (lambda (sh)<br> (cons (cons (cdr sh) dep) l))]<br>
[must-exist?<br> ;; apparently, we're forced to use the source of the module,<br> ;; so compute a sha1 from it instead of the bytecode<br> (cons (cons (get-source-sha1 p) dep) l)]<br>
[else #f]))))])<br> (and l<br> (let ([p (open-output-string)]<br> [l (map (lambda (v) <br> (let ([sha1 (force (car v))]<br> [dep (cdr v)])<br>
(unless sha1<br> (error 'cm "no SHA-1 for dependency: ~s" dep))<br> (cons sha1 dep)))<br> l)])<br> ;; sort by sha1s so that order doesn't matter<br>
(write (sort l string<? #:key car) p)<br> ;; compute one hash from all hashes<br> (sha1 (open-input-bytes (get-output-bytes p)))))))<br><br>C:\Program Files\Racket\collects\compiler\cm.rkt: 230:6 <br>
(lambda (op tmp-path)<br> (let ([deps (append<br> (map path->main-collects-relative deps)<br> (map (lambda (x)<br> (cons 'ext (path->main-collects-relative x)))<br>
external-deps))])<br> (write (list* (version)<br> (cons (or src-sha1 (get-source-sha1 path))<br> (get-dep-sha1s deps up-to-date read-src-syntax mode #t))<br>
deps)<br> op)<br> (newline op))))))<br><br>C:\Program Files\Racket\collects\racket\private\more-scheme.rkt: 158:2 <br> (define (call-with-break-parameterization paramz thunk)<br>
(unless (break-paramz? paramz)<br> (raise-type-error 'call-with-break-parameterization "break parameterization" 0 paramz thunk))<br> (unless (and (procedure? thunk)<br> (procedure-arity-includes? thunk 0))<br>
(raise-type-error 'call-with-parameterization "procedure (arity 0)" 1 paramz thunk))<br> (begin0<br> (with-continuation-mark<br> break-enabled-key<br> (break-paramz-ref paramz 0)<br> (begin<br>
(check-for-break)<br> (thunk)))<br> (check-for-break)))<br><br>C:\Program Files\Racket\collects\racket\private\more-scheme.rkt: 158:2 <br> (define (call-with-break-parameterization paramz thunk)<br> (unless (break-paramz? paramz)<br>
(raise-type-error 'call-with-break-parameterization "break parameterization" 0 paramz thunk))<br> (unless (and (procedure? thunk)<br> (procedure-arity-includes? thunk 0))<br> (raise-type-error 'call-with-parameterization "procedure (arity 0)" 1 paramz thunk))<br>
(begin0<br> (with-continuation-mark<br> break-enabled-key<br> (break-paramz-ref paramz 0)<br> (begin<br> (check-for-break)<br> (thunk)))<br> (check-for-break)))<br><br>C:\Program Files\Racket\collects\compiler\cm.rkt: 168:5 <br>
(lambda ()<br> (begin0<br> (let ([out (open-output-file tmp-path #:exists 'truncate/replace)])<br> (dynamic-wind<br> void<br> (lambda ()<br> (call-with-break-parameterization bp (lambda () (proc out tmp-path))))<br>
(lambda ()<br> (close-output-port out))))<br> (set! ok? #t)))<br><br>C:\Program Files\Racket\collects\compiler\cm.rkt: 464:2 <br> (define (do-check)<br> (let* ([main-path orig-path]<br>
[alt-path (rkt->ss orig-path)]<br> [main-path-time (try-file-time main-path)]<br> [alt-path-time (and (not main-path-time)<br> (not (eq? alt-path main-path))<br>
(try-file-time alt-path))]<br> [path (if alt-path-time alt-path main-path)]<br> [path-time (or main-path-time alt-path-time)]<br> [path-zo-time (get-compiled-time mode path)])<br>
(cond<br> [(not path-time)<br> (trace-printf "~a does not exist" orig-path)<br> (or (hash-ref up-to-date orig-path #f)<br> (let ([stamp (cons path-zo-time<br> (delay (get-compiled-sha1 mode path)))])<br>
(hash-set! up-to-date main-path stamp)<br> (unless (eq? main-path alt-path)<br> (hash-set! up-to-date alt-path stamp))<br> stamp))]<br> [else<br> (let ([deps (read-deps path)])<br>
(define build<br> (cond<br> [(not (and (pair? deps) (equal? (version) (car deps))))<br> (lambda ()<br> (trace-printf "newer version...")<br> (maybe-compile-zo #f #f mode path orig-path read-src-syntax up-to-date))]<br>
[(> path-time path-zo-time)<br> (trace-printf "newer src...")<br> ;; If `sha1-only?', then `maybe-compile-zo' returns a #f or thunk:<br> (maybe-compile-zo sha1-only? deps mode path orig-path read-src-syntax up-to-date)]<br>
[(ormap<br> (lambda (p)<br> ;; (cons 'ext rel-path) => a non-module file (check date)<br> ;; rel-path => a module file name (check transitive dates)<br>
(define ext? (and (pair? p) (eq? 'ext (car p))))<br> (define d (main-collects-relative->path (if ext? (cdr p) p)))<br> (define t<br> (if ext?<br> (cons (try-file-time d) #f)<br>
(compile-root mode d up-to-date read-src-syntax #f)))<br> (and (car t)<br> (> (car t) path-zo-time)<br> (begin (trace-printf "newer: ~a (~a > ~a)..."<br>
d (car t) path-zo-time)<br> #t)))<br> (cddr deps))<br> ;; If `sha1-only?', then `maybe-compile-zo' returns a #f or thunk:<br>
(maybe-compile-zo sha1-only? deps mode path orig-path read-src-syntax up-to-date)]<br> [else #f]))<br> (cond<br> [(and build sha1-only?) #f]<br> [else<br> (when build (build))<br>
(let ([stamp (cons (get-compiled-time mode path)<br> (delay (get-compiled-sha1 mode path)))])<br> (hash-set! up-to-date main-path stamp)<br> (unless (eq? main-path alt-path)<br>
(hash-set! up-to-date alt-path stamp))<br> stamp)]))])))<br><br>C:\Program Files\Racket\collects\compiler\cm.rkt: 558:4 <br> (define (compilation-manager-load-handler path mod-name)<br> (cond [(not mod-name)<br>
(trace-printf "skipping: ~a mod-name ~s" path mod-name)]<br> [(not (or (file-exists? path)<br> (let ([p2 (rkt->ss path)])<br> (and (not (eq? path p2))<br>
(file-exists? p2)))))<br> (trace-printf "skipping: ~a file does not exist" path)]<br> [(or (null? (use-compiled-file-paths))<br> (not (equal? (car modes)<br>
(car (use-compiled-file-paths)))))<br> (trace-printf "skipping: ~a compiled-paths's first element changed; current value ~s, first element was ~s"<br> path <br>
(use-compiled-file-paths)<br> (car modes))]<br> [(not (eq? compilation-manager-load-handler<br> (current-load/use-compiled)))<br> (trace-printf "skipping: ~a current-load/use-compiled changed ~s"<br>
path (current-load/use-compiled))]<br> [(not (eq? orig-eval (current-eval)))<br> (trace-printf "skipping: ~a orig-eval ~s current-eval ~s"<br> path orig-eval (current-eval))]<br>
[(not (eq? orig-load (current-load)))<br> (trace-printf "skipping: ~a orig-load ~s current-load ~s"<br> path orig-load (current-load))]<br> [(not (eq? orig-registry<br>
(namespace-module-registry (current-namespace))))<br> (trace-printf "skipping: ~a orig-registry ~s current-registry ~s"<br> path orig-registry<br> (namespace-module-registry (current-namespace)))]<br>
[else<br> (trace-printf "processing: ~a" path)<br> (compile-root (car modes) path cache read-syntax #f)<br> (trace-printf "done: ~a" path)])<br> (default-handler path mod-name))<br>
<br>C:\Program Files\Racket\collects\compiler\cm.rkt: 464:2 <br> (define (do-check)<br> (let* ([main-path orig-path]<br> [alt-path (rkt->ss orig-path)]<br> [main-path-time (try-file-time main-path)]<br>
[alt-path-time (and (not main-path-time)<br> (not (eq? alt-path main-path))<br> (try-file-time alt-path))]<br> [path (if alt-path-time alt-path main-path)]<br>
[path-time (or main-path-time alt-path-time)]<br> [path-zo-time (get-compiled-time mode path)])<br> (cond<br> [(not path-time)<br> (trace-printf "~a does not exist" orig-path)<br>
(or (hash-ref up-to-date orig-path #f)<br> (let ([stamp (cons path-zo-time<br> (delay (get-compiled-sha1 mode path)))])<br> (hash-set! up-to-date main-path stamp)<br>
(unless (eq? main-path alt-path)<br> (hash-set! up-to-date alt-path stamp))<br> stamp))]<br> [else<br> (let ([deps (read-deps path)])<br> (define build<br> (cond<br>
[(not (and (pair? deps) (equal? (version) (car deps))))<br> (lambda ()<br> (trace-printf "newer version...")<br> (maybe-compile-zo #f #f mode path orig-path read-src-syntax up-to-date))]<br>
[(> path-time path-zo-time)<br> (trace-printf "newer src...")<br> ;; If `sha1-only?', then `maybe-compile-zo' returns a #f or thunk:<br> (maybe-compile-zo sha1-only? deps mode path orig-path read-src-syntax up-to-date)]<br>
[(ormap<br> (lambda (p)<br> ;; (cons 'ext rel-path) => a non-module file (check date)<br> ;; rel-path => a module file name (check transitive dates)<br>
(define ext? (and (pair? p) (eq? 'ext (car p))))<br> (define d (main-collects-relative->path (if ext? (cdr p) p)))<br> (define t<br> (if ext?<br> (cons (try-file-time d) #f)<br>
(compile-root mode d up-to-date read-src-syntax #f)))<br> (and (car t)<br> (> (car t) path-zo-time)<br> (begin (trace-printf "newer: ~a (~a > ~a)..."<br>
d (car t) path-zo-time)<br> #t)))<br> (cddr deps))<br> ;; If `sha1-only?', then `maybe-compile-zo' returns a #f or thunk:<br>
(maybe-compile-zo sha1-only? deps mode path orig-path read-src-syntax up-to-date)]<br> [else #f]))<br> (cond<br> [(and build sha1-only?) #f]<br> [else<br> (when build (build))<br>
(let ([stamp (cons (get-compiled-time mode path)<br> (delay (get-compiled-sha1 mode path)))])<br> (hash-set! up-to-date main-path stamp)<br> (unless (eq? main-path alt-path)<br>
(hash-set! up-to-date alt-path stamp))<br> stamp)]))])))<br><br><br><div class="gmail_quote">On Fri, Jul 23, 2010 at 8:18 PM, Matthew Flatt <span dir="ltr"><<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">That version is after I improved error message, but before the repair.<br>
<br>
It looks like the nightly build failed last night, which is why the<br>
repair wasn't in the build. We're working on that problem.<br>
<div><div></div><div class="h5"><br>
At Fri, 23 Jul 2010 16:11:37 -0600, Doug Williams wrote:<br>
> I downloaded the latest nightly build (version<br>
> 5.0.1.1--2010-07-21(ca106a41343233e3e2e1d6393b97ff6de67e01c4/a) [3m]). Now I<br>
> get the following error message:<br>
><br>
> cm: no SHA-1 for dependency: (collects #"scheme" #"base" #"lang"<br>
> #"reader.rkt")<br>
><br>
> Doug<br>
><br>
> On Thu, Jul 22, 2010 at 5:47 PM, Matthew Flatt <<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>> wrote:<br>
><br>
> > At Wed, 21 Jul 2010 17:09:03 -0600, Matthew Flatt wrote:<br>
> > > I've pushed a change to the git repo that I don't think will fix the<br>
> > > problem, but I think it will give us better information when you get a<br>
> > > chance to try it.<br>
> ><br>
> > The new error message provoked a bug report that led to a repair. So,<br>
> > please try the latest and let me know if the problem is fixed.<br>
> ><br>
> ><br>
</div></div></blockquote></div><br>