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 &lt;pair&gt;; given #&lt;path:compiled&gt;<br>
<br>and the backtrace is:<br><br>cdr: expects argument of type &lt;pair&gt;; given #&lt;path:compiled&gt;<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&#39; ensures that we don&#39;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 &#39;cm &quot;no SHA-1 for dependency: ~s&quot; 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 &#39;ext rel-path) =&gt; a non-module file, check source<br>                  ;; rel-path =&gt; a module file name, check cache<br>                  (let* ([ext? (and (pair? dep) (eq? &#39;ext (car dep)))]<br>
                         [p (main-collects-relative-&gt;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 &#39;cm &quot;cannot find external-dependency file: ~v&quot; p)]<br>                              [else #f]))]<br>                     [(or (hash-ref up-to-date (simple-form-path p) #f)<br>
                          ;; Use `compiler-root&#39; with `sha1-only?&#39; as #t:<br>                          (compile-root mode p up-to-date read-src-syntax #t))<br>                      =&gt; (lambda (sh)<br>                           (cons (cons (cdr sh) dep) l))]<br>
                     [must-exist?<br>                      ;; apparently, we&#39;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 &#39;cm &quot;no SHA-1 for dependency: ~s&quot; dep))<br>                           (cons sha1 dep)))<br>                       l)])<br>           ;; sort by sha1s so that order doesn&#39;t matter<br>
           (write (sort l string&lt;? #: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-&gt;main-collects-relative deps)<br>                     (map (lambda (x)<br>                            (cons &#39;ext (path-&gt;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 &#39;call-with-break-parameterization &quot;break parameterization&quot; 0 paramz thunk))<br>    (unless (and (procedure? thunk)<br>         (procedure-arity-includes? thunk 0))<br>
      (raise-type-error &#39;call-with-parameterization &quot;procedure (arity 0)&quot; 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 &#39;call-with-break-parameterization &quot;break parameterization&quot; 0 paramz thunk))<br>    (unless (and (procedure? thunk)<br>         (procedure-arity-includes? thunk 0))<br>      (raise-type-error &#39;call-with-parameterization &quot;procedure (arity 0)&quot; 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 &#39;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-&gt;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 &quot;~a does not exist&quot; 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 &quot;newer version...&quot;)<br>                (maybe-compile-zo #f #f mode path orig-path read-src-syntax up-to-date))]<br>
             [(&gt; path-time path-zo-time)<br>              (trace-printf &quot;newer src...&quot;)<br>              ;; If `sha1-only?&#39;, then `maybe-compile-zo&#39; 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 &#39;ext rel-path) =&gt; a non-module file (check date)<br>                 ;; rel-path =&gt; a module file name (check transitive dates)<br>
                 (define ext? (and (pair? p) (eq? &#39;ext (car p))))<br>                 (define d (main-collects-relative-&gt;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>                      (&gt; (car t) path-zo-time)<br>                      (begin (trace-printf &quot;newer: ~a (~a &gt; ~a)...&quot;<br>
                                           d (car t) path-zo-time)<br>                             #t)))<br>               (cddr deps))<br>              ;; If `sha1-only?&#39;, then `maybe-compile-zo&#39; 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 &quot;skipping:  ~a mod-name ~s&quot; path mod-name)]<br>            [(not (or (file-exists? path)<br>                      (let ([p2 (rkt-&gt;ss path)])<br>                        (and (not (eq? path p2))<br>
                             (file-exists? p2)))))<br>             (trace-printf &quot;skipping:  ~a file does not exist&quot; path)]<br>            [(or (null? (use-compiled-file-paths))<br>                 (not (equal? (car modes)<br>
                              (car (use-compiled-file-paths)))))<br>             (trace-printf &quot;skipping:  ~a compiled-paths&#39;s first element changed; current value ~s, first element was ~s&quot;<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 &quot;skipping:  ~a current-load/use-compiled changed ~s&quot;<br>
                           path (current-load/use-compiled))]<br>            [(not (eq? orig-eval (current-eval)))<br>             (trace-printf &quot;skipping:  ~a orig-eval ~s current-eval ~s&quot;<br>                           path orig-eval (current-eval))]<br>
            [(not (eq? orig-load (current-load)))<br>             (trace-printf &quot;skipping:  ~a orig-load ~s current-load ~s&quot;<br>                           path orig-load (current-load))]<br>            [(not (eq? orig-registry<br>
                       (namespace-module-registry (current-namespace))))<br>             (trace-printf &quot;skipping:  ~a orig-registry ~s current-registry ~s&quot;<br>                           path orig-registry<br>                           (namespace-module-registry (current-namespace)))]<br>
            [else<br>             (trace-printf &quot;processing: ~a&quot; path)<br>             (compile-root (car modes) path cache read-syntax #f)<br>             (trace-printf &quot;done: ~a&quot; 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-&gt;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 &quot;~a does not exist&quot; 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 &quot;newer version...&quot;)<br>                (maybe-compile-zo #f #f mode path orig-path read-src-syntax up-to-date))]<br>
             [(&gt; path-time path-zo-time)<br>              (trace-printf &quot;newer src...&quot;)<br>              ;; If `sha1-only?&#39;, then `maybe-compile-zo&#39; 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 &#39;ext rel-path) =&gt; a non-module file (check date)<br>                 ;; rel-path =&gt; a module file name (check transitive dates)<br>
                 (define ext? (and (pair? p) (eq? &#39;ext (car p))))<br>                 (define d (main-collects-relative-&gt;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>                      (&gt; (car t) path-zo-time)<br>                      (begin (trace-printf &quot;newer: ~a (~a &gt; ~a)...&quot;<br>
                                           d (car t) path-zo-time)<br>                             #t)))<br>               (cddr deps))<br>              ;; If `sha1-only?&#39;, then `maybe-compile-zo&#39; 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">&lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt;</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&#39;t in the build. We&#39;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>
&gt; I downloaded the latest nightly build (version<br>
&gt; 5.0.1.1--2010-07-21(ca106a41343233e3e2e1d6393b97ff6de67e01c4/a) [3m]). Now I<br>
&gt; get the following error message:<br>
&gt;<br>
&gt; cm: no SHA-1 for dependency: (collects #&quot;scheme&quot; #&quot;base&quot; #&quot;lang&quot;<br>
&gt; #&quot;reader.rkt&quot;)<br>
&gt;<br>
&gt; Doug<br>
&gt;<br>
&gt; On Thu, Jul 22, 2010 at 5:47 PM, Matthew Flatt &lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; At Wed, 21 Jul 2010 17:09:03 -0600, Matthew Flatt wrote:<br>
&gt; &gt; &gt; I&#39;ve pushed a change to the git repo that I don&#39;t think will fix the<br>
&gt; &gt; &gt; problem, but I think it will give us better information when you get a<br>
&gt; &gt; &gt; chance to try it.<br>
&gt; &gt;<br>
&gt; &gt; The new error message provoked a bug report that led to a repair. So,<br>
&gt; &gt; please try the latest and let me know if the problem is fixed.<br>
&gt; &gt;<br>
&gt; &gt;<br>
</div></div></blockquote></div><br>