[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] Re: gcl on ms windows
From: |
Camm Maguire |
Subject: |
Re: [Gcl-devel] Re: gcl on ms windows |
Date: |
08 Mar 2002 10:55:18 -0500 |
Greetings!
"Mike Thomas" <address@hidden> writes:
> Hi again.
>
> I got a few minutes this afternoon to look further into the Win32 seg fault
> problem - this is a progress report rather than a final result. I think
Wonderful! Thanks for looking into this.
> your hunch about
>
> By removing (setq *load-verbose* nil) from the PREAMBLE variable in the src
> directory Makefile I have narrowed the problem to a particular module -
> defcal.lisp.
This is alas probably only the first failure, the issue being either a
miscompilation of the lisp compiler on this platform or a subtle gc
issue :-(.
>
> The problem is felt when an attempt is made to dereference a NULL pointer in
> the function check_type_symbol() in "o/typespec.c" caused by the fptr
> argument to call_init() being NULL.
>
For what its worth here are the symptoms attached to various problems
I've seen.
1) Illegal instruction -- almost definitely a relocation error in
fasload.
2) Segfault -- suspicion of gc issue here, but technically possible to
be relocation too.
3) Lisp syntax error -- miscompilation of binary data files by lisp
compiler. Ultimate cause still unknown.
> The problem occurs during fasload() - I will continue converging on the
> place and the why.
>
> Woops - while writing this I accidentally did a make clean and removed a
> large amount of customised configuration effort!!! Major setback.
>
Take care, and thanks for your contributions!
> Cheers
>
> Mike Thomas.
>
> > > Is a saved GCL expected to be able to extend the heap beyond that saved
> > > memory setup when it runs out of space?
> > >
> >
> > I don't think so. This is the compile time variable 'maxpages'. But
> > would be a good idea :-)
>
> Ouch!!!
>
> I tried extending the heap size in the saved_gcl to see if that would help
> the above problem, but the seg-fault remains the same.
>
> > > I feel encouraged that the compiler is able to build itself, without
> much
> > > modification to the CVS source. In fact, I have routinely built GCL with
> > > Mingw32 over the past weeks without adding Rainer Keuchel's Win32
> changes -
> > > just disabled the NULL_OR_ON_C_STACK check. For this reason, and given
> > > Rainer Keuchel's successes I am loath to run off and start using other
> > > implementations of malloc().
> > >
> >
> > Am unfamiliar with Rainer Keuchel's work, but would like to know!
>
> http://www.rainer-keuchel.de/wince/maxima-ce.html
>
> Among other things, he took a radical approach to dynamic loading by
> replacing the object files with dll's.
>
> Cheers
>
> Mike Thomas.
>
>
>
> saved_gcl.exe caused an Access Violation at location 00406828 in module
> saved_gcl.exe Reading from location 00000000.
> Call stack:
> 00406828 saved_gcl.exe:00406828 check_type_symbol typespec.c:141
> int check_type_symbol(
> object * p = &0x00000000
> )
> ...
> object *p;
> {
> > while (type_of(*p) != t_symbol)
> *p = wrong_type_argument(sLsymbol, *p);
> }
> ...
>
> 0044A906 saved_gcl.exe:0044A906 call_proc funlink.c:571
> object call_proc(
> object sym = &(indirect),
> void * * link = &0x102eeb9c,
> int argd = 2051,
> va_list ll = &-84
> )
> ...
> int nargs;
> check_type_symbol(&sym);
> > fun=sym->s.s_gfdef;
> if (fun && (type_of(fun)==t_sfun
> || type_of(fun)==t_gfun
> ...
>
> 0044ADE9 saved_gcl.exe:0044ADE9 call_vproc funlink.c:692
> object call_vproc(
> object sym = &(indirect),
> void * link = ,
> va_list ll = &-84
> )
> ...
> void *link;
> va_list ll;
> > {return call_proc(sym,link,VFUN_NARGS | VFUN_NARG_BIT,ll);}
>
> object
> ...
>
> 102EEBB9
> 102EE0A8
> 0041613F saved_gcl.exe:0041613F call_init cmpaux.c:319
> int call_init(
> int init_address = 0,
> object memory = &(indirect),
> object fasl_vec = &(indirect),
> FUNC fptr = &0x00000000
> )
> ...
> bds_bind(sSPmemory,memory);
> (*at)();
> > bds_unwind1;
> bds_unwind1;
> }
> ...
>
> 0045A5BC saved_gcl.exe:0045A5BC fasload sfasl.c:363
> int fasload(
> object faslfile = &{
> struct fixnum_struct FIX = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> fixnum FIXVAL = 0
> },
> struct bignum big = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> __mpz_struct big_mpz_t = {
> int _mp_alloc = 0,
> int _mp_size = 269510660,
> mp_limb_t * _mp_d = 0x102e6828
> }
> },
> struct ratio rat = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object rat_den = 0x00000000,
> object rat_num = 0x10106804
> },
> struct shortfloat_struct SF = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> shortfloat SFVAL = 0.000000
> },
> struct longfloat_struct LF = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> longfloat LFVAL = 0.000000
> },
> struct complex cmp = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object cmp_real = 0x00000000,
> object cmp_imag = 0x10106804
> },
> struct character ch = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> short unsigned int ch_code = 0,
> unsigned char ch_font = 0,
> unsigned char ch_bits = 0
> },
> struct symbol s = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object s_dbind = 0x00000000,
> int ()(void) * s_sfdef = 0x10106804,
> char * st_self = 0x102e6828,
> int st_fillp = 0,
> object s_gfdef = 0x00000000,
> object s_plist = 0x00000000,
> object s_hpack = 0x00528000,
> short int s_stype = 0,
> short int s_mflag = 0
> },
> struct package p = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object p_name = 0x00000000,
> object p_nicknames = 0x10106804,
> object p_shadowings = 0x102e6828,
> object p_uselist = 0x00000000,
> object p_usedbylist = 0x00000000,
> object * p_internal = 0x00000000,
> object * p_external = 0x00528000,
> int p_internal_size = 0,
> int p_external_size = 5197072,
> int p_internal_fp = 0,
> int p_external_fp = 271477112,
> struct package * p_link = 0x00000000
> },
> struct cons c = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object c_cdr = 0x00000000,
> object c_car = 0x10106804
> },
> struct hashtable ht = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> struct htent * ht_self = 0x00000000,
> object ht_rhsize = 0x10106804,
> object ht_rhthresh = 0x102e6828,
> int ht_nent = 0,
> int ht_size = 0,
> short int ht_test = 0
> },
> struct array a = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object a_displaced = 0x00000000,
> short int a_rank = 26628,
> short int a_elttype = 4112,
> object * a_self = 0x102e6828,
> short int a_adjustable = 0,
> short int a_offset = 0,
> int a_dim = 0,
> int * a_dims = 0x00000000
> },
> struct vector v = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object v_displaced = 0x00000000,
> short int v_hasfillp = 26628,
> short int v_elttype = 4112,
> object * v_self = 0x102e6828,
> int v_fillp = 0,
> int v_dim = 0,
> short int v_adjustable = 0,
> short int v_offset = 0
> },
> struct string st = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object st_displaced = 0x00000000,
> short int st_hasfillp = 26628,
> short int st_adjustable = 4112,
> char * st_self = 0x102e6828,
> int st_fillp = 0,
> int st_dim = 0
> },
> struct ustring ust = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object ust_displaced = 0x00000000,
> short int ust_hasfillp = 26628,
> short int ust_adjustable = 4112,
> unsigned char * ust_self = 0x102e6828,
> int ust_fillp = 0,
> int ust_dim = 0
> },
> struct bitvector bv = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object bv_displaced = 0x00000000,
> short int bv_hasfillp = 26628,
> short int bv_elttype = 4112,
> char * bv_self = 0x102e6828,
> int bv_fillp = 0,
> int bv_dim = 0,
> short int bv_adjustable = 0,
> short int bv_offset = 0
> },
> struct structure str = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object str_def = 0x00000000,
> object * str_self = 0x10106804
> },
> struct stream sm = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> FILE * sm_fp = 0x00000000,
> object sm_object0 = 0x10106804,
> object sm_object1 = 0x102e6828,
> int sm_int0 = 0,
> int sm_int1 = 0,
> char * sm_buffer = 0x00000000,
> char sm_mode = 0,
> unsigned char sm_flags = 128,
> short int sm_fd = 82
> },
> struct random rnd = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> unsigned int rnd_value = 0
> },
> struct readtable rt = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> struct rtent * rt_self = 0x00000000
> },
> struct pathname pn = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object pn_host = 0x00000000,
> object pn_device = 0x10106804,
> object pn_directory = 0x102e6828,
> object pn_name = 0x00000000,
> object pn_type = 0x00000000,
> object pn_version = 0x00000000
> },
> struct cfun cf = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object cf_name = 0x00000000,
> int ()(void) * cf_self = 0x10106804,
> object cf_data = 0x102e6828
> },
> struct cclosure cc = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object cc_name = 0x00000000,
> int ()(void) * cc_self = 0x10106804,
> object cc_env = 0x102e6828,
> object cc_data = 0x00000000,
> int cc_envdim = 0,
> object * cc_turbo = 0x00000000
> },
> struct closure cl = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object cl_name = 0x00000000,
> int ()(void) * cl_self = 0x10106804,
> object cl_data = 0x102e6828,
> int cl_argd = 0,
> int cl_envdim = 0,
> object * cl_env = 0x00000000
> },
> struct sfun sfn = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object sfn_name = 0x00000000,
> int ()(void) * sfn_self = 0x10106804,
> object sfn_data = 0x102e6828,
> int sfn_argd = 0
> },
> struct vfun vfn = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object vfn_name = 0x00000000,
> int ()(void) * vfn_self = 0x10106804,
> object vfn_data = 0x102e6828,
> short unsigned int vfn_minargs = 0,
> short unsigned int vfn_maxargs = 0
> },
> struct cfdata cfd = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> char * cfd_start = 0x00000000,
> int cfd_size = 269510660,
> int cfd_fillp = 271476776,
> object * cfd_self = 0x00000000
> },
> struct spice spc = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> int spc_dummy = 0
> },
> struct dummy d = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0
> },
> struct fixarray fixa = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object fixa_displaced = 0x00000000,
> short int fixa_rank = 26628,
> short int fixa_elttype = 4112,
> fixnum * fixa_self = 0x102e6828,
> short int fixa_adjustable = 0,
> short int fixa_offset = 0,
> int fixa_dim = 0,
> int * fixa_dims = 0x00000000
> },
> struct sfarray sfa = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object sfa_displaced = 0x00000000,
> short int sfa_rank = 26628,
> short int sfa_elttype = 4112,
> shortfloat * sfa_self = 0x102e6828,
> short int sfa_adjustable = 0,
> short int sfa_offset = 0,
> int sfa_dim = 0,
> int * sfa_dims = 0x00000000
> },
> struct lfarray lfa = {
> unsigned char t = 16,
> unsigned char flag = 'M',
> char s = 'O',
> char m = 0,
> object lfa_displaced = 0x00000000,
> short int lfa_rank = 26628,
> short int lfa_elttype = 4112,
> longfloat * lfa_self = 0x102e6828,
> short int lfa_adjustable = 0,
> short int lfa_offset = 0,
> int lfa_dim = 0,
> int * lfa_dims = 0x00000000
> }
> }
> )
> ...
> call_init(init_address,memory,data,0);
>
> > vs_base = old_vs_base;
> vs_top = old_vs_top;
> if(symbol_value(sLAload_verboseA)!=Cnil)
> ...
>
> 00432D44 saved_gcl.exe:00432D44 Lload file.d:1743
> int Lload(
>
> )
> ...
> bds_bind(sLApackageA, package);
> bds_bind(sSAload_pathnameA,fasl_filename);
> > i = fasload(fasl_filename);
> if (print != Cnil) {
> SETUP_PRINT_DEFAULT(Cnil);
> ...
>
> 00408E5E saved_gcl.exe:00408E5E eval eval.c:1104
> int eval(
> object form = &(indirect)
> )
> ...
> ihs_top->ihs_base = vs_base;
> if (type_of(x) == t_cfun)
> > (*(x)->cf.cf_self)();
> else
> funcall_no_event(x);
> ...
>
> 0041320D saved_gcl.exe:0041320D Fprogn prog.c:258
> int Fprogn(
> object body = &(indirect)
> )
> ...
> vs_top=top;
> eval(MMcar(body));
> > body=MMcdr(body);
> } while (!endp(body));
> }
> ...
>
> 0040F8A5 saved_gcl.exe:0040F8A5 Flet let.c:86
> int Flet(
> object form = &(indirect)
> )
> ...
> Fprogn(body);
>
> > lex_env = old_lex;
> bds_unwind(old_bds_top);
> }
> ...
>
> 00408CE5 saved_gcl.exe:00408CE5 eval eval.c:1052
> int eval(
> object form = &(indirect)
> )
> ...
> (*fun->s.s_sfdef)(MMcdr(form));
> CHECK_AVMA;
> > ihs_pop();
> return;
> }
> ...
>
> 00407D4F saved_gcl.exe:00407D4F funcall eval.c:314
> int funcall(
> object fun = &(indirect)
> )
> ...
> for (;;) {
> eval(MMcar(x));
> > x = MMcdr(x);
> if (endp(x))
> break;
> ...
>
> 0044EB5A saved_gcl.exe:0044EB5A IapplyVector nfunlink.c:246
> object IapplyVector(
> object fun = &(indirect),
> int nargs = 1,
> object * base = &0x10193798
> )
> ...
> vs_base = base;
> funcall(fun);
> > fcall.nvalues = vs_top - vs_base;
> {int i = fcall.nvalues ;
> object *p = vs_top;
> ...
>
> 00409052 saved_gcl.exe:00409052 fLfuncall eval.c:1156
> object fLfuncall(
> object fun = &(indirect),
> int __builtin_va_alist = 270088088
> )
> ...
> va_start(ap);
> {COERCE_VA_LIST(new,ap,n);
> > return IapplyVector(fun,n-1,new);
> va_end(ap);
> }
> ...
>
> 00449EE5 saved_gcl.exe:00449EE5 c_apply_n funlink.c:239
> object c_apply_n(
> int ()(void) * fn = &0x00408ffc,
> int n = 2,
> object * x = &0x1019ca68
> )
> ...
> case 2: res=(object)(*fn)(x[0],x[1]);break;
> case 3: res=(object)(*fn)(x[0],x[1],x[2]);break;
> > case 4: res=(object)(*fn)(x[0],x[1],x[2],x[3]);break;
> case 5: res=(object)(*fn)(x[0],x[1],x[2],x[3],x[4]);break;
> case 6: res=(object)(*fn)(x[0],x[1],x[2],x[3],x[4],x[5]);break;
> ...
>
> 0044EAA4 saved_gcl.exe:0044EAA4 IapplyVector nfunlink.c:235
> object IapplyVector(
> object fun = &(indirect),
> int nargs = 2,
> object * base = &0x1019ca68
> )
> ...
>
> }
> > res = c_apply_n(fun->sfn.sfn_self,nargs,abase);
> res = COERCE_F_TYPE(res,F_RESULT_TYPE(fun->sfn.sfn_argd),F_object);
> if (F_ARG_FLAGS_P(fun->sfn.sfn_argd,F_caller_sets_one_val))
> ...
>
> 0040790C saved_gcl.exe:0040790C funcall eval.c:176
> int funcall(
> object fun = &(indirect)
> )
> ...
> { object res,*b = vs_base;
> int n = vs_top - b;
> > res = (object)IapplyVector(fun,n,b);
> n = fcall.nvalues;
> vs_base = b;
> ...
>
> 00407EE4 saved_gcl.exe:00407EE4 funcall_no_event eval.c:372
> int funcall_no_event(
> object fun = &(indirect)
> )
> ...
>
> }
> > }
>
> lispcall(funp, narg)
> ...
>
> 00408E6D saved_gcl.exe:00408E6D eval eval.c:1109
> int eval(
> object form = &(indirect)
> )
> ...
> CHECK_AVMA;
> ihs_pop();
> > return;
>
> LAMBDA:
> ...
>
> 0041055D saved_gcl.exe:0041055D Fcond conditional.c:82
> int Fcond(
> object args = &(indirect)
> )
> ...
> vs_top = top;
> eval(MMcar(conseq));
> > conseq = MMcdr(conseq);
> }
> return;
> ...
>
> 00408CE5 saved_gcl.exe:00408CE5 eval eval.c:1052
> int eval(
> object form = &(indirect)
> )
> ...
> (*fun->s.s_sfdef)(MMcdr(form));
> CHECK_AVMA;
> > ihs_pop();
> return;
> }
> ...
>
> 0041055D saved_gcl.exe:0041055D Fcond conditional.c:82
> int Fcond(
> object args = &(indirect)
> )
> ...
> vs_top = top;
> eval(MMcar(conseq));
> > conseq = MMcdr(conseq);
> }
> return;
> ...
>
> 00408CE5 saved_gcl.exe:00408CE5 eval eval.c:1052
> int eval(
> object form = &(indirect)
> )
> ...
> (*fun->s.s_sfdef)(MMcdr(form));
> CHECK_AVMA;
> > ihs_pop();
> return;
> }
> ...
>
> 00407D4F saved_gcl.exe:00407D4F funcall eval.c:314
> int funcall(
> object fun = &(indirect)
> )
> ...
> for (;;) {
> eval(MMcar(x));
> > x = MMcdr(x);
> if (endp(x))
> break;
> ...
>
> 00407EE4 saved_gcl.exe:00407EE4 funcall_no_event eval.c:372
> int funcall_no_event(
> object fun = &(indirect)
> )
> ...
>
> }
> > }
>
> lispcall(funp, narg)
> ...
>
> 00408E6D saved_gcl.exe:00408E6D eval eval.c:1109
> int eval(
> object form = &(indirect)
> )
> ...
> CHECK_AVMA;
> ihs_pop();
> > return;
>
> LAMBDA:
> ...
>
> 00412B8B saved_gcl.exe:00412B8B Ftagbody prog.c:97
> int Ftagbody(
> object body = &(indirect)
> )
> ...
> if (item_type != t_symbol && item_type != t_fixnum &&
> item_type != t_bignum)
> > eval(MMcar(body));
> body = MMcdr(body);
> }
> ...
>
> 00411C60 saved_gcl.exe:00411C60 Fdolist iteration.c:364
> int Fdolist(
> object arg = &(indirect)
> )
> ...
> Ftagbody(body);
>
> > goto LOOP;
>
> END:
> ...
>
> 00408CE5 saved_gcl.exe:00408CE5 eval eval.c:1052
> int eval(
> object form = &(indirect)
> )
> ...
> (*fun->s.s_sfdef)(MMcdr(form));
> CHECK_AVMA;
> > ihs_pop();
> return;
> }
> ...
>
> 0041055D saved_gcl.exe:0041055D Fcond conditional.c:82
> int Fcond(
> object args = &(indirect)
> )
> ...
> vs_top = top;
> eval(MMcar(conseq));
> > conseq = MMcdr(conseq);
> }
> return;
> ...
>
> 00408CE5 saved_gcl.exe:00408CE5 eval eval.c:1052
> int eval(
> object form = &(indirect)
> )
> ...
> (*fun->s.s_sfdef)(MMcdr(form));
> CHECK_AVMA;
> > ihs_pop();
> return;
> }
> ...
>
> 00407D4F saved_gcl.exe:00407D4F funcall eval.c:314
> int funcall(
> object fun = &(indirect)
> )
> ...
> for (;;) {
> eval(MMcar(x));
> > x = MMcdr(x);
> if (endp(x))
> break;
> ...
>
> 00407EE4 saved_gcl.exe:00407EE4 funcall_no_event eval.c:372
> int funcall_no_event(
> object fun = &(indirect)
> )
> ...
>
> }
> > }
>
> lispcall(funp, narg)
> ...
>
> 00408E6D saved_gcl.exe:00408E6D eval eval.c:1109
> int eval(
> object form = &(indirect)
> )
> ...
> CHECK_AVMA;
> ihs_pop();
> > return;
>
> LAMBDA:
> ...
>
> 00412B8B saved_gcl.exe:00412B8B Ftagbody prog.c:97
> int Ftagbody(
> object body = &(indirect)
> )
> ...
> if (item_type != t_symbol && item_type != t_fixnum &&
> item_type != t_bignum)
> > eval(MMcar(body));
> body = MMcdr(body);
> }
> ...
>
> 00411C60 saved_gcl.exe:00411C60 Fdolist iteration.c:364
> int Fdolist(
> object arg = &(indirect)
> )
> ...
> Ftagbody(body);
>
> > goto LOOP;
>
> END:
> ...
>
> 00408CE5 saved_gcl.exe:00408CE5 eval eval.c:1052
> int eval(
> object form = &(indirect)
> )
> ...
> (*fun->s.s_sfdef)(MMcdr(form));
> CHECK_AVMA;
> > ihs_pop();
> return;
> }
> ...
>
> 0041320D saved_gcl.exe:0041320D Fprogn prog.c:258
> int Fprogn(
> object body = &(indirect)
> )
> ...
> vs_top=top;
> eval(MMcar(body));
> > body=MMcdr(body);
> } while (!endp(body));
> }
> ...
>
> 0040F8A5 saved_gcl.exe:0040F8A5 Flet let.c:86
> int Flet(
> object form = &(indirect)
> )
> ...
> Fprogn(body);
>
> > lex_env = old_lex;
> bds_unwind(old_bds_top);
> }
> ...
>
> 00408CE5 saved_gcl.exe:00408CE5 eval eval.c:1052
> int eval(
> object form = &(indirect)
> )
> ...
> (*fun->s.s_sfdef)(MMcdr(form));
> CHECK_AVMA;
> > ihs_pop();
> return;
> }
> ...
>
> 0041320D saved_gcl.exe:0041320D Fprogn prog.c:258
> int Fprogn(
> object body = &(indirect)
> )
> ...
> vs_top=top;
> eval(MMcar(body));
> > body=MMcdr(body);
> } while (!endp(body));
> }
> ...
>
> 0040F8A5 saved_gcl.exe:0040F8A5 Flet let.c:86
> int Flet(
> object form = &(indirect)
> )
> ...
> Fprogn(body);
>
> > lex_env = old_lex;
> bds_unwind(old_bds_top);
> }
> ...
>
> 00408CE5 saved_gcl.exe:00408CE5 eval eval.c:1052
> int eval(
> object form = &(indirect)
> )
> ...
> (*fun->s.s_sfdef)(MMcdr(form));
> CHECK_AVMA;
> > ihs_pop();
> return;
> }
> ...
>
> 00407D4F saved_gcl.exe:00407D4F funcall eval.c:314
> int funcall(
> object fun = &(indirect)
> )
> ...
> for (;;) {
> eval(MMcar(x));
> > x = MMcdr(x);
> if (endp(x))
> break;
> ...
>
> 00407EE4 saved_gcl.exe:00407EE4 funcall_no_event eval.c:372
> int funcall_no_event(
> object fun = &(indirect)
> )
> ...
>
> }
> > }
>
> lispcall(funp, narg)
> ...
>
> 00408E6D saved_gcl.exe:00408E6D eval eval.c:1109
> int eval(
> object form = &(indirect)
> )
> ...
> CHECK_AVMA;
> ihs_pop();
> > return;
>
> LAMBDA:
> ...
>
> 00409180 saved_gcl.exe:00409180 fLeval eval.c:1198
> object fLeval(
> object x0 = &(indirect)
> )
> ...
> lex_new();
> eval(vs_base[0]);
> > lex_env = lex;
> return Ivs_values();
> }
> ...
>
> 00449EE5 saved_gcl.exe:00449EE5 c_apply_n funlink.c:239
> object c_apply_n(
> int ()(void) * fn = &0x0040913c,
> int n = 1,
> object * x = &0x1023e5dc
> )
> ...
> case 2: res=(object)(*fn)(x[0],x[1]);break;
> case 3: res=(object)(*fn)(x[0],x[1],x[2]);break;
> > case 4: res=(object)(*fn)(x[0],x[1],x[2],x[3]);break;
> case 5: res=(object)(*fn)(x[0],x[1],x[2],x[3],x[4]);break;
> case 6: res=(object)(*fn)(x[0],x[1],x[2],x[3],x[4],x[5]);break;
> ...
>
> 0044EAA4 saved_gcl.exe:0044EAA4 IapplyVector nfunlink.c:235
> object IapplyVector(
> object fun = &(indirect),
> int nargs = 1,
> object * base = &0x1023e5dc
> )
> ...
>
> }
> > res = c_apply_n(fun->sfn.sfn_self,nargs,abase);
> res = COERCE_F_TYPE(res,F_RESULT_TYPE(fun->sfn.sfn_argd),F_object);
> if (F_ARG_FLAGS_P(fun->sfn.sfn_argd,F_caller_sets_one_val))
> ...
>
> 0040790C saved_gcl.exe:0040790C funcall eval.c:176
> int funcall(
> object fun = &(indirect)
> )
> ...
> { object res,*b = vs_base;
> int n = vs_top - b;
> > res = (object)IapplyVector(fun,n,b);
> n = fcall.nvalues;
> vs_base = b;
> ...
>
> 004082E1 saved_gcl.exe:004082E1 symlispcall eval.c:499
> int symlispcall(
> object sym = &(indirect),
> object * base = &0x1023e5dc,
> int narg = 1
> )
> ...
> default:
> funcall(fun);
> > }
> CHECK_AVMA;
> }
> ...
>
> 004605FD saved_gcl.exe:004605FD getenv mingfile.c:85
> char * getenv(
> char * variable = &'/'
> )
> ...
> GetEnvironmentVariable(variable,res,n);
> return res;
> > }
>
>
> ...
>
> 00407301 saved_gcl.exe:00407301 quick_call_sfun eval.c:101
> int quick_call_sfun(
> object fun = &(indirect)
> )
> ...
> {enum ftype typ=SFUN_NEXT_TYPE(i);
> x[j]=COERCE_ARG(vs_base[j],typ);}}
> > SET_TO_APPLY(res,(object (*)())fun->sfn.sfn_self,n,x);
> base[0]=
> (restype==f_object ? res :
> ...
>
> 004078B2 saved_gcl.exe:004078B2 funcall eval.c:166
> int funcall(
> object fun = &(indirect)
> )
> ...
> quick_call_sfun(fun);
> ihs_pop();
> > return;
> case t_vfun:
> ihs_check;ihs_push(fun);
> ...
>
> 0044EB5A saved_gcl.exe:0044EB5A IapplyVector nfunlink.c:246
> object IapplyVector(
> object fun = &(indirect),
> int nargs = 0,
> object * base = &0x0022fd00
> )
> ...
> vs_base = base;
> funcall(fun);
> > fcall.nvalues = vs_top - vs_base;
> {int i = fcall.nvalues ;
> object *p = vs_top;
> ...
>
> 00409052 saved_gcl.exe:00409052 fLfuncall eval.c:1156
> object fLfuncall(
> object fun = &(indirect),
> int __builtin_va_alist = 2292992
> )
> ...
> va_start(ap);
> {COERCE_VA_LIST(new,ap,n);
> > return IapplyVector(fun,n-1,new);
> va_end(ap);
> }
> ...
>
> 00449EE5 saved_gcl.exe:00449EE5 c_apply_n funlink.c:239
> object c_apply_n(
> int ()(void) * fn = &0x00408ffc,
> int n = 1,
> object * x = &0x101071cc
> )
> ...
> case 2: res=(object)(*fn)(x[0],x[1]);break;
> case 3: res=(object)(*fn)(x[0],x[1],x[2]);break;
> > case 4: res=(object)(*fn)(x[0],x[1],x[2],x[3]);break;
> case 5: res=(object)(*fn)(x[0],x[1],x[2],x[3],x[4]);break;
> case 6: res=(object)(*fn)(x[0],x[1],x[2],x[3],x[4],x[5]);break;
> ...
>
> 0044EAA4 saved_gcl.exe:0044EAA4 IapplyVector nfunlink.c:235
> object IapplyVector(
> object fun = &(indirect),
> int nargs = 1,
> object * base = &0x101071cc
> )
> ...
>
> }
> > res = c_apply_n(fun->sfn.sfn_self,nargs,abase);
> res = COERCE_F_TYPE(res,F_RESULT_TYPE(fun->sfn.sfn_argd),F_object);
> if (F_ARG_FLAGS_P(fun->sfn.sfn_argd,F_caller_sets_one_val))
> ...
>
> 0040790C saved_gcl.exe:0040790C funcall eval.c:176
> int funcall(
> object fun = &(indirect)
> )
> ...
> { object res,*b = vs_base;
> int n = vs_top - b;
> > res = (object)IapplyVector(fun,n,b);
> n = fcall.nvalues;
> vs_base = b;
> ...
>
> 00407EE4 saved_gcl.exe:00407EE4 funcall_no_event eval.c:372
> int funcall_no_event(
> object fun = &(indirect)
> )
> ...
>
> }
> > }
>
> lispcall(funp, narg)
> ...
>
> 00408E6D saved_gcl.exe:00408E6D eval eval.c:1109
> int eval(
> object form = &(indirect)
> )
> ...
> CHECK_AVMA;
> ihs_pop();
> > return;
>
> LAMBDA:
> ...
>
> 00407D4F saved_gcl.exe:00407D4F funcall eval.c:314
> int funcall(
> object fun = &(indirect)
> )
> ...
> for (;;) {
> eval(MMcar(x));
> > x = MMcdr(x);
> if (endp(x))
> break;
> ...
>
> 00407EE4 saved_gcl.exe:00407EE4 funcall_no_event eval.c:372
> int funcall_no_event(
> object fun = &(indirect)
> )
> ...
>
> }
> > }
>
> lispcall(funp, narg)
> ...
>
> 00408E6D saved_gcl.exe:00408E6D eval eval.c:1109
> int eval(
> object form = &(indirect)
> )
> ...
> CHECK_AVMA;
> ihs_pop();
> > return;
>
> LAMBDA:
> ...
>
> 00407D4F saved_gcl.exe:00407D4F funcall eval.c:314
> int funcall(
> object fun = &(indirect)
> )
> ...
> for (;;) {
> eval(MMcar(x));
> > x = MMcdr(x);
> if (endp(x))
> break;
> ...
>
> 00408985 saved_gcl.exe:00408985 super_funcall eval.c:748
> int super_funcall(
> object fun = &(indirect)
> )
> ...
> fun = fun->s.s_gfdef;
> }
> > funcall(fun);
> }
>
> ...
>
> 004015FF saved_gcl.exe:004015FF main.c:308
> ...
> again:
> super_funcall(sStop_level);
> > if (type_of(sSAmultiply_stacksA->s.s_dbind)==t_fixnum)
> {multiply_stacks(fix(sSAmultiply_stacksA->s.s_dbind));
> goto again;}
> ...
>
> 004011DE saved_gcl.exe:004011DE
> 0040120B saved_gcl.exe:0040120B
> 77E992A6 KERNEL32.dll:77E992A6 GetCommandLineW
>
>
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
- Re: [Gcl-devel] Re: gcl on ms windows,
Camm Maguire <=