1) the trace output runs now through a dedicated debug interpreter, so
that resource allocations due to creating trace output shouldn't
disturb the running interpreter. Just subroutine call/return info goes
through the original interpreter.
./parrot -t1 foo.pir
should now have the same resource usage as w/o tracing
2) I've beautified the output a bit (I hope)
3) Tracing into a file is now running in reasonable time:
21:21 <+svnbot6> r11597 | leo++ | trunk:
21:21 <+svnbot6> : Debugging - speedup tracing into a file a bit ;)
21:21 <+svnbot6> : $ time ./parrot -t1 ack.pir 3 >1 2>&1
21:21 <+svnbot6> : real 2m47.259s # orig
21:21 <+svnbot6> : real 0m1.538s # now
(timings from an unoptimized build)
leo