diff --git a/Makefile b/Makefile index c9287d067f23719c7f8f7334d09daa2b6d87b3c9..042a53d588339b9b449e8d7da2192a80c6f6b010 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ sourceDirectory := $(shell pwd) #### Common Lisp implementations available for testing. ## export ASDF_TEST_LISPS to override the default list of such implementations, ## or specify a lisps= argument at the make command-line -defaultLisps = ccl clisp sbcl ecl ecl_bytecodes cmucl abcl scl allegro lispworks allegromodern gcl xcl +defaultLisps = ccl clisp sbcl ecl ecl_bytecodes cmucl abcl scl allegro lispworks allegromodern gcl xcl mkcl ifdef ASDF_TEST_LISPS lisps ?= ${ASDF_TEST_LISPS} else @@ -26,7 +26,7 @@ endif ## grep for #+/#- features in the test/ directory to see plenty of disabled tests on some platforms ## NOT SUPPORTED BY OUR AUTOMATED TESTS: -## cormancl genera lispworks-personal-edition mkcl rmcl +## cormancl genera lispworks-personal-edition rmcl ## Some are manually tested once in a while. ifdef ASDF_TEST_SYSTEMS s ?= ${ASDF_TEST_SYSTEMS} diff --git a/asdf.asd b/asdf.asd index f79df388b702c4b70572a2604d627d88f0f3af03..d14349255b78c7f2da4fd941b2255e673d3fd06a 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.0.107" ;; to be automatically updated by make bump-version + :version "3.1.0.108" ;; to be automatically updated by make bump-version :depends-on () #+asdf3 :encoding #+asdf3 :utf-8 :class #.(if (find-class 'package-system nil) 'package-system 'system) diff --git a/header.lisp b/header.lisp index 4b392fc4b8b8b00a98194b58d5912b6db80fbcb5..543e2b0324b970395ac44410cf1c54bea6b503df 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.0.107: Another System Definition Facility. +;;; This is ASDF 3.1.0.108: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/uiop/lisp-build.lisp b/uiop/lisp-build.lisp index adab079bace012c440eea6d9f09abbd12c498078..350424896eaab24fee721468de070954583b91bb 100644 --- a/uiop/lisp-build.lisp +++ b/uiop/lisp-build.lisp @@ -20,7 +20,7 @@ ;; Types #+sbcl #:sb-grovel-unknown-constant-condition ;; Functions & Macros - #:get-optimization-settings #:proclaim-optimization-settings + #:get-optimization-settings #:proclaim-optimization-settings #:with-optimization-settings #:call-with-muffled-compiler-conditions #:with-muffled-compiler-conditions #:call-with-muffled-loader-conditions #:with-muffled-loader-conditions #:reify-simple-sexp #:unreify-simple-sexp @@ -60,20 +60,32 @@ This can help you produce more deterministic output for FASLs.")) "Optimization settings to be used by PROCLAIM-OPTIMIZATION-SETTINGS") (defvar *previous-optimization-settings* nil "Optimization settings saved by PROCLAIM-OPTIMIZATION-SETTINGS") + (defparameter +optimization-variables+ + ;; TODO: allegro genera corman mcl + (or #+(or abcl xcl) '(system::*speed* c::*space* c::*safety* c::*debug*) + #+clisp '(system::*optimize*) + #+clozure '(ccl::*nx-speed* ccl::*nx-space* ccl::*nx-safety* + ccl::*nx-debug* ccl::*nx-cspeed*) + #+(or cmu scl) '(c::*default-cookie*) + #+ecl '(c::*speed* c::*space* c::*safety* c::*debug*) + #+gcl '(compiler::*speed* compiler::*space* compiler::*compiler-new-safety* compiler::*debug*) + #+lispworks '(compiler::*optimization-level*) + #+mkcl '(si::*speed* si::*space* si::*safety* si::*debug*) + #+sbcl '(sb-c::*policy*))) (defun get-optimization-settings () "Get current compiler optimization settings, ready to PROCLAIM again" - #-(or clisp clozure cmu ecl mkcl sbcl scl) - (warn "~S does not support ~S. Please help me fix that." 'get-optimization-settings (implementation-type)) + #-(or abcl clisp clozure cmu ecl lispworks mkcl sbcl scl xcl) + (warn "~S does not support ~S. Please help me fix that." + 'get-optimization-settings (implementation-type)) #+clozure (ccl:declaration-information 'optimize nil) - #+(or clisp cmu ecl mkcl sbcl scl) + #+(or abcl clisp cmu ecl lispworks mkcl sbcl scl xcl) (let ((settings '(speed space safety debug compilation-speed #+(or cmu scl) c::brevity))) #.`(loop :for x :in settings - ,@(or #+ecl '(:for v :in '(c::*speed* c::*space* c::*safety* c::*debug*)) - #+mkcl '(:for v :in '(si::*speed* si::*space* si::*safety* si::*debug*)) - #+(or cmu scl) '(:for f :in '(c::cookie-speed c::cookie-space c::cookie-safety c::cookie-debug c::cookie-cspeed c::cookie-brevity))) + ,@(or #+(or abcl ecl gcl mkcl xcl) '(:for v :in *optimization-variables*)) :for y = (or #+clisp (gethash x system::*optimize*) - #+(or ecl mkcl) (symbol-value v) - #+(or cmu scl) (funcall f c::*default-cookie*) + #+(or abcl ecl mkcl xcl) (symbol-value v) + #+(or cmu scl) (slot-value c::*default-cookie* x) + #+lispworks (slot-value compiler::*optimization-level* x) #+sbcl (cdr (assoc x sb-c::*policy*))) :when y :collect (list x y)))) (defun proclaim-optimization-settings () @@ -81,7 +93,11 @@ This can help you produce more deterministic output for FASLs.")) (proclaim `(optimize ,@*optimization-settings*)) (let ((settings (get-optimization-settings))) (unless (equal *previous-optimization-settings* settings) - (setf *previous-optimization-settings* settings))))) + (setf *previous-optimization-settings* settings)))) + (defmacro with-optimization-settings ((&optional (settings *optimization-settings*)) &body body) + `(let ,(loop :for v :in +optimization-variables+ :collect `(,v ,v)) + ,@(when settings `((proclaim `(optimize ,@,settings)))) + ,@body))) ;;; Condition control diff --git a/upgrade.lisp b/upgrade.lisp index 3a14c78c4d0da3e9d12cd8b1dae575937e28437b..b19cea08d3c662d1946f58601100fec6149afea0 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.0.107") + (asdf-version "3.1.0.108") (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 19204742c9248a342d9e59f6be128c03ec8d359f..409ab742649e7aebca459072b7936a501939d411 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1,2 +1,2 @@ -"3.1.0.107" +"3.1.0.108"