From: Yaroslav K. <kav...@je...> - 2006-09-26 07:36:47
|
clisp from CVS head: [9]> (letf ((custom:*foreign-encoding* charset:utf-16)) (ffi:allocate-deep 'character "Hallo" :count 4)) *** - Internal error: statement in file "stream.d", line 4280 has been reached!! Please send the authors of the program a description how you produced this error! The following restarts are available: ABORT :R1 ABORT Break 1 [10]> Debug it? -- WBR, Yaroslav Kavenchuk. |
From: Yaroslav K. <kav...@je...> - 2006-09-26 10:21:20
|
I wrote: > [9]> (letf ((custom:*foreign-encoding* charset:utf-16)) > (ffi:allocate-deep 'character "Hallo" :count 4)) > > *** - Internal error: statement in file "stream.d", line 4280 has been > reached!! > Please send the authors of the program a description how you > produced this error! > The following restarts are available: > ABORT :R1 ABORT > Break 1 [10]> > > Debug it? $ gdb ... ... [1]> (letf ((custom:*foreign-encoding* charset:utf-16)) (ffi:allocate-deep 'character "Hallo" :count 4)) Breakpoint 7, fehler_notreached (file=0x5bc644 "stream.d", line=4280) at spvw.d:658 658 pushSTACK(fixnum(line)); (gdb) backtrace #0 fehler_notreached (file=0x5bc644 "stream.d", line=4280) at spvw.d:658 #1 0x004879f8 in iconv_wcstombs (encoding={one_o = 433704269}, stream= {one_o = 0}, srcp=0x22a560, srcend=0x22a4c4, destp=0x22a578, destend=0x1381c9c "\rЁн║\rЁн║\rЁн║лллллллл") at stream.d:4217 #2 0x0045b6e8 in convert_to_foreign (fvd={one_o = 435167137}, obj= {one_o = 435166781}, data=0x1381c98, converter_malloc=0x45c0e8 <mallocing>) at foreign.d:2159 #3 0x0045ea77 in C_foreign_allocate () at foreign.d:3036 #4 0x005060b5 in eval_subr (fun={one_o = 5781426}) at eval.d:3549 #5 0x005047fc in eval1 (form={one_o = 1610079459}) at eval.d:3025 #6 0x005043d8 in eval (form={one_o = 1610079459}) at eval.d:2899 #7 0x00504761 in eval1 (form={one_o = 1610079459}) at eval.d:3000 #8 0x005043d8 in eval (form={one_o = 1610079835}) at eval.d:2899 #9 0x00536ec9 in C_progn () at control.d:317 #10 0x00504e2b in eval_fsubr (fun={one_o = 433704481}, args= {one_o = 1610079659}) at eval.d:3186 #11 0x00504895 in eval1 (form={one_o = 1610079651}) at eval.d:3042 #12 0x005043d8 in eval (form={one_o = 1610079651}) at eval.d:2899 #13 0x0053bd5d in C_unwind_protect () at control.d:1920 #14 0x00504e2b in eval_fsubr (fun={one_o = 433705041}, args= {one_o = 1610079667}) at eval.d:3186 #15 0x00504895 in eval1 (form={one_o = 1610079635}) at eval.d:3042 #16 0x005043d8 in eval (form={one_o = 1610079635}) at eval.d:2899 ---Type <return> to continue, or q <return> to quit---q Quit (expect signal SIGINT when the program is resumed) (gdb) up #1 0x004879f8 in iconv_wcstombs (encoding={one_o = 433704269}, stream= {one_o = 0}, srcp=0x22a560, srcend=0x22a4c4, destp=0x22a578, destend=0x1381c9c "\rЁн║\rЁн║\rЁн║лллллллл") at stream.d:4217 4217 with_sstring_0(TheEncoding(encoding)->enc_charset,Symbol_value(S(ascii)), (gdb) xout encoding #<encoding eol=:UNIX wce=:ERROR mbe=:ERROR cs="UTF-16" 0x19d9cd4d>{one_o = 433704269} (gdb) xout stream #<NULLOBJ>{one_o = 0} (gdb) p inptr $1 = 0x22a4b4 "a" (gdb) p insize $2 = 16 (gdb) p outptr $3 = 0x1381c9c "\rЁн║\rЁн║\rЁн║лллллллл" (gdb) p outsize $4 = 0 (gdb) p cd $5 = 0x3fccc8 (gdb) p res $6 = 4294967295 (gdb) p errno $7 = {<text variable, no debug info>} 0x780091b6 <errno> (gdb) What next? stream.d from 4217 to 4280 is big and have many variables. -- WBR, Yaroslav Kavenchuk. |
From: Hoehle, Joerg-C. <Joe...@t-...> - 2006-09-28 13:58:17
|
WWFyb3NsYXYsDQoNClBsZWFzZSByZWFkIG15IEUtTWFpbCB0byBjbGlzcC1saXN0IGZyb20gMjAw Ni0wMS0wOS4gSXQgZXhwbGFpbnMgdGhhdCB0aGUgRkZJIGRvZXMgbm90IGZ1bGx5IHdvcmsgd2l0 aCBlbmNvZGluZ3MgdGhhdCBhcmUgbm90IEMtc3RybGVuIGNvbXBhdGlibGUgKGkuZS4gdXNlIGEg c2luZ2xlIHRlcm1pbmF0aW5nIFwwKS4NClVURi0xNiBpcyBzdWNoIGEgbm9uLWNvbXBhdGlibGUg ZW5jb2RpbmcsIG9idmlvdXNseS4gIEFsbCBhcnJheXMgd2hpY2ggYXJlIHZhcmlhYmxlIGxlbmd0 aCAoZS5nLiBDLVNUUklORywgQy1BUlJBWS1NQVgpIGFyZSBhZmZlY3RlZCBieSB0aGUgcHJvYmxl bS4gRml4ZWQgc2l6ZXMgc2VlbXMgdG8gd29yayAoZS5nLiBDLUFSUkFZKS4NCg0KVGhlIHByb2Js ZW0gaXMgbm90IG1lcmVseSBhIG1hdHRlciBvZiBhIGJ1ZyB0byBmaXggaW4gc29tZSBwbGFjZS4g IFRoZXJlJ3MgYW4gb3BlbiBkZXNpZ24gcXVlc3Rpb24gYWJvdXQgdGhlIG1lYW5pbmcgb2YgQy1T VFJJTkcgYW5kIEMtQVJSQVktTUFYIHdpdGggdGhvc2UgZW5jb2RpbmdzLg0KDQpPZiBjb3Vyc2Us IHRoZXJlJ3MgYSBzb2x1dGlvbiBzcGVjaWZpYyBmb3IgVVRGLTE2OiB1c2UgdHdvIGJ5dGVzLiAg QnV0IHNvIGZhciwgdW5saWtlIExpc3B3b3JrcywgQ0xJU1AgaGFzIG5vIHNwZWNpYWwgY29kZSBm b3IgVVRGLTE2LiAgQSBnZW5lcmFsIGRlc2lnbiBzb2x1dGlvbiBpcyBuZWVkZWQgdGhhdCB3b3Jr cyB3aXRoIGFsbCBlbmNvZGluZ3MuDQooSXQgY2FuIGFsc28gaGF2ZSBoYWlyeSBjb25zZXF1ZW5j ZXMgb3V0IG9mIEZGSSwgYXMgd2l0aF9zdHJpbmdfMCgpLCBPKG1pc2NfZW5jb2RpbmcpIGV0Yy4g bWlnaHQgYmUgYWZmZWN0ZWQsIGFuZCBHQyBpbnZhcmlhbmNlLi4uDQoNCkZlZWwgZnJlZSB0byBm aWxlIGEgRmVhdHVyZSBSZXF1ZXN0IHRvIHRoZSBDTElTUCBTRiB0cmFja2VyLCB0byByZW1pbmQg dXMgb2YgdGhlIHByb2JsZW0gYW5kIHdoZXJlIGEgdGhyZWFkZWQgZGlzY3Vzc2lvbiBjb3VsZCB0 YWtlIHBsYWNlLg0KDQpIZXJlJ3MgYW4gZXhjZXJwdCBmcm9tIG15IGFuY2llbnQgbWFpbDoNCmh0 dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvZm9ydW0ucGhwP3RocmVhZF9pZD0xMTg4 NzY1MiZmb3J1bV9pZD02NzY3DQpiKSB0aGVyZSBzaG91bGQgYmUgc29tZSBwdWJsaWMgZGlzY3Vz c2lvbiBvbiB0aGUgbWVhbmluZyBvZiB0aGUgdHlwZXMgKGMtYXJyYXkgY2hhcmFjdGVyIE4pLiAg V2hhdCBkb2VzIE4gbWVhbiBpbiB0aGUgcHJlc2VuY2Ugb2YgbXVsdGlieXRlLWVuY29kaW5ncz8N Ck5vdGUgdGhhdCBmb3IgYXJiaXRyYXJ5IGVuY29kaW5ncywgTiBhcyBudW1iZXIgb2YgY2hhcmFj dGVycyBpcyB1bmxpa2VseSB0byBtYWtlIHNlbnNlLiAgSU1ITyBvbmx5IGJ5dGVzIG1ha2Ugc2Vu c2UuICBCdXQgd2hhdCB3b3VsZCB1c2VycyBtYW5pcHVsYXRpbmcgb25seSBVVEYtMTYgdGhpbmsg YWJvdXQgYSBjb3VudCBpbiBieXRlcz8NCg0KYykgZGlzY3VzcyB3aGV0aGVyIGl0J3Mgd29ydGgg dGhlIGVmZm9ydCBhbmQgY29tcGxleGl0eSwgb3IgdG8gbWFpbnRhaW4gdGhlIHN0YXR1cyBxdW8g ZXhjZXB0IGZvciBhIGZldyBub3Rld29ydGh5IGV4Y2VwdGlvbnMsIGUuZy4gaW50cm9kdWNlIFdT VFJJTkcgb3Igc2ltaWxhciB0eXBlcyBmb3IgVVRGLTE2LiBUaGUgYWR2YW50YWdlIG9mIHRoaXMg YXBwcm9hY2ggaXMgdGhhdCAoYy1hcnJheSB3Y2hhciBOKSBjb3VsZCBzeW5jIGFnYWluIHRoZSBu dW1iZXIgb2YgY2hhcmFjdGVycyB3aXRoIE4uDQoNClJlZ2FyZHMsDQoJSsO2cmcgSMO2aGxlLg0K |
From: Sam S. <sd...@gn...> - 2006-09-28 14:29:28
|
Hi, at this time CLISP FFI offers 4 counterparts to the C "foo*" type: 1. (c-ptr foo) -- a pointer to a single object 2. (c-array foo len) -- an array of fixed length 3. (c-array-ptr foo) -- a NULL-terminated array 4. (c-array-max foo len) -- a NULL-terminated array of max length what is missing is the most common case of a non-NULL-terminated array of arbitrary length, with length being supplied separately. at this time the normal way to handle this case is to use c-pointer instead thus losing type safety. actually, this is a BIG issue: either data is copied between C and Lisp on every function call or you have no type safety or transparency (see http://sourceforge.net/mailarchive/message.php?msg_id=36924711). Sam. |