Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
asdf
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Peter Housel
asdf
Commits
31fcc8f6
Commit
31fcc8f6
authored
Sep 15, 2015
by
Francois-Rene Rideau
Browse files
Options
Downloads
Patches
Plain Diff
Support CCL, SBCL and Allegro alike in asdf-tools.
parent
f6a72966
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
README.md
+12
-3
12 additions, 3 deletions
README.md
tools/asdf-tools
+21
-10
21 additions, 10 deletions
tools/asdf-tools
tools/asdf-tools.bat
+34
-13
34 additions, 13 deletions
tools/asdf-tools.bat
with
67 additions
and
26 deletions
README.md
+
12
−
3
View file @
31fcc8f6
...
...
@@ -102,11 +102,16 @@ of its dependencies, you can do it with:
ASDF by default uses Clozure Common Lisp (CCL) to run the scripts that orchestrate its tests.
Install CCL and make sure an executable called
`ccl`
is in your
`PATH`
,
or that you export a variable
`CCL`
that points to the CCL executable.
To use a different Common Lisp implementation, suitably edit the script
By defining and exporting the variable LISP to be one of
`ccl`
,
`sbcl`
or
`allegro`
, you
can have it use an alternate Common Lisp implementation instead.
Install CCL (respectively SBCL or Allegro) and make sure an executable called
`ccl`
(respectively
`sbcl`
or
`alisp`
) is in your
`PATH`
,
or that you export a variable
`CCL`
(respectively
`SBCL`
or
`ALLEGRO`
)
that points to the executable.
To use a further Common Lisp implementation, suitably edit the script
[
`tools/asdf-tools`
](
tools/asdf-tools
)
,
or, on Windows, the batch file
[
`tools/asdf-tools.bat`
](
tools/asdf-tools.bat
)
.
(Note that as of SBCL 1.2.13, we recommend against using SBCL on Windows.)
Once you have all the required libraries and the asdf-tools script can find
...
...
@@ -115,6 +120,10 @@ on a given Common Lisp implementation `$L`, with your favorite installed system
make t u l=$L s=$S
To run only the regression test scripts, try simply:
make l=$L test-scripts
Debugging tip
-------------
...
...
This diff is collapsed.
Click to expand it.
tools/asdf-tools
+
21
−
10
View file @
31fcc8f6
":" ; exec ${CCL:-ccl} --no-init --load "$0" -- "$@" ; exit # -*- Lisp -*-
#|
asdf-tools could also run on SBCL, or on any decent Common Lisp implementation,
including using cl-launch, but CCL is the single implementation that has decent
portable support on all of Windows, Linux (x64, x86, ARM), MacOS X
":" ; exec ${SBCL:-sbcl} --no-userinit --no-sysinit --script "$0" "$@" ; exit
":" ; cl-launch -l ccl -Q -sp asdf-tools -r entry-point -- "$@"
#| -*- Lisp -*-
case "$LISP" in
# CCL is our default because it is the single free software implementation that has
# decent portable support on all of Windows, Linux (x64, x86, ARM), MacOS X
""|ccl) exec ${CCL:-ccl} --no-init --load "$0" -- "$@" ;;
allegro) ${ALLEGRO:-alisp} -qq -e "(setf *load-verbose* nil)" -L "$0" -- "$@" ;;
sbcl) exec ${SBCL:-sbcl} --noinform --no-userinit --no-sysinit --script "$0" "$@" ;;
# Let cl-launch choose its preferred Lisp
cl-launch) cl-launch -Q -sp asdf-tools -r entry-point -- "$@" ;;
# asdf-tools could actually run on any implementation, if you configured it above.
*) echo >&2 "Unknown Lisp $LISP" ; exit 2
esac ; exit
|#
(in-package :cl-user) ;; That may be default, but let's make double sure and tell SLIME.
...
...
@@ -12,9 +21,11 @@ portable support on all of Windows, Linux (x64, x86, ARM), MacOS X
;;; Ensure we load and configure this particular ASDF
(eval-when (:compile-toplevel :load-toplevel :execute)
(unless (member :cl-launch *features*) ;; (not necessary if we're invoked via cl-launch)
(handler-bind ((warning #'muffle-warning)) ;; hush Allegro
(load (make-pathname
:name "load-asdf" :type "lisp" :defaults
(or *compile-file-truename* *load-truename* (truename *default-pathname-defaults*))))))
(or *compile-file-truename* *load-truename*
(truename *default-pathname-defaults*)))))))
;;; ASDF3 is loaded, now use it!
(in-package :asdf)
...
...
This diff is collapsed.
Click to expand it.
tools/asdf-tools.bat
+
34
−
13
View file @
31fcc8f6
@echo
off
::: By default. We use CCL.
if
"
%LISP%
"
==
""
goto
ccl
if
"
%LISP%
"
==
"allegro"
goto
allegro
if
"
%LISP%
"
==
"ccl"
goto
ccl
if
"
%LISP%
"
==
"sbcl"
goto
sbcl
:ccl
if
"
%CCL%
"
==
""
set
CCL
=
ccl
%CCL%
--no-init --load
%~dp0
\asdf
-tools
--
%
*
::: To use SBCL instead (assuming its Windows support has been improved enough),
::: comment out the above lines, and uncomment these:
::if "%SBCL%" == "" set SBCL=sbcl
::%SBCL% --no-userinit --no-sysinit --script %~dp0\asdf-tools %*
::: To use Allegro instead,
::: comment out the above lines, and uncomment these:
::if "%ALLEGRO%" == "" set ALLEGRO=alisp
:::Note that maybe you need something more like this (untested):
::ALLEGRO=c:\path\to\allegro\buildi.exe -I c:\path\to\allegro\alisp.dxl
::%ALLEGRO% --bat %~dp0\asdf-tools %*
%CCL%
--no-init --load
%~dp0
asdf
-tools
--
%
*
goto
end
:sbcl
::: As of SBCL 1.2.13, SBCL's run-program fails to call CMD.EXE directly, so can't fully run asdf-tools
if
"
%SBCL%
"
==
""
set
SBCL
=
sbcl
%SBCL%
--noinform --no-userinit --no-sysinit --script
%~dp0
asdf
-tools
%
*
goto
end
:allegro
if
"
%ALLEGRO%
"
==
""
set
ALLEGRO
=
alisp
.exe
if
"
%
~1"
==
"get_allegro_dir"
goto
get_allegro_dir
call
%
0
get_allegro_dir
%ALLEGRO%
%ALLEGRO%
.exe
%ALLEGRODIR%
buildi
.exe
-I
%ALLEGRODIR%
alisp
.dxl
-qq -e
"(setf *load-verbose* nil)"
-L
%~dp0
asdf
-tools
.
--
%
*
goto
end
:get
_allegro_dir
if
not
"
%~dp
$PATH:2"
==
""
(
set
ALLEGRODIR
=
%~dp
$PATH:2
&
goto
end
)
if
not
"
%~dp
$PATH:3"
==
""
(
set
ALLEGRODIR
=
%~dp
$PATH:3
&
goto
end
)
if
not
"
%~dp2
"
==
""
(
set
ALLEGRODIR
=
%~dp2
&
goto
end
)
goto
end
::: Make sure this remains at the end
:end
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
sign in
to comment