On Thu, Apr 28, 2005 at 02:14:17PM +0200, Leopold Toetsch wrote:
> Nicholas Clark <[EMAIL PROTECTED]> wrote:
> 
> > (gdb) p interpreter->exceptions
> > $5 = (struct parrot_exception_t *) 0x0
> 
> > what should have initialised that?
> 
> An exception structure is created per entering a run-loop, see:
> src/inter_runc.c:runops(). You can either create your own exception
> setup/handler (which needs an interface) or probably simpler (and
> proposed some time ago) use Parrot_run_native() to start your C code.
> 
> With the latter you'd have:
> 
>    perl                                     parrot
> 
>    perl_init()
>    interp = Parrot_new()
>    ...
>    Parrot_run_native(interp, perl_run) -->
>                                             runops()
>                                           enternative perl_run
>                                      <--
> 
>    perl_run() { ... }
> 
> This would also set the stack top for GC.

At this point I don't want to set the stack top for GC (at least not
including the stack that holds perl 5 function calls), as I'm trying to track
down all the causes of reference count anomalies in the perl core.

I've already found 1 bug (and fixed it):

http://public.activestate.com/cgi-bin/perlbrowse?patch=24410

and I think that I may have another long standing bug w.r.t. when global
destruction of the symbol table actually happens.

Nicholas Clark

Reply via email to