On Tue, May 10, 2005 at 11:11:12AM -0500, [EMAIL PROTECTED] wrote:
> Please excuse the possible 'out of left field' (as we say) aspect of this 
> question but I recently heard about Omniscient Debugging (ODB):
> http://www.lambdacs.com/debugger/debugger.html

This seems to require almost the same journaling capacity for STM
(software transactional memory), although in STM's case we only mark
updates for "shared" variables, whilst in ODB a journal is kept for all
updates.

It is conceivable to build this facility into the PMCs, much like
how tied objects work, but my knowledge of parrot internals is
insufficient to answer whether it will be difficult or not.

Adding this sort of instrumentation is, however, much easier from a
compiler's point of view; all you need to do is to generate extra
instructions that records the timestamp, the variable being updated,
and its original value.  It will require a recompilation, and the
result is difficult to share across different Parrot-targetting
languages, so it's the less optimal choice.

If you'd like to experiment with adding such instrumentation to Perl 6
(and history navigator, etc), I can give you a committer bit in Pugs --
you can do logged PMCs in the form of IVars, or by generating more
instructions in the AST evaluation layer.  The latter approach can be
reused in the Parrot code generator, too.

Thanks,
/Autrijus/

Attachment: pgpGkdEQtC5qX.pgp
Description: PGP signature

Reply via email to