Commit 32355c3f authored by Robert P. Goldman's avatar Robert P. Goldman
parents cfa4b2d5 c0fe7767
......@@ -163,6 +163,11 @@ debian-package: mrproper
: $${RELEASE:="$$(git tag -l '3.[0-9].[0-9]' | tail -n 1)"} ; echo building package version $$RELEASE ; \
git-buildpackage --git-debian-branch=release --git-upstream-branch=release --git-upstream-tag=$$RELEASE --git-tag --git-retag --git-ignore-branch
debian-package-from-master: mrproper
: $${RELEASE:="$$(git tag -l '3.[0-9].[0-9]' | tail -n 1)"} ; echo building package version $$RELEASE ; \
git-buildpackage --git-debian-branch=master --git-upstream-branch=master --git-upstream-tag=$$RELEASE --git-tag --git-retag --git-ignore-branch
# Replace SBCL's ASDF with the current one. -- NOT recommended now that SBCL has ASDF2.
# for casual users, just use (asdf:load-system :asdf)
replace-sbcl-asdf: build/asdf.lisp
......
......@@ -74,7 +74,7 @@
:licence "MIT"
:description "Another System Definition Facility"
:long-description "ASDF builds Common Lisp software organized into defined systems."
:version "3.0.2.4" ;; to be automatically updated by make bump-version
:version "3.0.2.5" ;; to be automatically updated by make bump-version
:depends-on ()
#+asdf3 :encoding #+asdf3 :utf-8
;; For most purposes, asdf itself specially counts as a builtin system.
......
cl-asdf (2:3.0.2.4-1) unstable; urgency=low
UIOP:DIRECTORY* fixed to NOT follow symbolic links on LispWorks.
Fix handling of :at key in :read-file-form.
Fix package issue for system-definition-error (lp #1206173).
Some docstring updates. Also documentation updates.
-- Francois-Rene Rideau <fare@tunes.org> Tue, 03 Sep 2013 12:17:21 -0500
cl-asdf (2:3.0.2-1) unstable; urgency=low
Improve support for CMUCL, ABCL, restore MCL support.
......
......@@ -115,7 +115,8 @@
<tt>:asdf</tt>, <tt>"ASDF"</tt> or <tt>'asdf</tt> as an argument.)
All of these implementations provide at least ASDF 2,
and a few of them aready provide ASDF 3
(<tt>abcl</tt>, <tt>allegro</tt>, <tt>ccl</tt>, <tt>cmucl</tt>, <tt>ecl</tt>).
(<tt>abcl</tt>, <tt>allegro</tt>, <tt>ccl</tt>, <tt>cmucl</tt>,
<tt>ecl</tt>, <tt>sbcl</tt>).
Hopefully soon all will follow suit;
but in the meantime, you can download ASDF 3,
and use <tt>(asdf:load-system :asdf)</tt>
......@@ -324,7 +325,8 @@ Peter Graves <gnooth@gmail.com>
<h3>What is happening</h3>
<dl>
<dt>Summer 2013</dt>
<dd>Fran&ccedil;ois-Ren&eacute; Rideau has resigned as maintainer.
<dd>Fran&ccedil;ois-Ren&eacute; Rideau has resigned as maintainer
after releasing ASDF 3.0.1.
Robert P. Goldman is interim maintainer until someone more gifted,
charming, dedicated, and better-looking can be secured to fill the role.</dd>
<dt>In February 2013</dt>
......
;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
;;; This is ASDF 3.0.2.4: Another System Definition Facility.
;;; This is ASDF 3.0.2.5: Another System Definition Facility.
;;;
;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>.
......
......@@ -27,7 +27,7 @@ Some constraints:
#:leave-test #:def-test-system
#:action-name #:in-plan-p
#:test-source #:test-fasl #:resolve-output #:output-location
#:quietly))
#:quietly #:join-namestrings))
(in-package :asdf-test)
......@@ -601,6 +601,12 @@ is bound, write a message and exit on an error. If
(assert (asymval '#:*file1* :test-package))
(assert (asymval '#:*file3* :test-package))))
(defun join-namestrings (namestrings)
(with-output-to-string (s)
(loop :with separator = (acall :inter-directory-separator)
:for (n . morep) :on namestrings
:do (format s "~A~@[~C~]" n (and morep separator)))))
;; These are shorthands for interactive debugging of test scripts:
(!a
common-lisp-user::debug-asdf debug-asdf
......
;;; -*- Lisp -*-
(in-package :asdf)
(use-package :asdf-test)
#+gcl2.6 (defmacro with-standard-io-syntax (&body body) `(progn ,@body))
......@@ -63,52 +61,54 @@
:if-does-not-exist :create)
(format s "(defsystem :foo~D)~%" i))))
(progn
(assert-equal (asdf::parse-output-translations-string "/foo:/bar::/baz:/quux")
'(:output-translations ("/foo" "/bar") :inherit-configuration
("/baz" "/quux")))
(assert-equal (asdf::parse-output-translations-string "/:")
'(:output-translations ("/" nil) :ignore-inherited-configuration))
(assert-equal (asdf::parse-output-translations-string "/::")
'(:output-translations ("/" nil) :inherit-configuration))
(assert-equal (asdf::parse-output-translations-string "/:/")
'(:output-translations ("/" "/") :ignore-inherited-configuration))
(assert-equal (asdf::parse-output-translations-string
"(:output-translations (\"/\" \"/\") :ignore-inherited-configuration)")
'(:output-translations ("/" "/") :ignore-inherited-configuration))
(create-asd-files)
(create-conf-files)
(format t "~&subdirectories of dir2/: ~S~%" (subdirectories (under-tmp-directory "dir2/")))
(assert-equal 2 (length (subdirectories (under-tmp-directory "dir2/"))))
(format t "~&subdirectories of dir5/: ~S~%" (subdirectories (under-tmp-directory "dir5/")))
(assert-equal 2 (length (subdirectories (under-tmp-directory "dir5/"))))
(initialize-source-registry
`(:source-registry (:include ,(under-tmp-directory "conf.d/"))
(:include ,(under-tmp-directory "dir5/"))
(:include ,(under-tmp-directory "dir8/"))
(:include ,(under-tmp-directory "dir9/dira/"))
:ignore-inherited-configuration))
(format t "~&Source Registry: ~S~%"
asdf::*source-registry*)
(assert (find-system :foo0 nil))
(assert (find-system :foo1 nil))
(assert (find-system :foo2 nil))
(assert (find-system :foo3 nil))
(assert (find-system :foo4 nil))
(assert (not (find-system :foo5 nil)))
(assert (find-system :foo6 nil))
(assert (find-system :foo7 nil))
(assert (find-system :foo8 nil))
(assert (not (find-system :foo9 nil)))
(format t "~&A: ~S~%B: ~S~%"
(namestring (system-relative-pathname :foo3 "bar/baz.lisp"))
(under-tmp-directory "dir2/bar/baz.lisp"))
(assert-equal (namestring (system-relative-pathname :foo3 "bar/baz.lisp"))
(under-tmp-directory "dir2/bar/baz.lisp")))
(assert-equal (asdf::parse-output-translations-string
(join-namestrings '("/foo" "/bar" "" "/baz" "/quux")))
'(:output-translations ("/foo" "/bar") :inherit-configuration
("/baz" "/quux")))
(assert-equal (asdf::parse-output-translations-string
(join-namestrings '("/" "")))
'(:output-translations ("/" nil) :ignore-inherited-configuration))
(assert-equal (asdf::parse-output-translations-string
(join-namestrings '("/" "" "")))
'(:output-translations ("/" nil) :inherit-configuration))
(assert-equal (asdf::parse-output-translations-string
(join-namestrings '("/" "/")))
'(:output-translations ("/" "/") :ignore-inherited-configuration))
(assert-equal (asdf::parse-output-translations-string
"(:output-translations (\"/\" \"/\") :ignore-inherited-configuration)")
'(:output-translations ("/" "/") :ignore-inherited-configuration))
(create-asd-files)
(create-conf-files)
(format t "~&subdirectories of dir2/: ~S~%" (subdirectories (under-tmp-directory "dir2/")))
(assert-equal 2 (length (subdirectories (under-tmp-directory "dir2/"))))
(format t "~&subdirectories of dir5/: ~S~%" (subdirectories (under-tmp-directory "dir5/")))
(assert-equal 2 (length (subdirectories (under-tmp-directory "dir5/"))))
(initialize-source-registry
`(:source-registry (:include ,(under-tmp-directory "conf.d/"))
(:include ,(under-tmp-directory "dir5/"))
(:include ,(under-tmp-directory "dir8/"))
(:include ,(under-tmp-directory "dir9/dira/"))
:ignore-inherited-configuration))
(format t "~&Source Registry: ~S~%"
asdf::*source-registry*)
(assert (find-system :foo0 nil))
(assert (find-system :foo1 nil))
(assert (find-system :foo2 nil))
(assert (find-system :foo3 nil))
(assert (find-system :foo4 nil))
(assert (not (find-system :foo5 nil)))
(assert (find-system :foo6 nil))
(assert (find-system :foo7 nil))
(assert (find-system :foo8 nil))
(assert (not (find-system :foo9 nil)))
(format t "~&A: ~S~%B: ~S~%"
(namestring (system-relative-pathname :foo3 "bar/baz.lisp"))
(under-tmp-directory "dir2/bar/baz.lisp"))
(assert-equal (namestring (system-relative-pathname :foo3 "bar/baz.lisp"))
(under-tmp-directory "dir2/bar/baz.lisp"))
......@@ -5,11 +5,17 @@
(defparameter asd2 (subpathname tmp "test-multiple-too.asd"))
(defparameter file4 (test-fasl "file4"))
(setf *central-registry* `(,*test-directory* ,tmp))
(run-program
(format nil "ln -sf ~A ~A"
(native-namestring asd)
(native-namestring asd2)))
(oos 'load-source-op 'test-multiple-too)
;; Don't rely on ln -s on Windows
(cond
((os-unix-p)
(run-program
(format nil "ln -sf ~A ~A"
(native-namestring asd)
(native-namestring asd2)))
(oos 'load-source-op 'test-multiple-too))
(t
(oos 'load-source-op 'test-multiple)))
(assert (asymval :*file3* :test-package))
(load-system 'test-multiple-free)
(assert (probe-file* file4))
;; -*- Lisp -*-
(declaim (optimize (debug 3) (safety 3)))
(DBG "Testing echo ok 1 via run-program as a list")
(assert-equal '("ok 1") (run-program '("echo" "ok" "1") :output :lines))
(DBG "Testing echo ok 1 via run-program as a string")
(assert-equal '("ok 1") (run-program "echo ok 1" :output :lines))
(unless (os-unix-p)
(leave-test "The rest of this test is only supposed to work on Unix"))
;; (unless (os-unix-p) (leave-test "The rest of this test is only supposed to work on Unix"))
;;; test asdf run-shell-command function
(setf *verbose-out* nil)
(assert-equal 1 (run-shell-command "false"))
(DBG "Testing true via run-shell-command")
(assert-equal 0 (run-shell-command "true"))
(DBG "Testing false via run-shell-command")
(assert-equal 1 (run-shell-command "false"))
(DBG "Testing bad shell command via run-shell-command")
(unless (< 0 (run-shell-command "./bad-shell-command"))
(error "Failed to capture exit status indicating shell command failure."))
(unless (equal 0 (run-shell-command "./good-shell-command"))
(error "Failed to capture exit status indicating shell command failure."))
#+asdf-unix
(progn
(DBG "Testing good shell command in current directory via run-shell-command")
(unless (equal 0 (run-shell-command "./good-shell-command"))
(error "Failed to capture exit status indicating shell command success.")))
;; On Windows, normalize away CRLF into jut the unixy LF.
(defun remove-cr (x) (remove (code-char 13) x))
(DBG "Testing awkward legacy output capture via run-shell-command")
(let ((ok1 (format nil "; $ echo ok 1~%ok 1~%")))
(assert-equal
(with-output-to-string (s)
(let ((*verbose-out* s))
(run-shell-command "echo ~A 1" "ok")))
(remove-cr
(with-output-to-string (s)
(let ((*verbose-out* s))
(run-shell-command "echo ~A 1" "ok"))))
ok1)
#-ecl
(assert-equal
(with-output-to-string (s)
(let ((*verbose-out* t)
(*standard-output* s))
(let ((status (run-shell-command "echo ok ~D" 1)))
(unless (zerop status)
(error "Didn't get good exit status.")))))
(remove-cr
(with-output-to-string (s)
(let ((*verbose-out* t)
(*standard-output* s))
(let ((status (run-shell-command "echo ok ~D" 1)))
(unless (zerop status)
(error "Didn't get good exit status."))))))
ok1))
;; NB1: run-shell-command is deprecated. Use run-program instead.
;; NB2: we do NOT support stderr capture to *verbose-out* anymore in run-shell-command.
;; If you want 2>&1 redirection, you know where to find it.
(assert-equal '("ok 1") (run-program "echo ok 1" :output :lines))
(assert-equal "ok 1" (run-program '("echo" "ok 1") :output :line))
(assert-equal '(:ok 1) (run-program '("echo" ":ok 1") :output :forms))
(assert-equal (format nil "ok 1~%") (run-program '("echo" "ok 1") :output :string))
(assert-equal (format nil "ok 1~%") (remove-cr (run-program '("echo" "ok 1") :output :string)))
;; this test checks for a problem there was in allegro -- :output :interactive
;; would try to open T as a stream for INPUT.
(assert-equal 0 (run-program "true" :force-shell t :output :interactive))
......
......@@ -42,16 +42,17 @@
(assert
(not (version-satisfies (asdf-version) "666")))
(assert-pathnames-equal
(split-native-pathnames-string "foo:bar")
(split-native-pathnames-string (join-namestrings '("foo" "bar")))
'(#p"foo" #p"bar"))
(assert-pathnames-equal
(split-native-pathnames-string "foo:bar" :ensure-directory t)
(split-native-pathnames-string (join-namestrings '("foo" "bar")) :ensure-directory t)
'(#p"foo/" #p"bar/"))
(assert-pathnames-equal
(split-native-pathnames-string "/foo:/bar" :want-absolute t)
(split-native-pathnames-string (join-namestrings '("/foo" "/bar")) :want-absolute t)
'(#p"/foo" #p"/bar"))
(assert-pathnames-equal
(split-native-pathnames-string "/foo:/bar" :want-absolute t :ensure-directory t)
(split-native-pathnames-string (join-namestrings '("/foo" "/bar"))
:want-absolute t :ensure-directory t)
'(#p"/foo/" #p"/bar/"))
(assert-equal
(mapcar 'location-function-p
......
......@@ -316,9 +316,8 @@ EXTERNAL-FORMAT for the stream passed to the OUTPUT processor."
#-(or allegro clozure) (list "cmd" "/c" command))
#+os-windows
(list
#+(or allegro clozure) (escape-windows-command command)
#-(or allegro clozure) command)))
#+(and clozure os-windows) (command (list command))
#+allegro (escape-windows-command command)
#-allegro command)))
(process*
(multiple-value-list
#+allegro
......
......@@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO
;; "3.4.5.67" would be a development version in the official upstream of 3.4.5.
;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
(asdf-version "3.0.2.4")
(asdf-version "3.0.2.5")
(existing-version (asdf-version)))
(setf *asdf-version* asdf-version)
(when (and existing-version (not (equal asdf-version existing-version)))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment