axiom-developer
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]