Commit 77efd607 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

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
......@@ -10,12 +10,13 @@ sourceDirectory := $(shell pwd)
ifdef ASDF_TEST_LISPS
lisps ?= ${ASDF_TEST_LISPS}
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
## NOT SUPPORTED BY OUR AUTOMATED TESTS:
## cormancl genera lispworks-personal-edition mkcl rmcl
## 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.
ifdef ASDF_TEST_SYSTEMS
s ?= ${ASDF_TEST_SYSTEMS}
......
......@@ -19,6 +19,19 @@
** Modify SBCL and other implementations so they provide UIOP
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?
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."
#+sbcl
(sb-debug:backtrace
#.(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)
"Print a backtrace"
......
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