-* 2.6.134: fix u (abcl, ccl, clisp, cmucl)
+* Bug found by fe[nl]ix: infinite loop if the definitions in an asd file
+ are not in strict dependency order.
+* fix upgrade on (abcl, clisp, cmucl)
+** Extract minimal test case
* Learn to use cl-grid-test, to make sure ASDF changes don't break stuff,
and that breakage gets fixed quickly.
* Test stassats's thing:
:licence "MIT"
:description "Another System Definition Facility"
:long-description "ASDF builds Common Lisp software organized into defined systems."
- :version "2.26.139" ;; to be automatically updated by make bump-version
+ :version "2.26.140" ;; to be automatically updated by make bump-version
:depends-on ()
:components ((:module "build" :components ((:file "asdf"))))
:in-order-to (#+asdf2.27 (compile-op (monolithic-load-concatenated-source-op asdf/defsystem))))
(check-type pathname (or null string pathname))
(absolutize-pathnames
(list pathname (load-pathname) *default-pathname-defaults* (getcwd))
- :resolve-symlinks *resolve-symlinks*))
+ :type :directory :resolve-symlinks *resolve-symlinks*))
;;; Component class
@macro &body
&body
@end macro
+@macro &curly
+{
+@end macro
+@macro &ylruc
+}
+@end macro
@c for install-info
@dircategory Software development
(find-symbol (string :*asdf-revision*) :asdf)))))
(etypecase ver
(string ver)
- (cons (format nil "~{~D~^.~}" ver))
+ (cons (with-output-to-string (s)
+ (loop for (n . m) on ver do (princ n s) (when m (princ "." s)))))
(null "1.0"))))
@end lisp
;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*-
-;;; This is ASDF 2.26.139: Another System Definition Facility.
+;;; This is ASDF 2.26.140: Another System Definition Facility.
;;;
;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>.
;;; -*- Lisp -*-
#+lispworks (lispworks:load-all-patches)
-(load "script-support.lisp")
+(load (make-pathname :name "script-support" :defaults *load-pathname*))
(load-asdf)
#+ecl (require :cmp)
+++ /dev/null
-;;; -*- Lisp -*-
-
-(defsystem :test-system-pathnames
- :pathname "sources/level1"
- :components
- ((:file "file1")
- (:file "file2" :pathname "level2/file2")
- (:static-file "level2/static.file")
- (:static-file "test-tmp.cl")))
;;; -*- Lisp -*-
+(trace parse-unix-namestring asdf::determine-system-directory)
+(defsystem :test-system-pathnames
+ :pathname "sources/level1"
+ :components
+ ((:file "file1")
+ (:file "file2" :pathname "level2/file2")
+ (:static-file "level2/static.file")
+ (:static-file "test-tmp.cl")))
-(progn
- (asdf:load-system 'test-system-pathnames)
- (assert (find-package :test-package)
- () "package test-package not found")
- (assert (find-symbol (symbol-name '*file-tmp*) :test-package)
- () "symbol `*file-tmp*` not found")
- (assert (symbol-value (find-symbol (symbol-name '*file-tmp*) :test-package))
- () "symbol `*file-tmp*` has wrong value")
+(load-system 'test-system-pathnames)
- (assert (probe-file
- (apply-output-translations
- (merge-pathnames*
- (make-pathname*
- :name "file1"
- :type (compile-file-type)
- :directory '(:relative "sources" "level1"))
- *test-directory*)))
- () "compiled file not found")
+(assert (find-package :test-package)
+ () "package test-package not found")
+(assert (find-symbol (symbol-name '*file-tmp*) :test-package)
+ () "symbol `*file-tmp*` not found")
+(assert (symbol-value (find-symbol (symbol-name '*file-tmp*) :test-package))
+ () "symbol `*file-tmp*` has wrong value")
- (assert (find-symbol (symbol-name '*file-tmp2*) :test-package) nil
- "symbol `*file-tmp2*` not found")
- (assert (symbol-value (find-symbol (symbol-name '*file-tmp2*) :test-package))
- nil "symbol `*file-tmp2*` has wrong value")
+(assert (probe-file (test-fasl "sources/level1/file1"))
+ () "compiled file not found")
- (assert (probe-file
- (apply-output-translations
- (merge-pathnames*
- (make-pathname*
- :name "file2"
- :type (compile-file-type)
- :directory '(:relative "sources" "level1" "level2")))))
- nil "compiled file not found"))
+(assert (find-symbol (symbol-name '*file-tmp2*) :test-package) nil
+ "symbol `*file-tmp2*` not found")
+(assert (symbol-value (find-symbol (symbol-name '*file-tmp2*) :test-package))
+ () "symbol `*file-tmp2*` has wrong value")
+
+(assert (probe-file (test-fasl "sources/level1/level2/file2"))
+ () "compiled file not found")
;; "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.26.139")
+ (asdf-version "2.26.140")
(existing-asdf (find-class (find-symbol* :component :asdf nil) nil))
(existing-version *asdf-version*)
(already-there (equal asdf-version existing-version))
;; We usually try to do it only for the functions that need it,
;; which happens in asdf/upgrade - however, for ECL, we need this hammer,
;; (which causes issues in clisp)
- ,@(when (or supersede #+(or ecl (and gcl (not gcl-pre2.7))) t) ; XXX
+ ,@(when (or #-clisp supersede #+(or ecl (and gcl (not gcl-pre2.7))) t) ; XXX
`((undefine-function ',name)))
#-gcl ; gcl 2.7.0 notinline functions lose secondary return values :-(
,@(when (and #+ecl (symbolp name)) ; fails for setf functions on ecl