Is there a way to avoid stack walking at all in miniparrot? What do we do instead? (Nothing?)
Miniparrot's main purpose is to be able to bootstrap parrot by running its build scripts. Leaking a little memory may be acceptable. --Josh At 11:52 on 11/01/2002 EST, Andy Dougherty <[EMAIL PROTECTED]> wrote: > On Thu, 31 Oct 2002, Josh Wilmes wrote: > > > > > I've banged together a first attempt at a miniparrot- that is, something > > that can be built on any ANSI C system without anything other than a > > compiler. > > Great! > > I haven't looked deeply, but there is one little quibble I found so far: > > In config/auto/alignptrs.pl, there is > > if ($miniparrot) { > # we can't guarantee anything about pointer alignment under ANSI C89. > # so we will have to check every byte. > Configure::Data->set(ptr_alignment => 1); > > Alas, you can't check every byte. It is true that you can't portably > guarantee anything about pointer alignment. Thus, for example, it's not > guaranteed that you can access things at arbitrary alignment. > > In particular, with ptr_alignment = 1 on a SPARC, I get > > signal BUS (invalid address alignment) in trace_system_stack at line > 491 in file "dod.c" > 491 size_t ptr = *(size_t *)cur_var_ptr; > > -- > Andy Dougherty [EMAIL PROTECTED]