Commit 27472551 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

2.26.97: more portability fixes for ECL, CMUCL, GCL, XCL.

parent dbe39343
...@@ -34,7 +34,12 @@ XCL ?= xcl ...@@ -34,7 +34,12 @@ XCL ?= xcl
# website, tag, install # website, tag, install
default: test driver_lisp := header.lisp package.lisp compatibility.lisp utility.lisp pathname.lisp stream.lisp os.lisp image.lisp run-program.lisp lisp-build.lisp configuration.lisp driver.lisp
asdf_lisp := upgrade.lisp component.lisp system.lisp find-system.lisp find-component.lisp operation.lisp action.lisp lisp-action.lisp plan.lisp operate.lisp output-translations.lisp source-registry.lisp backward-internals.lisp defsystem.lisp bundle.lisp concatenate-source.lisp backward-interface.lisp interface.lisp footer.lisp
build/asdf.lisp: $(wildcard *.lisp)
mkdir -p build
cat $(driver_lisp) $(asdf_lisp) > $@
install: archive-copy install: archive-copy
...@@ -51,13 +56,6 @@ archive-copy: archive build/asdf.lisp ...@@ -51,13 +56,6 @@ archive-copy: archive build/asdf.lisp
${MAKE} push ${MAKE} push
git checkout master git checkout master
driver_lisp := header.lisp package.lisp compatibility.lisp utility.lisp pathname.lisp stream.lisp os.lisp image.lisp run-program.lisp lisp-build.lisp configuration.lisp driver.lisp
asdf_lisp := upgrade.lisp component.lisp system.lisp find-system.lisp find-component.lisp operation.lisp action.lisp lisp-action.lisp plan.lisp operate.lisp output-translations.lisp source-registry.lisp backward-internals.lisp defsystem.lisp bundle.lisp concatenate-source.lisp backward-interface.lisp interface.lisp footer.lisp
build/asdf.lisp: $(wildcard *.lisp)
mkdir -p build
cat $(driver_lisp) $(asdf_lisp) > $@
wc: wc:
@wc $(driver_lisp) | sort -n ; echo ; \ @wc $(driver_lisp) | sort -n ; echo ; \
wc $(asdf_lisp) | sort -n ; \ wc $(asdf_lisp) | sort -n ; \
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
:licence "MIT" :licence "MIT"
:description "Another System Definition Facility" :description "Another System Definition Facility"
:long-description "ASDF builds Common Lisp software organized into defined systems." :long-description "ASDF builds Common Lisp software organized into defined systems."
:version "2.26.96" ;; to be automatically updated by bin/bump-revision :version "2.26.97" ;; to be automatically updated by bin/bump-revision
:depends-on () :depends-on ()
:components ((:module "build" :components ((:file "asdf")))) :components ((:module "build" :components ((:file "asdf"))))
:in-order-to (#+asdf2.27 (compile-op (monolithic-load-concatenated-source-op generate-asdf)))) :in-order-to (#+asdf2.27 (compile-op (monolithic-load-concatenated-source-op generate-asdf))))
......
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
(format t "Upgrading to the latest ASDF... ~%") (format t "Upgrading to the latest ASDF... ~%")
(upgrade-asdf) (upgrade-asdf)
(format t "Now loading some dependencies... ~%") (format t "Now loading some dependencies... ~%")
(load-systems :cl-ppcre :xcvb-utils) (load-systems :cl-ppcre :fare-utils)
(in-package :xcvb-utils) (in-package :fare-utils)
(format t "And the debug utilities... ~%") (format t "And the debug utilities... ~%")
(asdf-debug) (asdf-debug)
......
;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*- ;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*-
;;; This is ASDF 2.26.96: Another System Definition Facility. ;;; This is ASDF 2.26.97: Another System Definition Facility.
;;; ;;;
;;; Feedback, bug reports, and patches are all welcome: ;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>. ;;; please mail to <asdf-devel@common-lisp.net>.
......
...@@ -178,7 +178,8 @@ for processing later (possibly in a different process)." ...@@ -178,7 +178,8 @@ for processing later (possibly in a different process)."
(call-function (or hook 'funcall) function)) (call-function (or hook 'funcall) function))
(defun* compile-file* (input-file &rest keys &key compile-check output-file &allow-other-keys) (defun* compile-file* (input-file &rest keys &key compile-check output-file &allow-other-keys)
(let* ((keywords (remove-keys '(:compile-check #+gcl<2.7 :external-format) keys)) (let* ((keywords (remove-keys
`(:compile-check #+gcl<2.7 ,@'(:external-format :print :verbose)) keys))
(output-file (apply 'compile-file-pathname* input-file :output-file output-file keywords)) (output-file (apply 'compile-file-pathname* input-file :output-file output-file keywords))
(tmp-file (tmpize-pathname output-file)) (tmp-file (tmpize-pathname output-file))
(status :error)) (status :error))
......
...@@ -279,7 +279,10 @@ then returning the non-empty string value of the variable" ...@@ -279,7 +279,10 @@ then returning the non-empty string value of the variable"
(or *temporary-directory* (default-temporary-directory))) (or *temporary-directory* (default-temporary-directory)))
(defun setup-temporary-directory () (defun setup-temporary-directory ()
(setf *temporary-directory* (default-temporary-directory))) (setf *temporary-directory* (default-temporary-directory))
;; basic lack fixed after gcl 2.7.0-61, but ending / required still on 2.7.0-64.1
#+gcl (setf system::*tmp-dir* *temporary-directory*))
(defun* call-with-temporary-file (defun* call-with-temporary-file
(thunk &key (thunk &key
......
...@@ -585,7 +585,7 @@ or when loading the package is optional." ...@@ -585,7 +585,7 @@ or when loading the package is optional."
(remove "asdf" excl::*autoload-package-name-alist* (remove "asdf" excl::*autoload-package-name-alist*
:test 'equalp :key 'car)) ; We need that BEFORE any mention of package ASDF. :test 'equalp :key 'car)) ; We need that BEFORE any mention of package ASDF.
(unless (member :asdf2.27 *features*) (unless (member :asdf2.27 *features*)
#+clisp #+(or clisp xcl)
(progn (progn
(when (find-package :asdf) (when (find-package :asdf)
(delete-package* :asdf t)) (delete-package* :asdf t))
......
...@@ -261,8 +261,14 @@ actually-existing directory." ...@@ -261,8 +261,14 @@ actually-existing directory."
;;; Probing the filesystem ;;; Probing the filesystem
(defun* nil-pathname (&optional (defaults *default-pathname-defaults*)) (defun* nil-pathname (&optional (defaults *default-pathname-defaults*))
(make-pathname* :directory nil :name nil :type nil :version nil :device nil :host nil ;; 19.2.2.2.1 says a NIL host can mean a default host;
:defaults defaults)) ;; The defaults shouldn't matter ;; see also "valid physical pathname host" in the CLHS glossary, that suggests
;; strings and lists of strings or :unspecific
;; But CMUCL decides to die on NIL.
(make-pathname* :directory nil :name nil :type nil :version nil :device nil
:host (or #+cmu lisp::*unix-host*)
;; the default shouldn't matter, but we really want something physical
:defaults defaults))
(defmacro with-pathname-defaults ((&optional defaults) &body body) (defmacro with-pathname-defaults ((&optional defaults) &body body)
`(let ((*default-pathname-defaults* ,(or defaults (nil-pathname)))) ,@body)) `(let ((*default-pathname-defaults* ,(or defaults (nil-pathname)))) ,@body))
......
...@@ -25,11 +25,15 @@ ...@@ -25,11 +25,15 @@
(defvar *default-stream-element-type* (or #+(or abcl cmu cormanlisp scl xcl) 'character :default) (defvar *default-stream-element-type* (or #+(or abcl cmu cormanlisp scl xcl) 'character :default)
"default element-type for open (depends on the current CL implementation)") "default element-type for open (depends on the current CL implementation)")
(defvar *stderr* #-clozure *error-output* #+clozure ccl::*stderr* (defvar *stderr* *error-output*
"the original error output stream at startup") "the original error output stream at startup")
(defun setup-stderr () (defun setup-stderr ()
(setf *stderr* #-clozure *error-output* #+clozure ccl::*stderr*)) (setf *stderr*
#+allegro excl::*stderr*
#+clozure ccl::*stderr*
#-(or allegro clozure) *error-output*))
(setup-stderr)
;;; Safe syntax ;;; Safe syntax
......
...@@ -291,7 +291,7 @@ clean_up () { ...@@ -291,7 +291,7 @@ clean_up () {
} }
test_clean_load () { test_clean_load () {
case $lisp in case $lisp in
gcl) return 0 ;; # GCL 2.6 is hopeless gcl|cmucl) return 0 ;; # These are hopeless
esac esac
nop=build/results/${lisp}-nop.text nop=build/results/${lisp}-nop.text
load=build/results/${lisp}-load.text load=build/results/${lisp}-load.text
......
...@@ -243,6 +243,7 @@ is bound, write a message and exit on an error. If ...@@ -243,6 +243,7 @@ is bound, write a message and exit on an error. If
(apply (asym :oos) (asym :load-op) :asdf keys))) (apply (asym :oos) (asym :load-op) :asdf keys)))
(defun call-with-asdf-conditions (thunk &optional verbose) (defun call-with-asdf-conditions (thunk &optional verbose)
(declare (ignorable verbose))
(handler-bind (#+sbcl (handler-bind (#+sbcl
((or sb-c::simple-compiler-note sb-kernel:redefinition-warning) ((or sb-c::simple-compiler-note sb-kernel:redefinition-warning)
#'muffle-warning) #'muffle-warning)
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
;; "2.345.6" would be a development version in the official upstream ;; "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.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 ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
(asdf-version "2.26.96") (asdf-version "2.26.97")
(existing-asdf (find-class (find-symbol* :component :asdf nil) nil)) (existing-asdf (find-class (find-symbol* :component :asdf nil) nil))
(existing-version *asdf-version*) (existing-version *asdf-version*)
(already-there (equal asdf-version existing-version))) (already-there (equal asdf-version existing-version)))
......
...@@ -293,7 +293,7 @@ with later being determined by a lexicographical comparison of minor numbers." ...@@ -293,7 +293,7 @@ with later being determined by a lexicographical comparison of minor numbers."
#+(or cmu scl) 'conditions::format-control #+(or cmu scl) 'conditions::format-control
#+(or gcl lispworks) 'conditions::format-string #+(or gcl lispworks) 'conditions::format-string
#+sbcl 'sb-kernel:format-control #+sbcl 'sb-kernel:format-control
#-(or abcl allegro clisp clozure cmu gcl lispworks sbcl scl) nil #-(or abcl allegro clisp clozure cmu ecl gcl lispworks sbcl scl) nil
"Name of the slot for FORMAT-CONTROL in simple-condition") "Name of the slot for FORMAT-CONTROL in simple-condition")
(defun* match-condition-p (x condition) (defun* match-condition-p (x condition)
......
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