пятница, 25 мая 2012 г.

ecl 12.5.1 on xp64

I tried today to build subj with vs2008 on xp 64 bit and got error:
;;;   Invoking external command:
;;;   cl -I. -IC:/src/ecl/msvc/ -DECL_API -IC:/src/ecl/msvc/c /EHsc /DGC_DLL /DGC_BUILD /nRT_SECURE_NO_DEPRECATE /Zi /D_DEBUG /MDd /Od -DGC_BUILD -w -c C:/src/ecl/msvc/lsp/export.c -FoC:/sched/msvc/lsp/export.obj
Internal or unrecoverable error in:
illegal stream mode
Stack trace:


 ecl_min.exe!ecl_internal_error(const char * s=0x000000014014d698)  Line 65    C
 ecl_min.exe!ecl_stream_to_handle(cl_lispunion * s=0x00000000023d6c80, int output=0x00000001)  Line 4164    C
 ecl_min.exe!si_run_program(__int64 narg=0x000000000000000a, cl_lispunion * command=0x0000000004d987e0, cl_lispunion * argv=0x00000000047d0880, ...)  Line 517 + 0xf bytes    C
 ecl_min.exe!APPLY(__int64 n=0x000000000000000a, cl_lispunion * (__int64, <no type>)* fn=0x0000000140051930, cl_lispunion * * x=0x0000000001f70190)  Line 37 + 0xa9 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012ae40, cl_lispunion * env=0x0000000004626e00, cl_lispunion * bytecodes=0x0000000005ee0c30)  Line 497 + 0x1b bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012b450, cl_lispunion * env=0x0000000000000001, cl_lispunion * bytecodes=0x0000000005ee0d20)  Line 532 + 0x25 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012ba60, cl_lispunion * env=0x0000000000000001, cl_lispunion * bytecodes=0x0000000005ee0c80)  Line 529 + 0x1a bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012c070, cl_lispunion * env=0x0000000000000001, cl_lispunion * bytecodes=0x0000000005d4c5a0)  Line 529 + 0x1a bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012c680, cl_lispunion * env=0x0000000004ce63c0, cl_lispunion * bytecodes=0x0000000005d4cdc0)  Line 529 + 0x1a bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012cc90, cl_lispunion * env=0x0000000000000001, cl_lispunion * bytecodes=0x0000000005ddc320)  Line 532 + 0x25 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012d2a0, cl_lispunion * env=0x0000000000000001, cl_lispunion * bytecodes=0x0000000005ddc320)  Line 529 + 0x1a bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012d8b0, cl_lispunion * env=0x0000000000000001, cl_lispunion * bytecodes=0x0000000005d4c8c0)  Line 529 + 0x1a bytes    C
 ecl_min.exe!ecl_apply_from_stack_frame(cl_lispunion * frame=0x000000000012df08, cl_lispunion * x=0x0000000005d4c8c0)  Line 79 + 0x14 bytes    C
 ecl_min.exe!cl_apply(__int64 narg=0x0000000000000003, cl_lispunion * fun=0x0000000005d4c8c0, cl_lispunion * lastarg=0x0000000000000001, ...)  Line 166 + 0x12 bytes    C
 ecl_min.exe!APPLY(__int64 n=0x0000000000000005, cl_lispunion * (__int64, <no type>)* fn=0x0000000140002bb0, cl_lispunion * * x=0x0000000001f70078)  Line 30 + 0x54 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012e220, cl_lispunion * env=0x0000000004ca8da0, cl_lispunion * bytecodes=0x0000000006dcb320)  Line 497 + 0x1b bytes    C
 ecl_min.exe!ecl_apply_from_stack_frame(cl_lispunion * frame=0x000000000012e8b8, cl_lispunion * x=0x0000000004ca9a60)  Line 81 + 0x1c bytes    C
 ecl_min.exe!cl_mapcar(__int64 narg=0x0000000000000001, cl_lispunion * fun=0x0000000004ca9a60, ...)  Line 53 + 0x12 bytes    C
 ecl_min.exe!APPLY(__int64 n=0x0000000000000002, cl_lispunion * (__int64, <no type>)* fn=0x000000014007f0b0, cl_lispunion * * x=0x0000000001f70058)  Line 27 + 0x26 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012ebf0, cl_lispunion * env=0x0000000000000001, cl_lispunion * bytecodes=0x0000000004dc1910)  Line 497 + 0x1b bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x000000000012f200, cl_lispunion * env=0x0000000000000001, cl_lispunion * bytecodes=0x0000000007075140)  Line 529 + 0x1a bytes    C
 ecl_min.exe!eval_nontrivial_form(cl_env_struct * env=0x0000000001d20000, cl_lispunion * form=0x0000000004c80d80)  Line 2375 + 0x17 bytes    C
 ecl_min.exe!eval_form(cl_env_struct * env=0x0000000001d20000, cl_lispunion * form=0x0000000004c80d80)  Line 2388    C
 ecl_min.exe!si_eval_with_env(__int64 narg=0x0000000000000001, cl_lispunion * form=0x0000000004c80d80, ...)  Line 3122    C
 ecl_min.exe!si_simple_toplevel()  Line 128 + 0xf bytes    C
 ecl_min.exe!APPLY_fixed(__int64 n=0x0000000000000000, cl_lispunion * (void)* fn=0x0000000140001550, cl_lispunion * * x=0x0000000001d20010)  Line 350 + 0x7 bytes    C
 ecl_min.exe!ecl_apply_from_stack_frame(cl_lispunion * frame=0x000000000012fd50, cl_lispunion * x=0x0000000140139d80)  Line 52 + 0x18 bytes    C
 ecl_min.exe!cl_funcall(__int64 narg=0xffffffffffffffff, cl_lispunion * function=0x0000000140139d80, ...)  Line 132 + 0x15 bytes    C
 ecl_min.exe!main(int argc=0x00000001, char * * args=0x0000000000362ae0)  Line 159    C



