Commit 826b12b0 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

1.636: do without asdf:around method qualifier, instead use perform-with-restarts method.

Treat :unspecific specially in merge-pathnames wrt logical-pathnames, use it in split-name-type.
Add protocol to short-circuit output translation.
Some updates to the documentation manual.
Add testing support for gclcvs (though it currently fails bigtime).
Refactor run-tests to to remove need to know $fasl_ext.
parent 29ea7dcd
This diff is collapsed.
......@@ -152,14 +152,14 @@ the ASDF internals and how to extend ASDF.
NOTA BENE:
We are preparing for a release of ASDF 2,
which will have version 2.000 and later.
Releases in the 1.6xx series and beyond should be considered as
Releases in the 1.600 series and beyond should be considered as
release candidates,
but we're still working on documentation,
and on fixing the occasional bug.
For all practical purposes, ASDF 2 refers to releases later than 1.634,
and ASDF 1 to any release earlier than 1.369 or so.
ASDF 2.0 release candidates and beyond will have
ASDF 2.000 release candidates and beyond will have
@code{:asdf2} onto @code{*features*} so that if you are writing
ASDF-dependent code you may check for this feature to see if the new API
is present. @emph{All} versions of ASDF should have the @code{:asdf} feature.
......@@ -221,8 +221,8 @@ or none at all:
@lisp
(let* ((a (find-package :asdf))
(v (and a (find-symbol (symbol-name :asdf-version) a))))
(cond (v (funcall v))(a :old)))
(v (and a (find-symbol (symbol-name :asdf-version) a))))
(cond (v (funcall v))(a :old)))
@end lisp
If it returns a version number, that's the version of ASDF installed.
......@@ -418,7 +418,7 @@ by plenty of object files.
Starting with ASDF 1.600, the @code{asdf-output-translations} facility
was added to ASDF itself, that controls where object files will be stored.
This facility is fully described in a chapter of this manual,
This facility is fully described in a chapter of this manual,
@ref{Controlling where ASDF saves compiled files}.
The simplest way to add a translation to your search path,
......@@ -793,6 +793,13 @@ Therefore, it is a rare case that pathname objects should be used at all.
Unhappily, old versions of ASDF (before 1.600) didn't properly support
parsing component names as strings specifying paths with directories,
and the cumbersome @code{#.(make-pathname ...)} syntax had to be used.
Note that when specifying pathname objects, no magic interpretation of the pathname
is made depending on the component type.
On the one hand, you have to be careful to provide a pathname that correctly
fulfills whatever constraints are required from that component type
(e.g. naming a directory or a file with appropriate type);
on the other hand, you can circumvent the file type that would otherwise
be forced upon you if you were specifying a string.
@subsection Warning about logical pathnames
......@@ -1109,6 +1116,13 @@ when invoked with an object of type @code{source-file}:
@itemize
@item @code{output-files}
The @code{output-files} method determines where the method will put its files.
It returns two values, a list of pathnames, and a boolean.
If the boolean is @code{T} then the pathnames are marked
not be translated by enclosing @code{:around} methods.
If the boolean is @code{NIL} then enclosing @code{:around} methods
may translate these pathnames, e.g. to ensure object files
are somehow stored in some implementation-dependent cache.
@item @code{perform}
The @code{perform} method must call @code{output-files}
to find out where to put its files,
......@@ -1434,7 +1448,7 @@ purposes; these are given elsewhere.
@xref{The defsystem grammar}.
Users can create new classes for their systems:
the default @code{defsystem} macro takes a @code{:classs} keyword argument.
the default @code{defsystem} macro takes a @code{:class} keyword argument.
@end deffn
@node Creating new component types, , Pre-defined subclasses of component, Components
......@@ -1455,7 +1469,7 @@ We create a subclass of
@lisp
(defclass unportable-cl-source-file (cl-source-file)
())
())
@end lisp
A hypothetical function @code{system-dependent-dirname}
......@@ -1467,7 +1481,7 @@ of an @code{unportable-cl-source-file}.
(defmethod component-pathname ((component unportable-cl-source-file))
(let ((pathname (call-next-method))
(name (string-downcase (system-dependent-dirname))))
(merge-pathnames
(merge-pathnames*
(make-pathname :directory (list :relative name))
pathname)))
@end lisp
......@@ -1494,7 +1508,7 @@ The new component type is used in a @code{defsystem} form in this way:
Configurations specify paths where to find system files.
1- An application may explicitly initialize the source-registry
configuration using the configuration API
configuration using the configuration API
(@pxref{Controlling where ASDF searches for systems,Configuration API,Configuration API}, below)
in which case this takes precedence.
It may itself compute this configuration from the command-line,
......
......@@ -52,8 +52,8 @@ usage () {
}
do_tests() {
command=$1 eval=$2 fasl_ext=$3
rm -f *.$fasl_ext ~/.cache/common-lisp/"`pwd`"/*.$fasl_ext || true
command=$1 eval=$2
rm -f ~/.cache/common-lisp/"`pwd`"/* || true
( cd .. && $command $eval '(load "test/compile-asdf.lisp")' )
if [ $? -ne 0 ] ; then
echo "Compilation FAILED" >&2
......@@ -67,7 +67,7 @@ do_tests() {
do
echo "Testing: $i" >&2
test_count=`expr "$test_count" + 1`
rm -f *.$fasl_ext ~/.cache/common-lisp/"`pwd`"/*.$fasl_ext || true
rm -f ~/.cache/common-lisp/"`pwd`"/* || true
if $command $eval "(load \"$i\")" ; then
echo "Using $command, $i passed" >&2
test_pass=`expr "$test_pass" + 1`
......@@ -104,67 +104,48 @@ fi
command=
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
flags="--noinform --userinit /dev/null --sysinit /dev/null"
nodebug="--disable-debugger"
eval="--eval" ;;
clisp)
if type clisp ; then
fasl_ext="fas"
command="clisp -norc -ansi -I "
nodebug="-on-error exit"
eval="-x"
fi ;;
command=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=alisp
flags="-q"
nodebug="-batch"
eval="-e" ;;
allegromodern)
if type mlisp ; then
fasl_ext="fasl"
command="mlisp -q"
nodebug="-batch"
eval="-e"
fi ;;
command=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
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=lisp
flags="-noinit"
nodebug="-batch"
eval="-eval" ;;
ecl)
if type ecl ; then
fasl_ext="fas"
command="ecl -norc"
eval="-eval"
fi ;;
command=ecl
flags="-norc"
eval="-eval" ;;
lispworks)
if type lispworks ; then
fasl_ext="ofasl"
command="lispworks -siteinit - -init -"
eval="-eval"
fi ;;
command=lispworks
flags="-siteinit - -init -"
eval="-eval" ;;
gclcvs)
export GCL_ANSI=t
command=gclcvs
flags="-q"
eval="-eval" ;;
*)
echo "Unsupported lisp: $1" >&2
echo "Please add support to run-tests.sh" >&2
......@@ -172,7 +153,11 @@ case "$lisp" in
esac
if [ -z "$command" ] ; then
echo "lisp implementation not found: $1" >&2
echo "lisp implementation not recognized: $1" >&2
exit 43
fi
if ! type "$command" ; then
echo "lisp implementation not found: $command" >&2
exit 43
fi
......@@ -195,7 +180,7 @@ else
mkdir -p results
echo $command
thedate=`date "+%Y-%m-%d"`
do_tests "$command" "$eval" "$fasl_ext" 2>&1 | \
do_tests "$command" "$eval" 2>&1 | \
tee "results/${lisp}.text" "results/${lisp}-${thedate}.save"
clean_up
fi
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