Skip to content
Snippets Groups Projects
Commit 77efd607 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Add backtrace support for XCL. Unhappily, an XCL compiler bug breaks ASDF3:

The return statement in search-for-system-definition goes awry.
XCL is now officially not supported by ASDF3 (ASDF 2 might still work).
parent f237ea4a
No related branches found
No related tags found
No related merge requests found
...@@ -10,12 +10,13 @@ sourceDirectory := $(shell pwd) ...@@ -10,12 +10,13 @@ sourceDirectory := $(shell pwd)
ifdef ASDF_TEST_LISPS ifdef ASDF_TEST_LISPS
lisps ?= ${ASDF_TEST_LISPS} lisps ?= ${ASDF_TEST_LISPS}
else else
lisps ?= ccl clisp sbcl ecl ecl_bytecodes cmucl abcl scl allegro lispworks allegromodern xcl gcl lisps ?= ccl clisp sbcl ecl ecl_bytecodes cmucl abcl scl allegro lispworks allegromodern gcl
endif endif
## NOT SUPPORTED BY OUR AUTOMATED TESTS: ## NOT SUPPORTED BY OUR AUTOMATED TESTS:
## cormancl genera lispworks-personal-edition mkcl rmcl ## cormancl genera lispworks-personal-edition mkcl rmcl
## Some are manually tested once in a while. ## Some are manually tested once in a while.
## MAJOR FAIL: gclcvs -- Compiler bug fixed upstream, but gcl fails to compile on modern Linuxen. ## FAIL: gcl -- most implementation bugs are now fixed, but some remain. See TODO.
## FAIL: xcl -- implementation bugs now prevent ASDF3 from working at all. See TODO.
## grep for #+/#- features in the test/ directory to see plenty of disabled tests. ## grep for #+/#- features in the test/ directory to see plenty of disabled tests.
ifdef ASDF_TEST_SYSTEMS ifdef ASDF_TEST_SYSTEMS
s ?= ${ASDF_TEST_SYSTEMS} s ?= ${ASDF_TEST_SYSTEMS}
......
...@@ -19,6 +19,19 @@ ...@@ -19,6 +19,19 @@
** Modify SBCL and other implementations so they provide UIOP ** Modify SBCL and other implementations so they provide UIOP
independently from ASDF? independently from ASDF?
* XCL is no longer supported due to an implementation bug:
the return in search-for-system-definition fails to return from the
(block nil ...) and seems to mistakenly return from
some implicit internal block.
TODO: either get it fixed, or provide a workaround in uiop/common-lisp.
In the meantime, XCL is officially not supported anymore.
XCL also has a bug in make-pathname, and probably other bugs;
it takes a long time for errors to propagate to the REPL —
Maybe O(n^3) behavior or worse in walking the C++ stack?
* GCL is almost working again; but implementation bugs remain.
See November 2013 discussion on gcl-devel
* Some out-of-line configuration mechanism for various options? * Some out-of-line configuration mechanism for various options?
i.e. have files that override some variables around compilation of some systems. i.e. have files that override some variables around compilation of some systems.
......
...@@ -135,7 +135,10 @@ This is designed to abstract away the implementation specific quit forms." ...@@ -135,7 +135,10 @@ This is designed to abstract away the implementation specific quit forms."
#+sbcl #+sbcl
(sb-debug:backtrace (sb-debug:backtrace
#.(if (find-symbol* "*VERBOSITY*" "SB-DEBUG" nil) :stream '(or count most-positive-fixnum)) #.(if (find-symbol* "*VERBOSITY*" "SB-DEBUG" nil) :stream '(or count most-positive-fixnum))
stream)) stream)
#+xcl
(dolist (frame (extensions:backtrace-as-list))
(println frame stream)))
(defun print-backtrace (&rest keys &key stream count) (defun print-backtrace (&rest keys &key stream count)
"Print a backtrace" "Print a backtrace"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment