[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] Re: debugging
From: |
Camm Maguire |
Subject: |
Re: [Axiom-developer] Re: debugging |
Date: |
07 Jul 2007 02:48:05 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
Greetings!
1) 'boot::|NRTassocIndex| (and others) calls elt on dotted lists of
the form ('|domain| s . s), whereas the spec says elt must take a
proper list. elt is automatically inlined.
2) somewhere in boot (by the depsys stage),
si::universal-error-handler is redefined to an old call sequence,
breaking 2.7 error reporting.
Workaround --
SYSTEM>(eval `(defun elt ,@(cdr (subst 'sequence 'proper-sequence (function-src
'elt)))))
Warning: SIMPLE-WARNING: ELT is being redefined.
ELT
SYSTEM>(si::function-src 'elt)
(LAMBDA (SEQ N)
(DECLARE (OPTIMIZE (SAFETY 1)))
(CHECK-TYPE N SEQIND)
(CHECK-TYPE SEQ SEQUENCE)
(BLOCK ELT
(BLOCK ELT
(BLOCK ELT
(LET ((Q 0) R)
(IF (IF (LISTP SEQ)
(PROGN
(BLOCK ()
(LET ((L SEQ) (I 0))
(TAGBODY
#:G32678
(IF (NOT (OR (ENDP L) (>= I N)))
(PROGN
(TAGBODY)
(LET* ((#:G32679 (CDR L))
(#:G32680 (+ I 1)))
(SETQ L #:G32679)
(SETQ I #:G32680)
NIL)
(GO #:G32678))
(RETURN-FROM () (PROGN (SETQ Q I R L)))))))))
(CAR R)
(IF (IF (< N (SETQ Q (LENGTH SEQ))) (PROGN (SETQ R SEQ)))
(LET* ((#:G32681 R) (#:G32682 (THE SEQIND N)))
(COMPILER::CMP-AREF #:G32681 #:G32682))
(VALUES (ERROR 'TYPE-ERROR :DATUM N :EXPECTED-TYPE
(LIST 'INTEGER 0 (LIST Q)))))))))))
NIL
ELT
SYSTEM>(compile 'elt)
;; Compiling /tmp/gazonk0.lsp.
; (DEFUN ELT ...) is being compiled.
;; Warning: arg type mismatch in auto-proclamation (PROPER-SEQUENCE
(INTEGER 0)) -> (SEQUENCE
(INTEGER
0))
;; End of Pass 1.
;; End of Pass 2.
;; OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3,
(Debug quality ignored)
;; Finished compiling /tmp/gazonk0.o.
;; Loading /tmp/gazonk0.o
;; start address -T 0x102e000 ;; Finished loading /tmp/gazonk0.o
#<compiled-function ELT>
NIL
NIL
SYSTEM>
Note the new debugging functions of interest:
(si::function-src 'symbol)
(si::file 'symbol)
(si::sig 'symbol)
(si::callers 'symbol)
(si::callees 'symbol)
compiled functions can also be disassembled and re-compiled without
redefining from source.
Can we please leave universal-error-handler alone?
Thanks for the report!
I'll try to get compiler::link to propagate the ambient setting of
*disable-recompile*.
Take care,
Waldek Hebisch <address@hidden> writes:
> Camm Maguire wrote:
> > This was in furthering the GCL 2.7/axiom test build -- I'm at the
> > truename/directory syntax step. Already patched axiom-probe-file.
> >
>
> I updated 2.7 from cvs and retried build. gcl build now fine on
> and64 (but still does not install all files). I am trying to set
> si::*disable-recompile* in the inital image, which is made via
> compiler:link, but it seems that this setting is lost -- I must
> set si::*disable-recompile* to t later.
>
> After setting si::*disable-recompile* to t interpsys build fine.
> After change to axiom-probe-file first bootstrap stage works
> fine. But in the second stage I am getting strange failure.
>
> Top of the backtrace:
>
> compiling exported ~= : (S,S) -> Boolean
>
> Error:
> Signalled by LAMBDA-CLOSURE.
> Condition in SYSTEM::CHECK-TYPE-SYMBOL [or a callee]:
> INTERNAL-SIMPLE-PROGRAM-ERROR: LAMBDA-CLOSURE [or a callee] requires more
> than one argument.
>
> Broken at SYSTEM::CHECK-TYPE-SYMBOL. Type :H for Help.
> 1 (Continue) supply a new value of SYSTEM::SEQ.
> 2 Return to top level.
> BOOT>>^MBOOT>>:bt
> ^M
> #0 CHECK-TYPE-SYMBOL {symbol=system::seq,value=(|domain| s .
> s),type=system::proper-sequence,type-str...} [ihs=123]
> #1 NRTassocIndex {loc0=(|Boolean|),loc1=|value|,loc2=(((# # #
> ...))),loc3=(((# # # ...))),loc4=ni...} [ihs=122]
> #2 NRTgetLocalIndex1 {loc0=(|Boolean|),loc1=nil,loc2=(|##1| (|BasicType|)
> nil),loc3=t,loc4=t} [ihs=121]
> #3 NRTgetLocalIndex {loc0=(|Boolean|)} [ihs=120]
> #4 genDeltaSig {loc0=(|Boolean|)} [ihs=119]
> #5 genDeltaEntry {loc0=(= (s (|Boolean|) s ...) (t (elt s #))),loc1=#\$}
> [ihs=118]
>
>
> I do not understand what 'system::seq' is doing here: Axiom extensively
> uses SEQ macro which is defined in "VMLISP" package. SEQ from system
> package should not be used here -- the axiom-lisp.lisp file tries to
> limit imports to symbols from "COMMON-LISP" package.
>
> As usual, all this is on 64-bit Debian etch.
>
> --
> Waldek Hebisch
> address@hidden
>
>
>
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
- Re: [Axiom-developer] Re: debugging,
Camm Maguire <=
- Re: [Axiom-developer] Re: debugging, Waldek Hebisch, 2007/07/07
- Re: [Axiom-developer] Re: debugging, Waldek Hebisch, 2007/07/08
- Re: [Axiom-developer] Re: debugging, Camm Maguire, 2007/07/08
- Re: [Axiom-developer] Re: debugging, Ralf Hemmecke, 2007/07/08
- Re: [Axiom-developer] Re: debugging, Waldek Hebisch, 2007/07/08
- [Axiom-developer] emit-fn, Camm Maguire, 2007/07/09
- Re: [Axiom-developer] Re: debugging, Camm Maguire, 2007/07/12
- Re: [Axiom-developer] Re: debugging, Waldek Hebisch, 2007/07/13
- Re: [Axiom-developer] Re: debugging, Camm Maguire, 2007/07/13
- Re: [Axiom-developer] Re: debugging, Camm Maguire, 2007/07/13