We are happy to announce the availability of Soil version 5.

What is new?

Automatic change tracking: Soil now computes a recursive content hash for 
objects and uses it to detect modifications automatically. This removes the 
need for the explicit markDirty: calls that were previously required — 
something we called out as a goal back in the v4 announcement.
Read-only transactions have been hardened: we now distinguish a transaction 
that is intentionally read-only from one that just happens to end up with no 
changes, and read-only transactions abort automatically instead of committing a 
no-op.
Indexed collections (SoilPersistentDictionary and indexed dictionaries) can now 
be used as non-root objects, not just at the root of the database.
A first working garbage collector has landed — a preview, not a finished 
feature: Soil>>garbageCollect compacts object segments offline by cloning and 
atomically swapping them in. There's also a new opt-in Soil>>checkConsistency 
you can run separately without slowing down the GC itself. The data-layer 
primitives for a future online/segment-based GC are also in place, though not 
yet wired up.
A new SoilCommitError hierarchy lets you catch any commit-time failure with one 
exception class instead of several unrelated ones.
A good number of crash and silent-data-corruption fixes, notably around the 
graph exporter/importer, backup version history, and depth-first traversal.
Full changelog: 
https://github.com/ApptiveGrid/Soil/blob/main/docs/versions/changelog-v5.md

I also wrote up the release on the blog, with a bit more context: 
https://norbert.hartl.name/blog/2026-07-29_soil-v5-released.html

What is planned next?

Integrating the Windows support work that's already sitting there
Process-specific variables
A preview of an online GC, building on the primitives that landed in v5
Multi-index collections and partial indexes (carried over from v4's plan)
Hope you like it. Give it a spin and then tell us!

Norbert & Marcus
_______________________________________________
Pharo-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to