meta/pkg-build: fix potential problem with cycle detection

Also, correct typos and out-of-date information in comments that
serve as documentation.
This commit is contained in:
Matthew Flatt 2014-10-24 15:06:15 -06:00
parent fa64870b78
commit 8c9a9da525

View File

@ -45,10 +45,9 @@
;; - depend on packages that build successfully on their own ;; - depend on packages that build successfully on their own
;; - refer only to other packages in the snapshot and catalog ;; - refer only to other packages in the snapshot and catalog
;; (and, in particular, must not use PLaneT packages) ;; (and, in particular, must not use PLaneT packages)
;; - build without special system libraries (i.e., beyond the ones ;; - build without special system libraries
;; needed by `racket/draw`)
;; ;;
;; A successful build not not require that its declaraed dependencies ;; A successful build does not require that its declared dependencies
;; are complete if the needed packages end up installed, anyway, but ;; are complete if the needed packages end up installed, anyway, but
;; the declaraed dependencies are checked. ;; the declaraed dependencies are checked.
;; ;;
@ -61,11 +60,9 @@
(struct vm (host user dir name init-snapshot installed-snapshot)) (struct vm (host user dir name init-snapshot installed-snapshot))
;; Each VM must provide at least an ssh server and `tar`, it must have ;; Each VM must provide at least an ssh server and `tar`, and the
;; any system libraries installed that are needed for building ;; intent is that it is otherwise isolated (e.g., no network
;; (typically the libraries needed by `racket/draw`), and the intent ;; connection except to the host)
;; is that it is otherwise isolated (e.g., no network connection
;; except to the host)
(define (vbox-vm (define (vbox-vm
;; VirtualBox VM name: ;; VirtualBox VM name:
#:name name #:name name
@ -124,7 +121,7 @@
#:work-dir [given-work-dir (current-directory)] #:work-dir [given-work-dir (current-directory)]
;; Directory content: ;; Directory content:
;; ;;
;; "installer" --- directly holding installer downloaded ;; "installer/" --- holds installer downloaded
;; from the snapshot site ;; from the snapshot site
;; ;;
;; "install-list.rktd" --- list of packages found in ;; "install-list.rktd" --- list of packages found in
@ -145,18 +142,18 @@
;; => up-to-date and successful, ;; => up-to-date and successful,
;; "docs/P-adds.rktd" listing of docs, exes, etc., and ;; "docs/P-adds.rktd" listing of docs, exes, etc., and
;; "success/P.txt" records success; ;; "success/P.txt" records success;
;; "install/P.txt" records installation ;; "install/P.txt" records installation;
;; "deps/P.txt" record dependency-checking failure; ;; "deps/P.txt" records dependency-checking failure
;; * pkgs/P.orig-CHECKSUM matching archived catalog ;; * pkgs/P.orig-CHECKSUM matching archived catalog
;; + fail/P.txt ;; + fail/P.txt
;; => up-to-date and failed; ;; => up-to-date and failed;
;; "install/P.txt" may record installation success ;; "install/P.txt" may record installation success
;; ;;
;; "dumpster" --- saved builds of failed packages if the ;; "dumpster/" --- saved builds of failed packages if the
;; package at least installs; maybe the attempt built ;; package at least installs; maybe the attempt built
;; some documentation ;; some documentation
;; ;;
;; "doc" --- unpacked docs with non-conflicting ;; "doc/" --- unpacked docs with non-conflicting
;; packages installed ;; packages installed
;; "all-doc.tgz" --- "doc", still packed ;; "all-doc.tgz" --- "doc", still packed
;; ;;
@ -535,11 +532,11 @@
null null
(let ([pkg (car l)]) (let ([pkg (car l)])
(cond (cond
[(member pkg cycle-stack) [(member (find! cycles pkg) cycle-stack)
;; Hit a package while processing its dependencies; ;; Hit a package while processing its dependencies;
;; everything up to that package on the stack is ;; everything up to that package on the stack is
;; mutually dependent: ;; mutually dependent:
(for ([s (in-list (member pkg (reverse cycle-stack)))]) (for ([s (in-list (member (find! cycles pkg) (reverse cycle-stack)))])
(union! cycles pkg s)) (union! cycles pkg s))
(loop (cdr l) seen cycle-stack)] (loop (cdr l) seen cycle-stack)]
[(set-member? seen pkg) [(set-member? seen pkg)