gcl-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]