[Top][All Lists]
[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
- [Gcl-devel] gclcvs-2.7.0 sputc error,
Stephen Wilson <=