[armedbear-cvs] r14125 - trunk/abcl/src/org/armedbear/lisp

ehuelsmann at common-lisp.net ehuelsmann at common-lisp.net
Sat Aug 18 13:49:38 UTC 2012


Author: ehuelsmann
Date: Sat Aug 18 06:49:37 2012
New Revision: 14125

Log:
Break circular dependency when printing errors when FORMAT
isn't fully autoloaded.

Modified:
   trunk/abcl/src/org/armedbear/lisp/format.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/format.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/format.lisp	Sat Aug 18 06:47:12 2012	(r14124)
+++ trunk/abcl/src/org/armedbear/lisp/format.lisp	Sat Aug 18 06:49:37 2012	(r14125)
@@ -33,6 +33,16 @@
 
 (in-package "SYSTEM")
 
+;; If we're here due to an autoloader,
+;; we should prevent a circular dependency:
+;; when the debugger tries to print an error,
+;; it autoloads us, but if that autoloading causes
+;; another error, it circularly starts autoloading us.
+;;
+;; So, we replace whatever is in the function slot until
+;; we can reliably call FORMAT
+(setf (symbol-function 'format) #'sys::%format)
+
 (require "PRINT-OBJECT")
 
 ;;; From primordial-extensions.lisp.




More information about the armedbear-cvs mailing list