gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] gclcvs-2.7.0 sputc error


From: Stephen Wilson
Subject: [Gcl-devel] gclcvs-2.7.0 sputc error
Date: 16 Jul 2007 23:50:54 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

Camm,

Another slight problem.  Would appear compiler::sputc is not being
inlined to glibc's putc (if I am reading cmpnew/gcl_cmpopt.lsp and the
session below correctly).


==-- test.lisp -------
(defun doit (in out)
  (write-char (read-char in) out))

(defun test ()
  (with-input-from-string (in "TEST")
    (with-open-file (out "test.txt" :if-exists :error :direction :output)
      (doit in out))))
==--------------------


steve:tmp> gcl
GCL (GNU Common Lisp)  2.7.0 ANSI    Jul 16 2007 22:45:53
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/

>(si:use-fast-links nil)

NIL

>(load (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.
;; Loading /home/steve/tmp/test.o
 ;; start address -T 0xa63c80 ;; Finished loading /home/steve/tmp/test.o
1352

>(test)

Error: 
Signalled by DOIT.
Condition in DOIT [or a callee]: INTERNAL-SIMPLE-TYPE-ERROR: COMPILER::SPUTC is 
not of type FUNCTION: 

Broken at DOIT.  Type :H for Help.
 1 (Continue) Return to top level.
>>:bt

#0   DOIT {loc0=#<string-input stream  from "TEST">,loc1=#<output stream 
"test.txt">,loc2=...} [ihs=4]
#1   TEST {loc0=#<string-input stream  from "TEST">,loc1=#<output stream 
"test.txt">,loc2=...} [ihs=3]
#2   EVAL {loc0=nil,loc1=nil,loc2=nil,loc3=#<compiled-function test>} [ihs=2]
>>(disassemble 'doit)

;; Compiling /tmp/gazonk_11505_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_11505_0.o.

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

static object LI1__DOIT___gazonk_11505_0(V3,V4)

object V3;object V4;
{        VMB1 VMS1 VMV1
        goto TTL;
TTL:;
        {object V5;
        base[0]= (V3);
        vs_top=(vs_base=base+0)+1;
        Lread_char();
        vs_top=sup;
        V5= ({register object _z=vs_base[0];_z;});
        if(!((type_of((V4))==t_stream? (((V4))->sm.sm_fp)!=0: 0 ))){
        goto T5;}
        (void)((VFUN_NARGS=2,(/* SPUTC */(*LnkLI0)((fixnum)0,(V5),(V4)))));
        goto T3;
        goto T5;
T5:;
        base[0]= (V5);
        base[1]= (V4);
        vs_top=(vs_base=base+0)+2;
        Lwrite_char();
        vs_top=sup;
        goto T3;
T3:;
        {object V6 = (V5);VMR1
        (V6);}}
        base[0]=base[0];
        return Cnil;
}
static object  LnkTLI0(object first,...){object V1;va_list 
ap;va_start(ap,first);V1=(object )call_vproc_new(((object)VV[0]),0,32,(void 
**)(void *)&LnkLI0,first,ap);va_end(ap);return V1;} /* SPUTC */
#(#(SPUTC
    (%INIT
     . #((LET ((*DISABLE-RECOMPILE* T))
           (MFSFUN 'DOIT 0 2 0)
           (ADD-HASH 'DOIT '((T T) T)
               '((SPUTC (*) *) (FP-OKP (*) *) (READ-CHAR (*) T)
                 (WRITE-CHAR (T *) T))
COMMON-LISP-USER
LISPLAMBD!
          IN!
             OU,DECLA,OPTIMIZ,SAFETY    ,BLOCK
                                              DOIT
,WRITE-CHAR     ,READ-CHAR-. '/tmp/gazonk_11505_0.lsp))
         (DO-RECOMPILE)))))
static object LI1__DOIT___gazonk_11505_0();
#define VMB1 register object *base=vs_top;
#define VMS1 register object *sup=vs_top+2;vs_top=sup;
#define VMV1 vs_check;
#define VMR1(VMT1) vs_top=base ; return(VMT1);
#define VM1 2
static void * VVi[2]={
#define Cdata VV[1]
(void *)(LI1__DOIT___gazonk_11505_0)
};
#define VV (VVi)
static object  LnkTLI0(object,...);
static object  (*LnkLI0)() = (object (*)()) LnkTLI0;

