A spinoff/export from the iPad Pharo:
validate_smalltalk_image — standalone C++ tool for inspecting Spur image files from the outside
This is a read-only tool that parses the binary Spur format directly (no VM needed). It walks the heap, validates structural integrity, and now supports exporting image contents in diff-friendly text formats.
Validation: checks object alignment, class table consistency, superclass chain cycles, method header/literal frame integrity, pointer slot validity, and reachability from roots. Reports errors (corruption) vs warnings (suspicious but survivable).
Export commands (new):
--export-shasum SHA-256 per object — designed for diffing before/after a test run
--export-catalog full object metadata (text, JSON, or CSV)
--export-hierarchy class inheritance tree with method and instvar counts
--export-graph object reference adjacency list (full or rooted subgraph)
The shasum workflow: snapshot the image before running your test suite, snapshot after, diff the two files. You get a list of every object whose content changed, with class names. Useful for understanding side effects or catching unexpected mutations.
https://github.com/avwohl/validate_smalltalk_image
A spinoff/export from the iPad Pharo:
validate_smalltalk_image — standalone C++ tool for inspecting Spur image files from the outside
This is a read-only tool that parses the binary Spur format directly (no VM needed). It walks the heap, validates structural integrity, and now supports exporting image contents in diff-friendly text formats.
Validation: checks object alignment, class table consistency, superclass chain cycles, method header/literal frame integrity, pointer slot validity, and reachability from roots. Reports errors (corruption) vs warnings (suspicious but survivable).
Export commands (new):
--export-shasum SHA-256 per object — designed for diffing before/after a test run
--export-catalog full object metadata (text, JSON, or CSV)
--export-hierarchy class inheritance tree with method and instvar counts
--export-graph object reference adjacency list (full or rooted subgraph)
The shasum workflow: snapshot the image before running your test suite, snapshot after, `diff` the two files. You get a list of every object whose content changed, with class names. Useful for understanding side effects or catching unexpected mutations.
https://github.com/avwohl/validate_smalltalk_image