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
Congrats! Nice to see the commitment and evolution. :) KR Graham McLeod Owner/Chief Architect “Building Desirable Futures”  Training • Consulting • Tools • Research graham@inspired.org <mailto:graham@inspired.org> https://www.inspired.org <https://www.inspired.org/>. landline: +27 21 531 5404 LinkedIn: https://www.linkedin.com/in/grahamatinspired/
On 29 Jul 2026, at 18:07, Norbert Hartl via Pharo-dev <pharo-dev@lists.pharo.org> wrote:
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 -- pharo-dev@lists.pharo.org To unsubscribe send an email to pharo-dev-leave@lists.pharo.org
participants (2)
-
Graham McLeod -
Norbert Hartl