It seems that in function ecl_stream_to_handle s->stream.mode == 0x11

But this is not end of story - if you try to build 32bit version on the same machine you get very similar stack trace:

 ecl_min.exe!ecl_internal_error(const char * s=0x004db8c8)  Line 65    C
 ecl_min.exe!ecl_stream_to_handle(cl_lispunion * s=0x02152e60, int output=0x00000001)  Line 4162 + 0xa bytes    C
 ecl_min.exe!si_run_program(int narg=0x0000000a, cl_lispunion * command=0x048288a0, cl_lispunion * argv=0x032ff260, ...)  Line 517 + 0xb bytes    C
 ecl_min.exe!APPLY(int n=0x0000000a, cl_lispunion * (int, <no type="">)* fn=0x00436be0, cl_lispunion * * x=0x01ed00c8)  Line 37 + 0x4c bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012db80, cl_lispunion * env=0x03248fe0, cl_lispunion * bytecodes=0x046a00c8)  Line 497 + 0x14 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012deb8, cl_lispunion * env=0x00000001, cl_lispunion * bytecodes=0x046a01b8)  Line 532 + 0x1a bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012e1f0, cl_lispunion * env=0x00000001, cl_lispunion * bytecodes=0x046a00f0)  Line 529 + 0x12 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012e528, cl_lispunion * env=0x00000001, cl_lispunion * bytecodes=0x03892ac8)  Line 529 + 0x12 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012e860, cl_lispunion * env=0x039b3aa0, cl_lispunion * bytecodes=0x03892320)  Line 529 + 0x12 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012eb98, cl_lispunion * env=0x00000001, cl_lispunion * bytecodes=0x045c80f0)  Line 532 + 0x1a bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012eed0, cl_lispunion * env=0x00000001, cl_lispunion * bytecodes=0x045c80f0)  Line 529 + 0x12 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012f208, cl_lispunion * env=0x00000001, cl_lispunion * bytecodes=0x03892140)  Line 529 + 0x12 bytes    C
 ecl_min.exe!ecl_apply_from_stack_frame(cl_lispunion * frame=0x0012f298, cl_lispunion * x=0x03892140)  Line 79 + 0xf bytes    C
 ecl_min.exe!cl_apply(int narg=0x00000003, cl_lispunion * fun=0x03892140, cl_lispunion * lastarg=0x00000001, ...)  Line 166 + 0xd bytes    C
 ecl_min.exe!APPLY(int n=0x00000005, cl_lispunion * (int, <no type="">)* fn=0x00402390, cl_lispunion * * x=0x01ed003c)  Line 30 + 0x29 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012f5e8, cl_lispunion * env=0x0398c330, cl_lispunion * bytecodes=0x048c7000)  Line 497 + 0x14 bytes    C
 ecl_min.exe!ecl_apply_from_stack_frame(cl_lispunion * frame=0x0012f6a0, cl_lispunion * x=0x0398d890)  Line 81 + 0x17 bytes    C
 ecl_min.exe!cl_mapcar(int narg=0x00000001, cl_lispunion * fun=0x0398d890, ...)  Line 53 + 0xd bytes    C
 ecl_min.exe!APPLY(int n=0x00000002, cl_lispunion * (int, <no type="">)* fn=0x004574f0, cl_lispunion * * x=0x01ed002c)  Line 27 + 0x14 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012f9ec, cl_lispunion * env=0x00000001, cl_lispunion * bytecodes=0x046a04b0)  Line 497 + 0x14 bytes    C
 ecl_min.exe!ecl_interpret(cl_lispunion * frame=0x0012fd24, cl_lispunion * env=0x00000001, cl_lispunion * bytecodes=0x048327f8)  Line 529 + 0x12 bytes    C
 ecl_min.exe!eval_nontrivial_form(cl_env_struct * env=0x01d70000, cl_lispunion * form=0x0397a470)  Line 2375 + 0x11 bytes    C
 ecl_min.exe!eval_form(cl_env_struct * env=0x01d70000, cl_lispunion * form=0x0397a470)  Line 2387 + 0xd bytes    C
 ecl_min.exe!si_eval_with_env(int narg=0x00000001, cl_lispunion * form=0x0397a470, ...)  Line 3120 + 0xd bytes    C
 ecl_min.exe!si_simple_toplevel()  Line 128 + 0xb bytes    C
 ecl_min.exe!APPLY_fixed(int n=0x00000000, cl_lispunion * (void)* fn=0x00401350, cl_lispunion * * x=0x01d70008)  Line 350 + 0x3 bytes    C
 ecl_min.exe!ecl_apply_from_stack_frame(cl_lispunion * frame=0x0012fef8, cl_lispunion * x=0x004ce290)  Line 52 + 0x14 bytes    C
 ecl_min.exe!cl_funcall(int narg=0xffffffff, cl_lispunion * function=0x004ce290, ...)  Line 132 + 0xd bytes    C
 ecl_min.exe!main(int argc=0x00000001, char * * args=0x005c4e38)  Line 158 + 0xb bytes    C

1 комментарий: