Hello,

Axiom build with gclcvs-2.7.0, --enable-ansi, latest cvs checkout (and prior
revision), on an i686-pc-linux-gnu, fails midway into the algebra build.

The bug appears to be the following. Call to (VECTOR 0 0 0) returns
#(0 0) instead of #(0 0 0).

==----- test.lisp ---

(defun mkvector () (vector 0 0 0))

==-------------------


steve:tmp> gcl                                                                  
                                12:32am[307]
GCL (GNU Common Lisp)  2.7.0 ANSI    Jun 28 2007 20:34:59
Source License: LGPL(gcl,gmp,pargcl), GPL(unexec,bfd,xgcl)
Binary License:  GPL due to GPL'ed components: (XGCL READLINE 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/

>(compile-file "test.lisp")

;; Compiling test.lisp.
;; End of Pass 1.  
;; End of Pass 2.  
;; OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3, 
(Debug quality ignored)
;; Finished compiling test.o.
#P"/home/steve/tmp/test.o"
NIL
NIL

>(load "test.o")

;; Loading test.o
 ;; start address -T 0xa59c40 ;; Finished loading test.o
196

>(mkvector)

#(0 0)

>(disassemble 'mkvector)

;; Compiling /tmp/gazonk_14243_0.lsp.
;; End of Pass 1.  
;; End of Pass 2.  
;; OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3, 
(Debug quality ignored)
;; Finished compiling /tmp/gazonk_14243_0.o.

#include "gazonk_14243_0.h"
void init_code(){do_init((void *)VV);}
/*      local entry for function MKVECTOR       */

static object LI1()

{        VMB1 VMS1 VMV1
        goto TTL;
TTL:;
        /*(VECTOR 0 0 0)*/
        {object V1;
        V1= 
        !3? Cnil : (alloca_val=alloca((3)*sizeof(struct cons)+sizeof(object)),
        ({object _b=(void *)alloca_val;if (((unsigned long)_b)&sizeof(_b)) _b++;
        {register struct cons *_p=(void *)_b;
        _p->c_car=make_fixnum(0);_p->c_cdr=(object)(_p+1);_p++;
        _p->c_car=make_fixnum(0);_p->c_cdr=(object)(_p+1);_p++;
        _p->c_car=make_fixnum(0);_p->c_cdr=(object)(_p+1);_p++;
        _p[-1].c_cdr=Cnil;}_b;}));
        {object V2;
        /*(LENGTH OBJECTS)*/
        {register object V4;
        V4= (V1);
        /*(ENDP (SETQ X (CDR X)))*/
        {object V5;
        V4= CMPcdr((V4));
        V5= (V4);}
        /* END (ENDP (SETQ X (CDR X)))*/
        /*(ENDP (SETQ X (CDR X)))*/
        {object V6;
        V4= CMPcdr(Cnil);
        V6= (V4);}
        /* END (ENDP (SETQ X (CDR X)))*/
        V3= make_fixnum(2);}
        /* END (LENGTH OBJECTS)*/
        V2= 
        !1? Cnil : (alloca_val=alloca((1)*sizeof(struct cons)+sizeof(object)),
        ({object _b=(void *)alloca_val;if (((unsigned long)_b)&sizeof(_b)) _b++;
        {register struct cons *_p=(void *)_b;
        _p->c_car=V3;_p->c_cdr=(object)(_p+1);_p++;
        _p[-1].c_cdr=Cnil;}_b;}));
        {object V7 = (VFUN_NARGS=5,(/* MAKE-ARRAY 
*/(*LnkLI2)((V2),((object)VV[0]),Ct,((object)VV[1]),(V1))));VMR1
        (V7);}}}
        /* END (VECTOR 0 0 0)*/
        return Cnil;
}
static object  LnkTLI2(object first,...){object V1;va_list 
ap;va_start(ap,first);V1=(object )call_vproc_new(((object)VV[2]),0,0,(void 
**)(void *)&LnkLI2,first,ap);va_end(ap);return V1;} /* MAKE-ARRAY */
#(#(ELEMENT-TYPE INITIAL-CONTENTS MAKE-ARRAY
    (%INIT
     . #((LET ((*DISABLE-RECOMPILE* T))
           (MFSFUN 'MKVECTOR 0 0 0)
           (ADD-HASH 'MKVECTOR '(NIL (ARRAY T *))
               '((VECTOR (*) (ARRAY T *)))
COMMON-LISP-USER
LISPLAMBD,DECLA,OPTIMIZ,SAFETY  ,BLOCK
                                     MKVECTOR
,VECTOR '/tmp/gazonk_14243_0.lsp))
         (DO-RECOMPILE)))))
