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