On 3 Mar 2004, at 08:09, Leopold Toetsch wrote:
I wasn't aware that the Parrot DOD/GC would run even if I wasn't running any parrot bytecode, so when we started executing larger amounts of perl code, things got ugly because parrot was GCing from under our feet!
Do you initialize interpreter->lo_var_ptr? If you aren't entering any runloop and this pointer isn't set, you will still have DOD bugs, because the processor stack will not be marked properly.
You can set this pointer to the address of an automatic variable in main
(or wherever you construct Parrot_Interp) or follow the scheme used in
t/src/basic_3, i.e. run your code via Parrot_run_native().
Cheers Arthur
leo
All I do is PL_Parrot = Parrot_new(0) Parrot_init(PL_Parrot)
Are you saying I have to initialize PL_Parrot-> lo_var_ptr ? I cannot actually do that using the current extending API :/
Arthur