Bytecode annotations - annotations op and custom backtraces
Francois Perrad
fperrad at besancon.parkeon.com
Wed Jan 7 12:36:08 UTC 2009
Jonathan Worthington a écrit :
> Hi,
>
> I've got PDD13 bytecode annotations implemented, plus the things
> mentioned in PDD19 (so they're now parsed and stored in the bytecode)
> and PDD23 (the .annotations method on exceptions, to get the annotations
> that applied when the exception was thrown).
>
> Now this stuff is done, I'm ready to merge the branch in, after some
> feedback from folks++ on IRC. However, I have a couple more thoughts on
> things we might do to make this more useful (post-merge, since I doubt
> they'll be so disruptive).
>
> 1) In Perl 6, you can do things like $?FILE and $?LINE to get the
> current file and line number. I think the easiest way to make this work
> will be an annotations op.
>
> $P0 = annotations # gets a hash of all annotations in force
> $P0 = annotations 'line' # value of the 'line' annotation only
>
> 2) I think we're going to want some better control over generating
> backtraces. I suggest a backtrace method on an Exception object. It will
> return an array of hashes, which represent the backtrace and contain the
> keys:
>
> sub - the Sub PMC of the sub that had been called (or sub subclass
> of it)
> annotations - a hash of the annotations in force at the point the
> exception was thrown in the top entry, and those in force at the point
> of call down the rest of the chain
>
> This should give HLL developers the ability to emit backtraces as they
> wish (since the language they are implementing may want a trace emitted
> in a given form).
>
> Want? Not want?
>
Yes, Lua wants it. I think partcl too.
Lua lost its user backtrace since Parrot 0.7.0. Since this release, it's
become useless.
François.
> Thanks,
>
> Jonathan
>
> _______________________________________________
> http://lists.parrot.org/mailman/listinfo/parrot-dev
>
>
>
More information about the parrot-dev
mailing list