Congrats!
Nice to see the commitment and evolution. :)

KR
Graham McLeod
Owner/Chief Architect
“Building Desirable Futures”

PastedGraphic-1.tiff


Training • Consulting • Tools  • Research




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