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 <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah _______________________________________________ Gcl-devel mailing list Gcl-devel@gnu.org http://lists.gnu.org/mailman/listinfo/gcl-devel