research: Squeak & Pharo deep dive (image-based Smalltalk); SHARD-WP-0004 T6+T8

Combined memo (justified merge). The image = purest 'live' end; hardens
the image-is-not-a-store boundary (export->files only), generalizing
'attach files not the kernel/image'. Pharo Tonel/Iceberg confirms even
image traditions externalize to git text. Names the live<->snapshot
projection axis (T16). Boundary/enrichment-only, no new UC. Marks T6+T8 done.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-14 23:54:48 +02:00
parent 4acadacfee
commit 56b6cdd110
6 changed files with 207 additions and 4 deletions

View File

@@ -2458,6 +2458,34 @@ projection. Architecture logged for `SHARD-WP-0002` (T12/T11/T15/T16): nestable
outline + typed structured outputs, structured-re-evaluable-value opacity point, CDF
reduced-capability projection.
### squeak / pharo mapping
(Boundary dive — **no new UC**; design prior art, covers **T6 Squeak + T8 Pharo** in one
justified-merge memo. Source: the **Squeak & Pharo deep dive**,
`research/260614-squeak-pharo-deep-dive/findings.md`.)
| Squeak/Pharo mechanism (findings §) | Catalog UC / thread |
|-------------------------------------|---------------------|
| Live-object inspector = generic ancestor of moldable views (§1) | links UC-54, UC-47/48 |
| Image = opaque monolithic non-diffable blob; not a page/store (§2) | **boundary** for UC-34/UC-35/UC-79 |
| Image participates only via export→files = degrading derivation-projection (§2) | links UC-83, UC-84 (live→snapshot) |
| Pharo Tonel/Iceberg: code-as-text in git (§3) | links UC-79, UC-76 |
| `.changes` = serial source-change log, not content history (§1) | links UC-36 |
Note: Squeak and Pharo are the **image-based live-object** tradition — a persistent world of
live objects (the "image") with **no file/document/app boundary** — and they serve shard-wiki
as both **inspiration** (the live inspector is the ancestor of GT's moldable views, UC-54/
UC-47/48) and a **hard boundary**. The image is an **opaque, monolithic, non-diffable blob**
with no page identity, history, or provenance, so **image-as-store is a design-bug boundary**:
it participates only via **export→files** (a degrading derivation-projection), the
generalized form of "attach files, not the kernel/image" (UC-84, GT T7). **Pharo** confirms
the resolution from the inside — even this tradition externalizes code to **git-versionable
text** (Tonel/Iceberg), reinforcing files-canonical + git coordination (UC-76/UC-79). They
name the **live↔snapshot** axis the projection model must carry (the purest "live" end of the
batch's spectrum). **No new UC.** Architecture logged for `SHARD-WP-0002` (T14/T16):
image-is-not-a-store binding boundary (export→files only); a live↔snapshot axis on every
projection.
---
## Open questions