>>>>> "Dirk" == Dirk Herrmann <[EMAIL PROTECTED]> writes:

    Dirk> On 5 Jun 2000, Mikael Djurfeldt wrote:
    >> Dirk Herrmann <[EMAIL PROTECTED]> writes:
    >> 
    >> > However, there is no macro SCM_SET_SUBRF yet, and I don't
    >> know whether I > should provide it in procs.h, or rather in
    >> procs.c?
    >> 
    >> Add it in procs.h.  Nobody is likely to use it, but it is
    >> probably good in general to have accessors for basic types like
    >> this in the header files.  But the main argument is: That is
    >> where one would expect to find it.  :)

    Dirk> It's OK for now, since the great-interface-review will
    Dirk> probably deal with such questions :-)

    Dirk> The fix is in cvs, so hopefully it compiles cleanly now,
    Dirk> except for the warnings.

Yes, it does, thank you!

For the warnings, I have something more serious before that: 
the executable crashes when attempting to read boot9.scm with message:
Erreur de segmentation(coredump)

(this is a French workstation...)

Here a stack trace from Sun WorkShop debugger:
   scm_boot_guile(argc = 1, argv = 0xeffff664, main_func = 0x11b18 = 
&`guile`guile.c`inner_main(void *closure, int
 argc, char **argv), closure = (nil))
   scm_boot_guile_1(base = 0xeffff594, closure = 0xeffff584)
   scm_internal_lazy_catch(tag = 9076, body = 0xef5fae20 = 
&`libguile.so.8`init.c`invoke_main_func(void *body_data),
 body_data = 0xeffff584, handler = 0xef655d20 = &scm_handle_by_message(void 
*handler_data, SCM tag, SCM args),
 handler_data = (nil))
   invoke_main_func(body_data = 0xeffff584)
   scm_load_startup_files()
   scm_primitive_load_path(filename = 224208)
   scm_primitive_load(filename = 224216)
   scm_internal_dynamic_wind(before = 0xef601048 = 
&`libguile.so.8`load.c`swap_port(void *data), inner = 0xef6010e0 =
 &`libguile.so.8`load.c`load(void *data), after = 0xef601048 = 
&`libguile.so.8`load.c`swap_port(void *data), inner_data
 = 0x36be8, guard_data = 0xeffff2a8)
   load(data = 0x36be8)
   scm_eval_x(obj = 224288)
   scm_eval_3(obj = 224288, copyp = 0, env = 10612)
   scm_ceval(x = 224288, env = 10612)
   scm_lookupcar(vloc = 224288, genv = 10612, check = 1)
   scm_error(key = 0, subr = (nil), message = 0xef693334 "Unbound variable: ~S", args 
= 224608, rest = 8564)
   scm_ithrow(key = 0, args = 224624, noreturn = 1)
   scm_handle_by_message(handler_data = (nil), tag = 0, args = 224624)
   handler_message(handler_data = (nil), tag = 0, args = 224624)
   scm_make_stack(obj = 9076, args = 10612)
   read_frames(dframe = (nil), offset = 0, n = 0, iframes = 0x9fdd0)
   get_applybody()
  scm_sym2vcell(sym = 0, thunk = 8564, definep = 8564)

It seems that reading the first line of boot9.scm works ok in 
load(), but then evaluating the form raises an error (scm_error is
called) due to an unbound identifier, because the environment of the
the scm_eval is eventually NULL. 
It is the subsequent handling of this error which causes the crash.

So the questions are:
1) Why are the identifiers not found in the environments ?
2) Why is such an error causing a core dump ?

-- 

B. Urban

Reply via email to