Commit 997f0915 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

2.015.1: Fix bug lp#779935 in load-source-op, introduced in 2.014.13.

https://bugs.launchpad.net/asdf/+bug/779935. Grrrrrrr. Add proper test.
parent f1575d4f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
  :licence "MIT"
  :description "Another System Definition Facility"
  :long-description "ASDF builds Common Lisp software organized into defined systems."
  :version "2.015" ;; to be automatically updated by bin/bump-revision
  :version "2.015.1" ;; to be automatically updated by bin/bump-revision
  :depends-on ()
  :components
  ((:file "asdf")
+3 −3
Original line number Diff line number Diff line
;;; -*- mode: common-lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
;;; This is ASDF 2.015: Another System Definition Facility.
;;; This is ASDF 2.015.1: Another System Definition Facility.
;;;
;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>.
@@ -104,7 +104,7 @@
         ;; "2.345.6" would be a development version in the official upstream
         ;; "2.345.0.7" would be your seventh local modification of official release 2.345
         ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
         (asdf-version "2.015")
         (asdf-version "2.015.1")
         (existing-asdf (fboundp 'find-system))
         (existing-version *asdf-version*)
         (already-there (equal asdf-version existing-version)))
@@ -2280,7 +2280,7 @@ recursive calls to traverse.")
(defmethod component-depends-on ((o load-source-op) (c component))
  (declare (ignorable o))
  (loop :with what-would-load-op-do = (component-depends-on 'load-op c)
    :for (op co) :in what-would-load-op-do
    :for (op . co) :in what-would-load-op-do
    :when (eq op 'load-op) :collect (cons 'load-source-op co)))

(defmethod operation-done-p ((o load-source-op) (c source-file))
+6 −4
Original line number Diff line number Diff line
;;; -*- Lisp -*-
(asdf:defsystem test-multiple
  :components
  ((:file "file1")))
  ((:file "file3")))

(asdf:defsystem test-multiple-too
  :components
  ((:file "file1")))
  ((:file "file1")
   (:file "file2" :depends-on ("file1"))
   (:file "file3" :depends-on ("file1" "file2"))))

(asdf:defsystem test-multiple-free
  :components
  ((:file "file1")))
  :depends-on (:test-multiple)
  :components ((:file "file4")))
+10 −7
Original line number Diff line number Diff line
@@ -3,14 +3,17 @@
(load-asdf)

(quit-on-error
 (setf asdf:*central-registry* '(*default-pathname-defaults*))
 (asdf:load-system 'test-multiple)
 (let* ((asd (asdf:merge-pathnames* (asdf:coerce-pathname "test-multiple.asd")
                                    *test-directory*))
        (asd2 (asdf:merge-pathnames* (asdf:coerce-pathname "../tmp/test-multiple-too.asd")
        (tmp (asdf:merge-pathnames* (asdf:coerce-pathname "../tmp/")
                                    *test-directory*))
        (file1 (asdf:compile-file-pathname* "file1")))
        (asd2 (asdf:merge-pathnames* (asdf:coerce-pathname "test-multiple-too.asd")
                                     tmp))
        (file4 (asdf:compile-file-pathname* "file4")))
   (setf asdf:*central-registry* `(*default-pathname-defaults* ,tmp))
   (assert (= 0 (asdf:run-shell-command
                 (format nil "/bin/ln -sf ~A ~A" asd asd2))))
   (asdf:load-system 'test-multiple-too)
   (assert (asdf::probe-file* file1))))
   (asdf:oos 'asdf:load-source-op 'test-multiple-too)
   (assert (symbol-value (find-symbol (string :*file3*) :test-package)))
   (asdf:load-system 'test-multiple-free)
   (assert (asdf::probe-file* file4))))