pharo-users@lists.pharo.org

Any question about pharo is welcome

View all threads

new tool validate_smalltalk_image

AW
Aaron Wohl
Tue, Mar 31, 2026 5:48 PM

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