/tmp/gazonk_11505_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__DOIT___gazonk_11505_0>:
   c:   55                      push   %ebp
   d:   57                      push   %edi
   e:   56                      push   %esi
   f:   53                      push   %ebx
  10:   8b 1d 00 00 00 00       mov    0x0,%ebx
  16:   8d 7b 08                lea    0x8(%ebx),%edi
  19:   3b 3d 00 00 00 00       cmp    0x0,%edi
  1f:   8b 74 24 18             mov    0x18(%esp),%esi
  23:   89 3d 00 00 00 00       mov    %edi,0x0
  29:   72 05                   jb     30 <LI1__DOIT___gazonk_11505_0+0x24>
  2b:   e8 fc ff ff ff          call   2c <LI1__DOIT___gazonk_11505_0+0x20>
  30:   8b 44 24 14             mov    0x14(%esp),%eax
  34:   89 03                   mov    %eax,(%ebx)
  36:   8d 43 04                lea    0x4(%ebx),%eax
  39:   a3 00 00 00 00          mov    %eax,0x0
  3e:   89 1d 00 00 00 00       mov    %ebx,0x0
  44:   e8 fc ff ff ff          call   45 <LI1__DOIT___gazonk_11505_0+0x39>
  49:   a1 00 00 00 00          mov    0x0,%eax
  4e:   81 fe 00 00 00 00       cmp    $0x0,%esi
  54:   89 3d 00 00 00 00       mov    %edi,0x0
  5a:   8b 28                   mov    (%eax),%ebp
  5c:   74 39                   je     97 <LI1__DOIT___gazonk_11505_0+0x8b>
  5e:   81 fe ff ff ff bf       cmp    $0xbfffffff,%esi
  64:   77 31                   ja     97 <LI1__DOIT___gazonk_11505_0+0x8b>
  66:   f6 06 01                testb  $0x1,(%esi)
  69:   74 2c                   je     97 <LI1__DOIT___gazonk_11505_0+0x8b>
  6b:   81 3e ff ff ff bf       cmpl   $0xbfffffff,(%esi)
  71:   77 24                   ja     97 <LI1__DOIT___gazonk_11505_0+0x8b>
  73:   80 7e 01 11             cmpb   $0x11,0x1(%esi)
  77:   75 1e                   jne    97 <LI1__DOIT___gazonk_11505_0+0x8b>
  79:   83 7e 04 00             cmpl   $0x0,0x4(%esi)
  7d:   74 18                   je     97 <LI1__DOIT___gazonk_11505_0+0x8b>
  7f:   56                      push   %esi
  80:   55                      push   %ebp
  81:   6a 00                   push   $0x0
  83:   66 c7 05 04 00 00 00    movw   $0x2,0x4
  8a:   02 00 
  8c:   ff 15 08 00 00 00       call   *0x8
  92:   83 c4 0c                add    $0xc,%esp
  95:   eb 1e                   jmp    b5 <LI1__DOIT___gazonk_11505_0+0xa9>
  97:   8d 43 08                lea    0x8(%ebx),%eax
  9a:   89 2b                   mov    %ebp,(%ebx)
  9c:   89 73 04                mov    %esi,0x4(%ebx)
  9f:   89 1d 00 00 00 00       mov    %ebx,0x0
  a5:   a3 00 00 00 00          mov    %eax,0x0
  aa:   e8 fc ff ff ff          call   ab <LI1__DOIT___gazonk_11505_0+0x9f>
  af:   89 3d 00 00 00 00       mov    %edi,0x0
  b5:   89 1d 00 00 00 00       mov    %ebx,0x0
  bb:   5b                      pop    %ebx
  bc:   5e                      pop    %esi
  bd:   5f                      pop    %edi
  be:   89 e8                   mov    %ebp,%eax
  c0:   5d                      pop    %ebp
  c1:   c3                      ret    

000000c2 <LnkTLI0>:
  c2:   8d 44 24 08             lea    0x8(%esp),%eax
  c6:   50                      push   %eax
  c7:   ff 74 24 08             pushl  0x8(%esp)
  cb:   68 08 00 00 00          push   $0x8
  d0:   6a 20                   push   $0x20
  d2:   6a 00                   push   $0x0
  d4:   ff 35 00 00 00 00       pushl  0x0
  da:   e8 fc ff ff ff          call   db <LnkTLI0+0x19>
  df:   83 c4 18                add    $0x18,%esp
  e2:   c3                      ret    
NIL



Sincerely,
Stevev





reply via email to

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