gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] Re: gclcvs-2.7.0 sputc error


From: Camm Maguire
Subject: [Gcl-devel] Re: gclcvs-2.7.0 sputc error
Date: 17 Jul 2007 10:23:33 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings, and thanks!  Should be fixed now.  At some point the io
functions need writing to take advantage of the new inlining
capability, so this is a bit of a temporary fix.

Take care,

Stephen Wilson <address@hidden> writes:

> 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
> 
> 
> 
> 

-- 
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]