Commit 1759ae26 authored by Peter Van Eynde's avatar Peter Van Eynde

imported new upstream 1.704

parents 5274f11a 6df0471a
......@@ -4,18 +4,31 @@ common-lisp.net
.vcs
init-lisp.lisp
website/changelog.xml
push
resbcl
reccl
# Test stuff
test/results/
test/tmp/
test/conf.d/
test/dir1/
test/dir2/
# Temporary files from documentation build
doc/asdf/
doc/asdf.aux
doc/asdf.cp
doc/asdf.cps
doc/asdf.fn
doc/asdf.fns
doc/asdf.html
doc/asdf.info
doc/asdf.ky
doc/asdf.log
doc/asdf.pdf
doc/asdf.pg
doc/asdf.toc
doc/asdf.tp
doc/asdf.vr
doc/asdf.vrs
# We build these at various stages in the make process
LICENSE
website/output/
test-results/
tmp/
lift-local.config
*.dribble
......
......@@ -21,7 +21,6 @@ bump_revision: FORCE
bin/bump-revision-and-tag.sh
archive: FORCE
sbcl --userinit /dev/null --sysinit /dev/null --load bin/make-helper.lisp \
--eval "(rewrite-license)" --eval "(quit)"
bin/build-tarball.sh
......@@ -33,12 +32,11 @@ archive-copy: archive
git push cl.net
git push --tags cl.net
website-copy: FORCE
bin/rsync-cp.sh website/output/ $(webhome_private)
bin/rsync-cp.sh tmp/asdf.lisp $(webhome_private)
website:
make -C doc website
clean_dirs = $(sourceDirectory)
clean_extensions = fasl dfsl cfsl fasl fas lib dx32fsl lx64fsl lx32fsl o
clean_extensions = fasl dfsl cfsl fasl fas lib dx32fsl lx64fsl lx32fsl o bak
clean: FORCE
@for dir in $(clean_dirs); do \
......@@ -52,6 +50,8 @@ clean: FORCE
done; \
fi; \
done
rm -rf tmp
make -C doc clean
test: FORCE
@cd test; make clean;./run-tests.sh $(lisp) $(test-regex)
......
This diff is collapsed.
This diff is collapsed.
......@@ -9,6 +9,7 @@
;;;
;;; ECL SPECIFIC OPERATIONS FOR ASDF
;;;
#+xcvb (module (:depends-on ("asdf")))
(in-package :asdf)
(require 'cmp)
......@@ -168,8 +169,8 @@
(defmethod output-files ((o bundle-op) (c system))
(let ((name (concatenate 'base-string (component-name c)
(slot-value o 'name-suffix))))
(list (merge-pathnames (compile-file-pathname name :type (bundle-op-type o))
(component-relative-pathname c)))))
(list (merge-pathnames* (compile-file-pathname name :type (bundle-op-type o))
(component-relative-pathname c)))))
(defmethod output-files ((o fasl-op) (c system))
(loop for file in (call-next-method)
......@@ -207,10 +208,36 @@
(defun make-build (system &rest args &key (monolithic nil) (type :fasl)
(move-here nil move-here-p)
&allow-other-keys)
(apply #'operate (select-operation monolithic type)
system
(remove-keys '(monolithic type) args)))
(let* ((operation-name (select-operation monolithic type))
(operation (apply #'operate operation-name
system
(remove-keys '(monolithic type move-here) args)))
(system (find-system system))
(files (and system (output-files operation system))))
(print files)
(print move-here)
(if (or move-here
(and (null move-here-p)
(member operation-name '(:program))))
(loop for path in files
for filename = (namestring (truename path))
for new-path = (make-pathname :name (pathname-name path)
:type (pathname-type path)
:defaults *default-pathname-defaults*)
for new-filename = (namestring new-path)
for command =
#+windows
(format nil "move ~S ~S" filename new-filename)
#-windows
(format nil "mv ~S ~S" filename new-filename)
do (unless (equalp new-filename filename)
(when (plusp (si::system (print command)))
(error "Unable to move file~& ~S~&to new location~& ~S"
path new-path)))
collect new-path)
files)))
;;;
;;; LOAD-FASL-OP
......@@ -254,10 +281,10 @@
(defclass compiled-file (component) ())
(defmethod component-relative-pathname ((component compiled-file))
(compile-file-pathname
(merge-component-relative-pathname
(slot-value component 'relative-pathname)
(component-name component)
"fas")))
(merge-component-name-type
(or (slot-value component 'relative-pathname)
(component-name component))
:type "fas")))
(defmethod output-files (o (c compiled-file))
nil)
......@@ -270,6 +297,33 @@
(defmethod perform (o (c compiled-file))
nil)
;;;
;;; Pre-built systems
;;;
(defclass prebuilt-system (system)
((static-library :accessor prebuilt-system-static-library :initarg :lib)))
(defmethod output-files ((o lib-op) (c prebuilt-system))
(values (list (compile-file-pathname (prebuilt-system-static-library c)
:type :lib))
t ; Advertise that we do not want this path renamed
))
(defmethod perform ((o lib-op) (c prebuilt-system))
(car (output-files o c)))
(defmethod component-depends-on ((o lib-op) (c prebuilt-system))
nil)
(defmethod bundle-sub-operations ((o lib-op) (c prebuilt-system))
nil)
(defmethod bundle-sub-operations ((o monolithic-lib-op) (c prebuilt-system))
(error "Prebuilt system ~S shipped with ECL can not be used in a monolithic library operation." c))
(defmethod bundle-sub-operations ((o monolithic-bundle-op) (c prebuilt-system))
nil)
;;;
;;; Final integration steps
;;;
......@@ -289,7 +343,8 @@
t))))
(defun register-pre-built-system (name)
(register-system name (make-instance 'system :name name)))
(register-system name (make-instance 'system :name name
:source-file nil)))
(setf si::*module-provider-functions*
(loop for f in si::*module-provider-functions*
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
cl-asdf (2:1.627-2) UNRELEASED; urgency=low
cl-asdf (2:1.704-1) UNRELEASED; urgency=low
* open for changes
* Imported new upstream.
-- Peter Van Eynde <pvaneynd@debian.org> Sat, 27 Feb 2010 21:40:19 +0100
......
Redirect /project/asdf/manual.html http://common-lisp.net/project/asdf/asdf.html
user=frideau
website:=${user}@common-lisp.net:/project/asdf/public_html/
output = asdf.html asdf asdf.pdf asdf.info
webfiles = index.html .htaccess style.css cclan.png lisp-logo120x80.png favicon.ico ${output}
intermediate = asdf.cps asdf.log asdf.vr asdf.aux asdf.fn asdf.toc asdf.vrs \
asdf.cp asdf.fns asdf.ky asdf.pg asdf.tp
all: asdf.html asdf.info asdf.pdf manual-html
manual-html: asdf.texinfo
makeinfo --html asdf.texinfo
asdf.html: asdf.texinfo
makeinfo --html --no-split --no-headers -o asdf.html asdf.texinfo
asdf.info: asdf.texinfo
makeinfo asdf.texinfo
asdf.pdf: asdf.texinfo
texi2pdf asdf.texinfo
website: all
rsync -av ${webfiles} ${website}
.PHONY: clean veryclean manual-html
clean:
rm -f ${intermediate}
veryclean: clean
rm -f asdf.html asdf.pdf asdf.info
rm -rf asdf/
This diff is collapsed.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
<head>
<title>ASDF - Another System Definition Facility</title>
<link type='text/css' href='style.css' rel='stylesheet' />
<meta name="author" content="the ASDF group"/>
</head>
<body>
<div class="header">
<span class="logo">
<a href="http://common-lisp.net/project/asdf/" title="ASDF Homepage">
<img src="lisp-logo120x80.png" title="ASDF homepage" width="100" alt="Lisp Lizzard" />
</a>
</span>
<h2>ASDF</h2><h4>Another System Definition Facility</h4>
</div>
<div class="system-links">
<ul>
<li><a href="#what_it_is">What it is</a></li>
<li><a href="#documentation">Documentation</a></li>
<li><a href="#downloads">Getting it</a></li>
<li><a href="#bugs">Reporting Bugs</a></li>
<li><a href="#mailing-list">Mailing List</a></li>
<li><a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=log"
>Changelog</a></li>
</ul>
</div>
<div class="contents">
<a id="what_it_is"></a>
<h3>What it is</h3>
<p>ASDF is a tool for describing how source files are organized:
what depends on which and when.
</p>
<p>It is roughly what Common-Lisp hackers use to build software
where C hackers would use say GNU Make.
</p>
<p>ASDF stands for <em>A</em>nother <em>S</em>ystem <em>D</em>efinition <em>F</em>acility,
in the continuity of the Lisp DEFSYSTEM of yore.
</p>
<a id="documentation"></a>
<h3>Documentation</h3>
<p>You can read our manual:</p>
<ul>
<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=asdf.texinfo">as texinfo source</a></li>
</ul>
<a href="downloads"></a>
<h3>Getting it</h3>
<p>Though they may lag behind the version here, ASDF comes bundled with most Lisps.
To get the greatest and latest, you can:
</p>
<ul>
<li>download just the 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>,
</li>
<li>download the
<!--<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>
to get all bells and whistles,
</li>
<li>pull the latest from our git repository
(<a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git">browse</a>)
<pre>git clone http://common-lisp.net/project/asdf/asdf.git</pre>
</li></ul>
<a id="bugs">
<h3>Reporting Bugs</h3>
<p>To report bugs, you can use our
<a href="https://launchpad.net/asdf/">launchpad project</a>.
If you're unsure about the bug or want to discuss how to fix it,
you can send email to the project mailing-list below.
</p>
<a id="mailing-list"></a>
<h3>Mailing List</h3>
<ul>
<li><a href="http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel">asdf-devel</a>:
A list for questions, patches, bug reports, and so on; It's for everything.
</li></ul>
<h3>Contributing</h3>
<p>Join our mailing list, check the code out from git,
send questions, ideas and patches!
</p>
<a id="news"></a>
<h3>What is happening</h3>
<dl>
<dt>December 2009 to April 2010</dt>
<dd>Fran&ccedil;ois-Ren&eacute; Rideau is de facto maintainer,
with notable contributions from Robert P. Goldman.
Push towards an ASDF 2 release
with many clean-ups, better configurability
and updated documentation.
</dd>
<dt>May 2006 to November 2009</dt>
<dd>Gary King is de facto maintainer,
with notable contributions from
Robert P. Goldman, Nikodemus Siivola, Christophe Rhodes, D Herring.
Many small features and bug fixes,
trying to make the project more usable,
moving to using git and common-lisp.net.
</dd>
<dt>May 2004 to April 2006</dt>
<dd>Christophe Rhodes is de facto maintainer,
with notable contributions from
Nikodemus Siivola, Peter Van Eynde, Edi Weitz, Kevin Rosenberg.
The system made more robust, a few more features.
<dt>August 2001 to May 2004</dt>
<dd>Developed by Daniel Barlow, with notable contributions from
Christophe Rhodes, Kevin Rosenberg, Edi Weitz, Rahul Jain.
<dt>August 2001</dt>
<dd>Created by Daniel Barlow</dd>
</dl>
</div>
<div id="footer">
<a class="nav" href="http://validator.w3.org/check/referer" title="xhtml1.1"><img src="http://common-lisp.net/project/cl-containers/shared/buttons/xhtml.gif" width="80" height="15" title="valid xhtml button" alt="valid xhtml" /></a>
<a class="nav" href="http://www.catb.org/hacker-emblem/" title="hacker"> <img src="http://common-lisp.net/project/cl-containers/shared/buttons/hacker.png" width="80" height="15" title="hacker emblem" alt="hacker button" /></a>
<a class="nav" href="http://www.lisp.org/" title="Association of Lisp Users"> <img src="http://common-lisp.net/project/cl-containers/shared/buttons/lambda-lisp.png" width="80" height="15" title="ALU emblem" alt="ALU button" /></a>
<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 &copy; 2001-2010 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 2010-04-08</div>
</div>
</body>
</html>
......@@ -244,10 +244,12 @@ a:hover {
font-family: Arial, Helvetica, sans-serif;
}
.system-description {
width: 75%;
.contents {
// width: 90%;
padding-left: 2em;
float: left;
padding-right: 2em;
padding-top: 2em;
padding-bottom: 1.5em;
}
.check {font-size: x-small;
......
This diff is collapsed.
(in-package #:common-lisp-user)
(load (merge-pathnames "script-support" *load-pathname*))
(load (make-pathname :name "script-support" :defaults *load-pathname*))
(cond ((probe-file *asdf-lisp*)
(ensure-directories-exist *asdf-fasl*)
(multiple-value-bind (result warnings-p errors-p)
;; style warnings shouldn't abort the compilation [2010/02/03:rpg]
(handler-bind ((style-warning
#'(lambda (w)
(princ w *error-output*)
(muffle-warning w))))
(compile-file *asdf-lisp*
:output-file *asdf-fasl*))
(declare (ignore result))
(cond (warnings-p
;;; ECL gives warnings that it shouldn't!
#+ecl (leave-lisp "ASDF compiled with warnings. Please fix ECL." 0)
#-ecl
(leave-lisp "Testsuite failed: ASDF compiled with warnings" 1))
(errors-p
(leave-lisp "Testsuite failed: ASDF compiled with ERRORS" 2))
(t
(leave-lisp "ASDF compiled cleanly" 0)))))
(t
(leave-lisp "Testsuite failed: unable to find ASDF source" 3)))
(cond
((not (probe-file *asdf-lisp*))
(leave-lisp "Testsuite failed: unable to find ASDF source" 3))
((and (probe-file *asdf-fasl*)
(> (file-write-date *asdf-fasl*) (file-write-date *asdf-lisp*))
(ignore-errors (load *asdf-fasl*)))
(leave-lisp "Reusing previously-compiled ASDF" 0))
(t
(let ((tmp (make-pathname :name "asdf-tmp" :defaults *asdf-fasl*)))
(ensure-directories-exist *asdf-fasl*)
(multiple-value-bind (result warnings-p errors-p)
;; style warnings shouldn't abort the compilation [2010/02/03:rpg]
(handler-bind ((style-warning
#'(lambda (w)
(princ w *error-output*)
(muffle-warning w))))
(compile-file *asdf-lisp* :output-file tmp))
(declare (ignore result))
(cond
#-ecl
(warnings-p
(leave-lisp "Testsuite failed: ASDF compiled with warnings" 1))
(errors-p
(leave-lisp "Testsuite failed: ASDF compiled with ERRORS" 2))
(t
#+ecl
(when warnings-p
(format t "~&ASDF compiled with warnings. Please fix ECL.~%"))
(when (probe-file *asdf-fasl*)
(delete-file *asdf-fasl*))
(rename-file tmp *asdf-fasl*)
(leave-lisp "ASDF compiled cleanly" 0)))))))
......@@ -5,7 +5,18 @@
# - quit with exit status 0 on getting eof
# - quit with exit status >0 if an unhandled error occurs
export CL_SOURCE_REGISTRY="$PWD"
usage () {
echo "$0 [lisp invocation] [scripts-regex]"
echo " - read lisp forms one at a time from matching scripts"
echo " - quit with exit status 0 on getting eof"
echo " - quit with exit status >0 if an unhandled error occurs"
echo " you need to supply the .script in the second argument"
echo " lisps include sbcl, clisp, allegro and allegromodern"
echo "OPTIONS:"
echo " -d -- debug mode"
echo " -u -h -- show this message."
}
unset DEBUG_ASDF_TEST
while getopts "duh" OPTION
......@@ -39,24 +50,16 @@ fi
sok=1
usage () {
echo "$0 [lisp invocation] [scripts-regex]"
echo " - read lisp forms one at a time from matching scripts"
echo " - quit with exit status 0 on getting eof"
echo " - quit with exit status >0 if an unhandled error occurs"
echo " you need to supply the .script in the second argument"
echo " lisps include sbcl, clisp, allegro and allegromodern"
echo "OPTIONS:"
echo " -d -- debug mode"
echo " -u -h -- show this message."
}
DO () { ( set -x ; "$@" ); }
do_tests() {
command=$1 eval=$2 fasl_ext=$3
rm -f *.$fasl_ext ~/.cache/common-lisp/"`pwd`"/*.$fasl_ext || true
( cd .. && $command $eval '(load "test/compile-asdf.lisp")' )
if [ $? -eq 0 ] ; then
echo "Compiled OK"
command="$1" eval="$2"
rm -f ~/.cache/common-lisp/"`pwd`"/* || true
( cd .. && DO $command $eval '(load "test/compile-asdf.lisp")' )
if [ $? -ne 0 ] ; then
echo "Compilation FAILED" >&2
else
echo "Compiled OK" >&2
test_count=0
test_pass=0
test_fail=0
......@@ -65,8 +68,8 @@ do_tests() {
do
echo "Testing: $i" >&2
test_count=`expr "$test_count" + 1`
rm -f *.$fasl_ext ~/.cache/common-lisp/"`pwd`"/*.$fasl_ext || true
if $command $eval "(load \"$i\")" ; then
rm -f ~/.cache/common-lisp/"`pwd`"/* || true
if DO $command $eval "(load \"$i\")" ; then
echo "Using $command, $i passed" >&2
test_pass=`expr "$test_pass" + 1`
else
......@@ -99,78 +102,81 @@ if [ -z $1 ] ; then
lisp="sbcl"
fi
command= flags= nodebug= eval=
case "$lisp" in
sbcl)
if type sbcl ; then
fasl_ext="fasl"
command="sbcl --noinform --userinit /dev/null --sysinit /dev/null"
nodebug="--disable-debugger"
eval="--eval"
fi ;;
command="${SBCL:-sbcl}"
flags="--noinform --userinit /dev/null --sysinit /dev/null"
nodebug="--disable-debugger"
eval="--eval" ;;
clisp)
if type clisp ; then
fasl_ext="fas"
command=`which clisp`
command="$command -norc -ansi -I "
nodebug="-on-error exit"
eval="-x"
fi ;;
command="${CLISP:-clisp}"
flags="-norc -ansi -I "
nodebug="-on-error exit"
eval="-x" ;;
allegro)
if type alisp ; then
fasl_ext="fasl"
command="alisp -q "
nodebug="-batch"
eval="-e"
fi ;;
command="${ALLEGRO:-alisp}"
flags="-q"
nodebug="-batch"
eval="-e" ;;
allegromodern)
if type mlisp ; then
fasl_ext="fasl"
command="mlisp -q"
nodebug="-batch"
eval="-e"
fi ;;
command="${ALLEGROMODERN:-mlisp}"
flags="-q"
nodebug="-batch"
eval="-e" ;;
ccl)
if type ccl ; then
case `uname -s` in
Linux) fasl_os=lx ;;
Darwin) fasl_os=dx ;;
esac
case `uname -m` in
x86_64|ppc64) fasl_bits=64 ;;
i?86|ppc) fasl_bits=32 ;;
esac
fasl_ext="${fasl_os}${fasl_bits}fsl"
command="ccl --no-init --quiet"
nodebug="--batch"
eval="--eval"
fi ;;
command="${CCL:-ccl}"
flags="--no-init --quiet"
nodebug="--batch"
eval="--eval" ;;
cmucl)
if type lisp ; then
fasl_ext="x86f"
command="lisp -noinit"
nodebug="-batch"
eval="-eval"
fi ;;
command="${CMUCL:-lisp}"
flags="-noinit"
nodebug="-batch"
eval="-eval" ;;
ecl)
if type ecl ; then
fasl_ext="fas"
command=`which ecl`
command="$command -norc"
eval="-eval"
fi ;;
command="${ECL:-ecl}"
flags="-norc"
eval="-eval" ;;
lispworks)
if type lispworks ; then
fasl_ext="ofasl"
command=`which ecl`
command="$command -siteinit - -init -"
eval="-eval"
fi ;;
command="${LISPWORKS:-lispworks}"
# If you have a licensed copy of lispworks,
# you can obtain the "lispworks" binary with, e.g.
# echo '(hcl:save-image "/lispworks" :environment nil)' > /tmp/build.lisp ;
# ./lispworks-6-0-0-x86-linux -siteinit - -init - -build /tmp/build.lisp
flags="-siteinit - -init -"
eval="-eval" ;;
gclcvs)
export GCL_ANSI=t
command="${GCL:-gclcvs}"
flags="-batch"
eval="-eval" ;;
abcl)
command="${ABCL:-abcl}"
flags="--noinit --noinform"
eval="--eval" ;;
*)
echo "Unsupported lisp: $1" >&2
echo "Please add support to run-tests.sh" >&2
exit 42 ;;
esac
if ! type "$command" ; then
echo "lisp implementation not found: $command" >&2
exit 43
fi
ASDFDIR="$(cd .. ; /bin/pwd)"
export CL_SOURCE_REGISTRY="${ASDFDIR}"
export ASDF_OUTPUT_TRANSLATIONS="(:output-translations (\"${ASDFDIR}\" (\"${ASDFDIR}/tmp/fasls\" :implementation)) :ignore-inherited-configuration)"
env | grep asdf
command="$command $flags"
if [ -z "${DEBUG_ASDF_TEST}" ] ; then
command="$command $nodebug"
fi
create_config () {
mkdir -p ../tmp/test-source-registry-conf.d ../tmp/test-asdf-output-translations-conf.d
}
......@@ -183,10 +189,9 @@ if [ -z "$command" ] ; then
echo "Error: cannot find or do not know how to run Lisp named $lisp"
else
create_config
mkdir -p results
echo $command
mkdir -p ../tmp/results
thedate=`date "+%Y-%m-%d"`
do_tests "$command" "$eval" "$fasl_ext" 2>&1 | \
tee "results/${lisp}.text" "results/${lisp}-${thedate}.save"
do_tests "$command" "$eval" 2>&1 | \
tee "../tmp/results/${lisp}.text" "../tmp/results/${lisp}-${thedate}.save"
clean_up
fi
(in-package #:common-lisp-user)
(defvar *asdf-lisp* (truename (merge-pathnames "../asdf.lisp" *load-truename*)))
(defvar *asdf-fasl* (compile-file-pathname (merge-pathnames "tmp/" *asdf-lisp*)))
(defun load-asdf () (load *asdf-fasl*))
;; We can't use asdf:merge-pathnames* because ASDF isn't loaded yet.
;; We still want to work despite and host/device funkiness.
(defparameter *test-directory*
(make-pathname :name nil :type nil :version nil
:defaults (or *load-truename* *compile-file-truename*)))
(defparameter *asdf-directory*
(merge-pathnames
(make-pathname :directory '(:relative :back) :defaults *test-directory*)
*test-directory*))
(defparameter *asdf-lisp*
(make-pathname :name "asdf" :type "lisp" :defaults *asdf-directory*))
(defparameter *asdf-fasl*
(compile-file-pathname
(let ((impl (string-downcase
(or #+allegro
(ecase excl:*current-case-mode*
(:case-sensitive-lower :mlisp)
(:case-insensitive-upper :alisp))
#+armedbear :abcl
#+clisp :clisp
#+clozure :ccl
#+cmu :cmucl
#+corman :cormanlisp
#+digitool :mcl
#+ecl :ecl
#+gcl :gcl
#+lispworks :lispworks
#+sbcl :sbcl
#+scl scl))))
(merge-pathnames
(make-pathname :directory `(:relative "tmp" "fasls" ,impl)
:defaults *asdf-directory*)
*asdf-lisp*))))
(defun load-asdf ()
(load *asdf-fasl*))
#+allegro
(setf excl:*warn-on-nested-reader-conditionals* nil)
......@@ -11,23 +44,28 @@
;; http://www.cliki.net/cl-launch
(defun leave-lisp (message return)
(when message
(format *error-output* message))
(format *error-output* message)
(terpri *error-output*))
(finish-output *error-output*)
(finish-output *standard-output*)
#+allegro
(excl:exit return)
#+clisp
(ext:quit return)
#+(or cmu scl)
(unix:unix-exit code)
(unix:unix-exit return)