Greetings, and thanks! Robert Boyer <[EMAIL PROTECTED]> writes:
> Thanks. Although a build of the most recent (half hour ago) 2.7.0 now > completes, it gives rise to a strange error during the build, repeated > below. > > It is possible that that build error gives rise to the strange behavior > of the newly built image on a simple error. "error in error". > > Thanks! > > Bob > > > ------------------------------------------------------------------------------- > During a the build: > > > ;; Loading sys-package.lisp > > Correctable error: PACKAGE-ERROR :PACKAGE #<"DEFPACKAGE" package> > :FORMAT-CONTROL "Name conflict on importing Error in error: > UNIVERSAL-ERROR-HANDLER ERROR (UNIVERSAL-ERROR-HANDLER ...) > > Backtrace: SYSTEM:UNIVERSAL-ERROR-HANDLER > Broken at SYSTEM:UNIVERSAL-ERROR-HANDLER. > Top level. > > > (:COMPILER :NUMLIB :SDEBUG :DEFPACKAGE :SETF :GNU-LD :UNEXEC :BFD > :NATIVE-RELOC :TRUNCATE_USE_C :CLX-LITTLE-ENDIAN :BSD :GNU :LINUX > :I686 :SGC :IEEE-FLOATING-POINT :UNIX :GMP :GCL :AKCL :COMMON) > > > OK this should be fixed now -- thanks! > ;; Loading defsys.lisp > ;; Finished loading defsys.lisp > > > ------------------------------------------------------------------------------- > Simple error in running that build: > > > GCL (GNU Common Lisp) 2.7.0 ANSI Nov 16 2006 06:20:05 > Source License: LGPL(gcl,gmp,pargcl), GPL(unexec,bfd,xgcl) > Binary License: GPL due to GPL'ed components: (BFD UNEXEC) > Modifications of this banner must retain notice of a compatible license > Dedicated to the memory of W. Schelter > > Use (help) to get some basic information on how to use GCL. > > Temporary directory for compiler files set to /tmp/ > > >(car 3) > > Error: > Fast links are on: do (si::use-fast-links nil) for debugging > Signalled by CAR. > Condition in CAR [or a callee]: INTERNAL-SIMPLE-TYPE-ERROR: 3 is not of type > LIST: > > Broken at CAR. Type :H for Help.Error in error: > ERROR SIMPLE-TYPE-ERROR (DATUM (NIL NIL NIL NIL) EXPECTED-TYPE NULL > FORMAT-CONTROL > You may not supply additional arguments ~ > when giving ~S to ~S. > FORMAT-ARGUMENTS > (Condition in SYSTEM:UNIVERSAL-ERROR-HANDLER > [or a callee]: INTERNAL-SIMPLE-PROGRAM-ERROR: Invalid initialization argument > SYSTEM:UNIVERSAL-ERROR-HANDLER for class > CONDITIONS::INTERNAL-SIMPLE-TYPE-ERROR > UNIVERSAL-ERROR-HANDLER)) > > Backtrace: system:universal-error-handler > MAKE-CONDITION > OK, I think I fixed this too -- thanks! At some point I'd like to discuss the philisophy/idea behind the new stuff and make sure that it is OK. The general idea is to process errors normally, any errors within error with a simple backtrace followed by a throw up to the latest good level, and any critical condition by an emergency system function reset and a throw back up to top level. One problem that probably needs attention -- I've put in floating point overflow errors to fix some ansi issues, but the compiler uses inf arithmetic to probe the bounds of functions when propagating types. We probably need a mechanism like handler-bind to skip over these at the right moments, but handler-bind is not available in the basic image. There is a somewhat serious bootstraping issue to get all this together. errors depend on restarts which depend on CLOS/classes which depend on basic error handling, etc. I'm trying to have just one definition of functions lying around to avoid going crazy. For simple functions like error, we define them in terms of 'proto dummy functions and macros, and then when all the tools are ready, do (defconstant +protos+ (mapcar (lambda (x) (cons (intern (concatenate 'string "PROTO-" (string x))) x)) '(with-simple-restart show-restarts continue break-level-invoke-restart invoke-debugger signal))) (defmacro with-protos (&body forms) `(let ((*proto-debug-level* *debug-level*)) ,@(nsublis +protos+ forms))) (defun error (d &rest a) (with-protos (apply #.(function-src 'error) d a))) using our new function-source-in-core facility. What I cannot yet do is handle in similar fashion the macros, assert, check-type, etc. Somehow these need to be defined consitently in the beginning (gcl_assert.lsp) and then upgraded in place once restarts become available instead of redefined (gcl_clcs_macros.lisp, gcl_clcs_install.lisp). Of course, even if we can reuse the original definition, compiled functions using these macros before clcs is available will not have restarts compiled in. Take care, > Top level. > > > > > -- Camm Maguire [EMAIL PROTECTED] ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah _______________________________________________ Gcl-devel mailing list Gcl-devel@gnu.org http://lists.gnu.org/mailman/listinfo/gcl-devel