static object LI1();
#define VMB1 object  V3;
#define VMS1
#define VMV1
#define VMR1(VMT1) return(VMT1);
#define VM1 0
static void * VVi[4]={
#define Cdata VV[3]
(void *)(LI1)
};
#define VV (VVi)
static object  LnkTLI2(object,...);
static object  (*LnkLI2)() = (object (*)()) LnkTLI2;

/tmp/gazonk_14243_0.o:     file format elf32-i386

Disassembly of section .text:

00000000 <init_code>:
   0:   68 00 00 00 00          push   $0x0
   5:   e8 fc ff ff ff          call   6 <init_code+0x6>
   a:   58                      pop    %eax
   b:   c3                      ret    

0000000c <LI1>:
   c:   55                      push   %ebp
   d:   89 e5                   mov    %esp,%ebp
   f:   83 ec 2c                sub    $0x2c,%esp
  12:   8d 54 24 0f             lea    0xf(%esp),%edx
  16:   83 e2 f0                and    $0xfffffff0,%edx
  19:   8d 42 08                lea    0x8(%edx),%eax
  1c:   89 02                   mov    %eax,(%edx)
  1e:   c7 42 04 00 00 00 d0    movl   $0xd0000000,0x4(%edx)
  25:   c7 40 04 00 00 00 d0    movl   $0xd0000000,0x4(%eax)
  2c:   8d 42 10                lea    0x10(%edx),%eax
  2f:   89 42 08                mov    %eax,0x8(%edx)
  32:   c7 40 04 00 00 00 d0    movl   $0xd0000000,0x4(%eax)
  39:   83 ec 1c                sub    $0x1c,%esp
  3c:   8d 42 18                lea    0x18(%edx),%eax
  3f:   89 42 10                mov    %eax,0x10(%edx)
  42:   c7 40 f8 00 00 00 00    movl   $0x0,0xfffffff8(%eax)
  49:   8d 44 24 0f             lea    0xf(%esp),%eax
  4d:   83 e0 f0                and    $0xfffffff0,%eax
  50:   8d 48 08                lea    0x8(%eax),%ecx
  53:   89 08                   mov    %ecx,(%eax)
  55:   c7 40 04 02 00 00 d0    movl   $0xd0000002,0x4(%eax)
  5c:   c7 41 f8 00 00 00 00    movl   $0x0,0xfffffff8(%ecx)
  63:   52                      push   %edx
  64:   ff 35 04 00 00 00       pushl  0x4
  6a:   68 00 00 00 00          push   $0x0
  6f:   ff 35 00 00 00 00       pushl  0x0
  75:   50                      push   %eax
  76:   a3 00 00 00 00          mov    %eax,0x0
  7b:   66 c7 05 04 00 00 00    movw   $0x5,0x4
  82:   05 00 
  84:   ff 15 10 00 00 00       call   *0x10
  8a:   c9                      leave  
  8b:   c3                      ret    

0000008c <LnkTLI2>:
  8c:   8d 44 24 08             lea    0x8(%esp),%eax
  90:   50                      push   %eax
  91:   ff 74 24 08             pushl  0x8(%esp)
  95:   68 10 00 00 00          push   $0x10
  9a:   6a 00                   push   $0x0
  9c:   6a 00                   push   $0x0
  9e:   ff 35 08 00 00 00       pushl  0x8
  a4:   e8 fc ff ff ff          call   a5 <LnkTLI2+0x19>
  a9:   83 c4 18                add    $0x18,%esp
  ac:   c3                      ret    
NIL


Thanks,
Steve



_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to