Revision history for Devel-MAT
0.16 2014/01/15 18:18:53
[CHANGES]
* More accurate format for dumping SV MAGIC annotations
- note that older files will contain incorrect information
* More accurate backref information
* Improvements to analysis of PAD lexicals
[BUGFIXES]
* Fix many cases of optree dumping to get correct PAD indexes
* Further minor fixes that improve SvREFCNT / inrefs accuracy
0.15 2014/01/14 11:12:37
[CHANGES]
* Remember to basename() $0 for default dumpfile name
* Added -eager_option import option
* Added $df->roots_strong
* Added options to $pmat->identify and pmat-identify-sv command
[BUGFIXES]
* Avoid infinite loop in $pmat->identify in cyclic cases
* Fix docs on ->rv method (RT92122)
0.14 2014/01/04 20:25:16
[CHANGES]
* Move much core data storage into XS structs, for reduced memory
consumption of analyser and some CPU performance gains
* Display human-readable size information in GTK explorer
* Added a size totals summary commandline tool
* Improved recursion logic in Inrefs tool; avoids multiple recursions
into shared structures
[BUGFIXES]
* Fix for 5.10.0
0.13 2013/12/06 21:37:35
[CHANGES]
* Performance improvement to inrefs counting
* Added Sizes tool - calculates structure and owned set and sizes
* Allow Tools to declare UI radiobutton sets
* Improved Tools ability to interact with the SV list
* Disable Tools menu items for loaded tools to avoid loading them
twice
[BUGFIXES]
* Add List::UtilsBy to requirements
* Our version of dopoptosub_at() doesn't need aTHX_
0.12 2013/12/03 15:18:43
[CHANGES]
* Classify outrefs and inrefs into various kinds
* Subclass ARRAY into PADLIST, PADNAMES, PAD for CODE
* Allow selection of what kinds of refs to count/display on the GTK
explorer
* Store more flags (CvWEAKOUTSIDE, CvCVGV_RC, AvREAL) so as to get
strong/weak references correct
* Store the SvOUTSTASH of SCALARs and REFs
* Added a commandline wrapper for $pmat->identify
[BUGFIXES]
* require() tool .pm files automatically when calling ->load_tool
0.11 2013/11/28 14:30:32
[CHANGES]
* Complete redesign of dumpfile format so it is more extensible in future
* Represent RVs by their own type, REF, rather than being a kind of SCALAR
* Store caller()-like context in dumpfiles as well
* Store CLONE/CLONED/ISXSUB CV flags and oproot
* Attempt to match CLONE protosubs with CLONED closures
* Added SCALAR->iv method
* Neaten the names of STASHes whose names begin with a control character
* Pretty-print PVs and limit length to 32 characters in GTK explorer
* Added icons for REF and LVALUE types
[BUGFIXES]
* Guard against PL_main_root being NULL, as it can be early in compilation
* Improved Reachability tool logic for CODE PAD slots
0.10 2013/11/26 00:42:14
[CHANGES]
* Display dumped perl version, SV and byte counts in GTK explorer
status bar
* Dump all GVs, even those without GPs
* Store size information about all SVs
+ TODO: CODE size does not take account of optree
* Have dump_at_{END,SIGABRT,SIGQUIT} print to STDERR
* Limit the capture size of PVs, but still note the full length
* Dump FILE and LINE of CVs and GVs
* Redrawn type icons
[BUGFIXES]
* Fix for NVLEN=16 architectures
0.09 2013/11/22 00:25:17
[CHANGES]
* Remove orphan count unit test as it is too unreliable
[BUGFIXES]
* Sometimes a PAD(0) slot is NULL
* ->identify is now a $pmat method
* ->identify should load Inrefs tool
* Try harder to clear PL_tmpsv when making an unreachable cycle
0.08 2013/11/10 19:27:30
[CHANGES]
* Chase more fields of an HV's mro_meta
* Document how Tools may interact with the UI
* Allow Tools to register and use icons on the UI
* Rework Reachability tool to analyse kinds of reachability
* Move inrefs logic into its own new Inrefs Tool
* Slight performance improvement to dumpfile loading
* Display icons also for general SV type
[BUGFIXES]
* Ensure ->find_symbol actually works for deeply-nested symbols
0.07 2013/11/08 01:33:01
[CHANGES]
* Added new concept of Devel::MAT::Tool::* and Devel::MAT::UI
* Implement SV type counting and reachability analysis Tools
* Allow dumping on SIGABRT
[BUGFIXES]
* Support perl 5.10
* Support NVSIZE==16 architectures
0.06 2013/10/28 00:14:24
[CHANGES]
* Don't yield constants from both anonymous subs -and- constix/constsv
lists
* Don't bother including all the PL_sv_undef lexnames
[BUGFIXES]
* Remember to store padlist in pre-5.18 perls
* PL_main_cv does not have a CvROOT(); need to use PL_main_root
(fixes unit test failures on non-threaded perls)
0.05 2013/10/22 01:34:44
[CHANGES]
* Added ->find_symbol and ->find_glob
* Identify weakrefs in descriptions and in GTK explorer
* All hashes have the backrefs AV field, not just stashes
* Recognise import() options on D:M:Dumper
* Grab padnames and pad AVs on 5.18
* Added a toolbar with back/forward buttons in GTK explorer
[BUGFIXES]
* Don't crash when ->identify'ing SVs that are stack temporaries
0.04 2013/10/09 23:23:27
[CHANGES]
* Renamed dumpfile() to just dump()
* Don't delete elided RVs; include both direct and via-RV outrefs
[BUGFIXES]
* Start 'identify' with the initial SV already seen so it doesn't
infinitely recurse
* Remember to still fix up consts_at from constix on ithreaded 5.18
* Need to check if SVs are actually magical (SvMAGICAL), not just
potentially magical (>= SVt_PVMG)
0.03 CHANGES:
* Altered handling of PADLISTs for perl 5.18.0
* Ensure that UINTs and PTRs are written in correct platform sizes
0.02 CHANGES:
* Bugfixes for non-threaded perls
* Trace constants/GVs/etc... through optrees
* Handle SVt_PVLV
0.01 First version, released on an unsuspecting world.