Skip Menu |

This queue is for tickets about the Devel-MAT CPAN distribution.

Report information
The Basics
Id: 108094
Status: resolved
Priority: 0/
Queue: Devel-MAT

People
Owner: Nobody in particular
Requestors: leonerd-cpan [...] leonerd.org.uk
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: 0.21



Subject: 'SUB' context does not store the pad depth
This makes it impossible to retrieve the appropriate pad at a particular depth of the callstack, when for example, looking to print the values of lexical variables at that time. Adding this to the file format however would require a minor version bump. -- Paul Evans
Annoyingly, the 'struct block_sub' context structure doesn't contain the actual current depth of this call. It does, however, contain a field called 'olddepth', which is the depth the interpreter should restore the CV to when that block returns. In effect, this means that the depth of the innermost call is given by the CV itself, and the depth of each subsequent call going down is given by the 'olddepth' field of the call nested inside it. Efficient from an interpreter perspective, but horrible for our analysis purposes. The question now becomes: where should we perform this conversion? Should the .pmat file dump the raw 'olddepth' field and leave it to the loader to fix up, much as it currently fixes so much other stuff? That probably feels best, as compared trying to get the dumper to walk those references and fix them up internally. Added problem: CVs don't store the depth either. -- Paul Evans
All now fixed. Long story short - I had to bump the 'minor' version of the format, but it now includes the same size-declaring extensible format for contexts as it does for SVs, so hopefully more forward-compatible. -- Paul Evans
Subject: rt108094.patch

Message body is not shown because it is too large.

Released -- Paul Evans