diff --git a/Makefile b/Makefile index 5f638131bc84bb0981829c6ed199d085d90906c9..7a0bd33ff710418be27710583afb878beadf946f 100644 --- a/Makefile +++ b/Makefile @@ -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} diff --git a/TODO b/TODO index 8fa2ef917978e796b0abf76e6cab584673efa2a3..de31a040745d11894e242225cb66fa799053aaf9 100644 --- a/TODO +++ b/TODO @@ -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. diff --git a/uiop/image.lisp b/uiop/image.lisp index 53cdba622901b54a08e47b46a3c36064b7729d02..c62f107f93866c1efe00adc78ce95fc1eb84c3a2 100644 --- a/uiop/image.lisp +++ b/uiop/image.lisp @@ -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"