diff --git a/asdf.asd b/asdf.asd index 06bab9e578659fc779240ab59e3222c61d33fe84..26bb02af6af48257454d7e1bf020b4b38753bbf5 100644 --- a/asdf.asd +++ b/asdf.asd @@ -75,7 +75,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "3.1.4.3" ;; to be automatically updated by make bump-version + :version "3.1.4.4" ;; to be automatically updated by make bump-version :depends-on () #+asdf3 :encoding #+asdf3 :utf-8 :class #.(if (find-class 'package-inferred-system nil) 'package-inferred-system 'system) diff --git a/bundle.lisp b/bundle.lisp index 72f4a6ef396f2f83630357629ba8c2154652e730..b6d40edaa19bf41a7938d07c360ab62861d3164c 100644 --- a/bundle.lisp +++ b/bundle.lisp @@ -160,10 +160,10 @@ itself.")) ;; operation on a system and its dependencies ((member :dll :lib :shared-library :static-library :program :object :program) (compile-file-type :type bundle-type)) ((member :image) #-allegro "image" #+allegro "dxl") - ((member :dll :shared-library) (cond ((os-macosx-p) "dylib") ((os-unix-p) "so") ((os-windows-p) "dll"))) - ((member :lib :static-library) (cond ((os-unix-p) "a") - ((os-windows-p) (if (featurep '(:or :mingw32 :mingw64)) "a" "lib")))) - ((eql :program) (cond ((os-unix-p) nil) ((os-windows-p) "exe"))))) + ((member :dll :shared-library) (os-cond ((os-macosx-p) "dylib") ((os-unix-p) "so") ((os-windows-p) "dll"))) + ((member :lib :static-library) (os-cond ((os-unix-p) "a") + ((os-windows-p) (if (featurep '(:or :mingw32 :mingw64)) "a" "lib")))) + ((eql :program) (os-cond ((os-unix-p) nil) ((os-windows-p) "exe"))))) (defun bundle-output-files (o c) (let ((bundle-type (bundle-type o))) diff --git a/doc/index.html b/doc/index.html index 6b3f65bc3627024ee2f45ac40c196a3179a5509b..a430cc9b917159f5d209739088dee20f95053baa 100644 --- a/doc/index.html +++ b/doc/index.html @@ -9,7 +9,7 @@ <body> <div class="header"> <span class="logo"> - <a href="http://common-lisp.net/project/asdf/" title="ASDF Homepage"> + <a href="https://common-lisp.net/project/asdf/" title="ASDF Homepage"> <img src="lisp-logo120x80.png" title="ASDF homepage" width="100" alt="Lisp Lizzard" /> </a> </span> @@ -84,7 +84,7 @@ call other programs and parse their output, compile Lisp code, muffle conditions, or configure Lisp software. See its - <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=uiop/README;hb=HEAD;js=1">README</a>. + <a href="https://gitlab.common-lisp.net/asdf/asdf/tree/master/uiop/README.md">README.md</a>. </p> <p><tt>uiop</tt> is distributed as part of the <tt>ASDF</tt>, its source code is transcluded in the single-file <tt>asdf.lisp</tt> being distributed @@ -101,7 +101,7 @@ For that, you want <a href="http://quicklisp.org/"><tt>Quicklisp</tt></a>, that builds upon ASDF, and is great for pulling and installing tarballs of packages you may depend upon; - we also recommend <a href="http://common-lisp.net/project/clbuild/"><tt>clbuild</tt></a>, + we also recommend <a href="https://common-lisp.net/project/clbuild/"><tt>clbuild</tt></a>, that now builds upon Quicklisp, as a great tool for pulling from version control packages you need to modify or want to contribute to. We recommend you should <em>not</em> use <tt>asdf-install</tt> anymore, @@ -113,17 +113,17 @@ </p><p> If you're unsatisfied with ASDF, beside helping with our - <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=TODO">TODO list</a>, + <a href="https://gitlab.common-lisp.net/asdf/asdf/tree/master/TODO">TODO list</a>, you might be interested in other build systems for Common-Lisp: <ul> <li>Alastair Bridgewater's small and simple one-package-per-file <a href="https://bugs.launchpad.net/asdf/+bug/1230368"><tt>quick-build</tt></a> (also reimplemented as the ASDF extension - <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf-package-system.git" + <a href="https://gitlab.common-lisp.net/asdf/asdf-package-system" ><tt>asdf-package-system</tt></a>; similar to <tt>faslpath</tt> below). </li> <li>François-René Rideau's - <a href="http://common-lisp.net/project/xcvb/"><tt>XCVB</tt></a> + <a href="https://common-lisp.net/project/xcvb/"><tt>XCVB</tt></a> (building object and image files deterministically and in parallel, but not actively maintained since 2012; thanks to its new build model, ASDF 3 could conceivably be modified @@ -182,8 +182,8 @@ <th align="left">Will provide ASDF 3</th> <th align="left">Unmaintained</th></tr> <tr><th align="left">Free</th> - <td align="left"><tt>abcl ccl clisp cmucl ecl mkcl sbcl</tt></td> - <td align="left"><tt>clasp gcl</tt></td> + <td align="left"><tt>abcl ccl clasp clisp cmucl ecl mkcl sbcl</tt></td> + <td align="left"><tt>gcl</tt></td> <td align="left"><tt>mcl xcl</tt></td></tr> <tr><th align="left">Proprietary</th> <td align="left"><tt>allegro</tt></td> @@ -192,7 +192,7 @@ </table> <p> To deal with an implementation that doesn't yet provide ASDF 3, - we provide <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=tools/install-asdf.lisp">a script</a> that can install ASDF 3 + we provide <a href="https://common-lisp.net/asdf/asdf/tree/master/tools/install-asdf.lisp">a script</a> that can install ASDF 3 where your implementation goes looking for it when you <tt>(require "asdf")</tt> . </p><p> @@ -246,7 +246,7 @@ XCL (Peter Graves) <gnooth@gmail.com> <li><a href="asdf.html">as one HTML file</a></li> <li><a href="asdf/">split into one HTML file per section</a></li> <li><a href="asdf.pdf">as a PDF document</a></li> - <li><a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=doc/asdf.texinfo">as texinfo source</a></li> + <li><a href="https://gitlab.common-lisp.net/asdf/asdf/tree/master/doc/asdf.texinfo">as texinfo source</a></li> </ul> <p>Regarding the internal design of ASDF in general, and the work we did on ASDF 3, @@ -254,7 +254,7 @@ XCL (Peter Graves) <gnooth@gmail.com> <cite><a href="http://fare.tunes.org/files/asdf3/asdf3-2014.html" >ASDF 3, or Why Lisp is Now an Acceptable Scripting Language</a></cite> (<a href="http://fare.tunes.org/files/asdf3/asdf3-2014.pdf">PDF</a>, - <a href="http://github.com/fare/asdf3-2013">git</a>). + <a href="https://github.com/fare/asdf3-2013">git</a>). The shorter version (8 pages), submitted to <a href="http://www.european-lisp-symposium.org/">ELS 2014</a>, focuses on ASDF 3 and misses historical and technical information @@ -270,7 +270,7 @@ XCL (Peter Graves) <gnooth@gmail.com> <a href="http://www.international-lisp-conference.org/2010/index">ILC 2010</a>, <cite><a href="ilc2010draft.pdf" >Evolving ASDF: More Cooperation, Less Coordination</a></cite> - (<a href="http://common-lisp.net/gitweb?p=projects/asdf/ilc2010.git">git</a>). + (<a href="https://gitlab.common-lisp.net/asdf/ilc2010">git</a>). </p> <p>Finally, while the manual covers all the basics, some advanced or new features remain underdocumented. @@ -289,59 +289,55 @@ XCL (Peter Graves) <gnooth@gmail.com> </p> <ul> <li>download just the latest <em>release</em> source for - <!--<a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob_plain;tag=RELEASE;f=asdf.lisp">asdf.lisp</a>,--> - <a href="http://common-lisp.net/project/asdf/asdf.lisp">asdf.lisp</a>; + <a href="https://common-lisp.net/project/asdf/asdf.lisp">asdf.lisp</a>; </li> <li>download the latest <em>release</em> - <!--<a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;tag=RELEASE;a=snapshot;sf=tgz">tarball</a>,--> - <a href="http://common-lisp.net/project/asdf/asdf.tar.gz">tarball</a> + <a href="https://common-lisp.net/project/asdf/asdf.tar.gz">tarball</a> to get all bells and whistles; </li> <li>pull the latest <em>development</em> tree from our git repository - <pre>git clone git://common-lisp.net/projects/asdf/asdf.git</pre> + <pre>git clone https://gitlab.common-lisp.net/asdf/asdf.git</pre> (note that our "master" branch is for current development; get our "release" branch for the latest stable release. Run <tt>make</tt> to create <tt>build/asdf.lisp</tt>); </li> <li>browse the latest <em>development</em> tree from our git repository: - <a href="http://common-lisp.net/gitweb/?p=asdf/asdf.git;a=summary;js=1">gitweb</a> - <!-- <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git">gitweb</a> --> + <a href="https://gitlab.common-lisp.net/asdf/asdf">gitlab</a> </li> <li>download the tarball of a past release: - <a href="http://common-lisp.net/project/asdf/archives/">archives</a> + <a href="https://common-lisp.net/project/asdf/archives/">archives</a> </li></ul> <a id="extensions"></a> <h3>Extensions</h3> <p>Known extensions to ASDF include:</p> <ul> - <li><a href="http://common-lisp.net/gitweb/?p=asdf/asdf-contrib.git" + <li><a href="https://gitlab.common-lisp.net/asdf/asdf-contrib" ><tt>asdf-contrib</tt></a>, a collection of most of the below.</li> - <li><a href="http://common-lisp.net/gitweb/?p=asdf/asdf-encodings.git" + <li><a href="https://gitlab.common-lisp.net/asdf/asdf-encodings" ><tt>asdf-encodings</tt></a>, to compile Lisp source files with character encodings other than UTF-8.</li> - <li><a href="http://common-lisp.net/gitweb/?p=asdf/asdf-finalizers.git" + <li><a href="https://gitlab.common-lisp.net/asdf/asdf-finalizers" ><tt>asdf-finalizers</tt></a>, to allow macros to include code to be evaluated at the end of a file being compiled.</li> <li> - <!-- <a href="http://common-lisp.net/gitweb?p=projects/xcvb/asdf-dependency-grovel.git"> --> - <a href="http://common-lisp.net/gitweb/?p=xcvb/asdf-dependency-grovel.git;a=summary;js=1"> + <a href="https://gitlab.common-lisp.net/xcvb/asdf-dependency-grovel"> <tt>asdf-dependency-grovel</tt></a>, to compute the actual dependencies in a big ASDF system.</li> - <li><a href="http://common-lisp.net/project/qitab/" + <li><a href="https://common-lisp.net/project/qitab/" ><tt>poiu</tt></a>, to compile a system in parallel.</li> - <li><a href="http://common-lisp.net/project/asdf-system-connections/" + <li><a href="https://common-lisp.net/project/asdf-system-connections/" ><tt>asdf-system-connections</tt></a>, lets you specify systems that are automatically loaded when two other systems are loaded, to connect them.</li> <li><a href="http://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv" ><tt>asdf-flv</tt></a>, to bind file-local variables around the compilation of some files.</li> - <li><a href="http://common-lisp.net/gitweb/?p=asdf/asdf-package-system.git" + <li><a href="http://gitlab.common-lisp.net/asdf/asdf-package-system" ><tt>asdf-package-system</tt></a>, to compile Lisp source files with one package per file that also determines dependencies, in the style of @@ -503,7 +499,7 @@ XCL (Peter Graves) <gnooth@gmail.com> <a class="nav" href="http://common-lisp.net/" title="Common-Lisp.net"> <img src="http://common-lisp.net/project/cl-containers/shared/buttons/lisp-lizard.png" width="80" height="15" title="Common-Lisp.net" alt="Common-Lisp.net button" /></a> <p><span class="copyright"Copyright © 2001-2014 Daniel Barlow and contributors</span></p> <p>ASDF has an <a href="http://www.opensource.org/licenses/mit-license.php">MIT style</a> license</p> - <div id="timestamp">Last updated 2014-10-10</div> + <div id="timestamp">Last updated 2015-03-28</div> </div> </body> </html> diff --git a/header.lisp b/header.lisp index 06095260dfb80bc3efdcc14e4802dcf0ec1478d9..eb7a3053e31c361ad758359897282d6c74a7916c 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; buffer-read-only: t; -*- -;;; This is ASDF 3.1.4.3: Another System Definition Facility. +;;; This is ASDF 3.1.4.4: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/uiop/os.lisp b/uiop/os.lisp index 1c5a9d92530bd85360188ddd5adacd42865e225f..173f61cfe1adccdbb8b62a990a06cb5e40be0cf3 100644 --- a/uiop/os.lisp +++ b/uiop/os.lisp @@ -7,6 +7,7 @@ (:use :uiop/common-lisp :uiop/package :uiop/utility) (:export #:featurep #:os-unix-p #:os-macosx-p #:os-windows-p #:os-genera-p #:detect-os ;; features + #:os-cond #:getenv #:getenvp ;; environment variables #:implementation-identifier ;; implementation identifier #:implementation-type #:*implementation-type* @@ -73,6 +74,10 @@ except on ABCL where it might change between FASL compilation and runtime." (return (or o (error "Congratulations for trying ASDF on an operating system~%~ that is neither Unix, nor Windows, nor Genera, nor even old MacOS.~%Now you port it."))))) + (defmacro os-cond (&rest clauses) + #+abcl `(cond ,@clauses) + #-abcl (loop* :for (test . body) :in clauses :when (eval test) :return `(progn ,@body))) + (detect-os)) ;;;; Environment variables: getting them, and parsing them. @@ -109,20 +114,19 @@ use getenvp to return NIL in such a case." #-(or abcl allegro clasp clisp clozure cmu cormanlisp ecl gcl genera lispworks mcl mkcl sbcl scl xcl) (error "~S is not supported on your implementation" 'getenv)) - - (defsetf getenv (x) (val) + (defsetf getenv (x) (val) "Set an environment variable." (declare (ignorable x val)) - #+clisp `(system::setenv ,x ,val) - #+ecl `(ext:setenv ,x ,val) #+allegro `(setf (sys:getenv ,x) ,val) + #+clisp `(system::setenv ,x ,val) #+clozure `(ccl:setenv ,x ,val) #+cmu `(unix:unix-setenv ,x ,val 1) + #+ecl `(ext:setenv ,x ,val) #+lispworks `(hcl:setenv ,x ,val) #+mkcl `(mkcl:setenv ,x ,val) #+sbcl `(progn (require :sb-posix) (symbol-call :sb-posix :setenv ,x ,val 1)) - #-(or allegro clisp clozure ecl lispworks mkcl sbcl cmu) - '(error "SETF ~S is not supported on your implementation" 'getenv)) + #-(or allegro clisp clozure cmu ecl lispworks mkcl sbcl) + '(error "~S ~S is not supported on your implementation" 'setf 'getenv)) (defun getenvp (x) "Predicate that is true if the named variable is present in the libc environment, diff --git a/uiop/pathname.lisp b/uiop/pathname.lisp index 19cbf132c82bfec8840ad08d823db9b95fdb1c10..74177b8e2982185d1d090285aed58e527787b7f2 100644 --- a/uiop/pathname.lisp +++ b/uiop/pathname.lisp @@ -404,9 +404,9 @@ For an empty type, *UNSPECIFIC-PATHNAME-TYPE* is returned." "Coerce NAME into a PATHNAME using standard Unix syntax. Unix syntax is used whether or not the underlying system is Unix; -on such non-Unix systems it is only usable but for relative pathnames; -but especially to manipulate relative pathnames portably, it is of crucial -to possess a portable pathname syntax independent of the underlying OS. +on such non-Unix systems it is reliably usable only for relative pathnames. +This function is especially useful to manipulate relative pathnames portably, +where it is of crucial to possess a portable pathname syntax independent of the underlying OS. This is what PARSE-UNIX-NAMESTRING provides, and why we use it in ASDF. When given a PATHNAME object, just return it untouched. diff --git a/uiop/run-program.lisp b/uiop/run-program.lisp index 1e43cd0c61893fff1a9b6bfa4237a69a0946bbca..7fdaf817f1b656f92aa2e7925883431d4030132e 100644 --- a/uiop/run-program.lisp +++ b/uiop/run-program.lisp @@ -104,7 +104,7 @@ for use within a POSIX Bourne shell, outputing to S." (defun escape-shell-token (token &optional s) "Escape a token for the current operating system shell" - (cond + (os-cond ((os-unix-p) (escape-sh-token token s)) ((os-windows-p) (escape-windows-token token s)))) diff --git a/uiop/stream.lisp b/uiop/stream.lisp index 9a6ceef2e10e1af854c64d441d4772a7d4400785..6c1840148b0c6893d4f34876bc08789de2eaa806 100644 --- a/uiop/stream.lisp +++ b/uiop/stream.lisp @@ -277,7 +277,7 @@ and return that" (defun null-device-pathname () "Pathname to a bit bucket device that discards any information written to it and always returns EOF when read from" - (cond + (os-cond ((os-unix-p) #p"/dev/null") ((os-windows-p) #p"NUL") ;; Q: how many Lisps accept the #p"NUL:" syntax? (t (error "No /dev/null on your OS")))) @@ -528,13 +528,13 @@ If a string, repeatedly read and evaluate from it, returning the last values." (with-upgradability () (defun default-temporary-directory () "Return a default directory to use for temporary files" - (or - (when (os-unix-p) + (os-cond + ((os-unix-p) (or (getenv-pathname "TMPDIR" :ensure-directory t) (parse-native-namestring "/tmp/"))) - (when (os-windows-p) + ((os-windows-p) (getenv-pathname "TEMP" :ensure-directory t)) - (subpathname (user-homedir-pathname) "tmp/"))) + (t (subpathname (user-homedir-pathname) "tmp/")))) (defvar *temporary-directory* nil "User-configurable location for temporary files") diff --git a/upgrade.lisp b/upgrade.lisp index 640a5f3c05be5bee3e426fb79a28a73474870003..64c29772a4d0c24f59bf8891730cb10705173257 100644 --- a/upgrade.lisp +++ b/upgrade.lisp @@ -67,7 +67,7 @@ previously-loaded version of ASDF." ;; "3.4.5.67" would be a development version in the official branch, on top 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.1.4.3") + (asdf-version "3.1.4.4") (existing-version (asdf-version))) (setf *asdf-version* asdf-version) (when (and existing-version (not (equal asdf-version existing-version))) diff --git a/version.lisp-expr b/version.lisp-expr index 7901198b04121d263c016814ca7c61a8d6605976..813a228d38fc368f9d7a077105d5d4531902b9f8 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1,2 +1,2 @@ -"3.1.4.3" +"3.1.4.4"