Files
ARCADIA-Studio/harness/experiments/library-compatibility-20260911/README.md
T

45 lines
5.2 KiB
Markdown

# Isolated library compatibility experiment
Codex-956atf `/root/library_compatibility`, 2026-09-11. Read the [candidate contract](../../release-library-compatibility-contract-20260911.md) for the recommended production semantics and explicit limits.
`main.rs` is a std-only finite-model experiment, not Studio code or accepted source7 grammar. Its archive files use opaque symbolic IDs, a closed pipe-delimited record dialect and integer-millisecond arithmetic. Every final package contains its complete relevant prototype records and definitions. The `SELF` definition-reference category becomes an exact imported reference during materialization; the external sink prototype is mapped by a declared role. The source request starts with a blank project and a supplied package, creates two independent instances, edits one property, then selectively adopts a cosmetic revision while preserving outside consumers.
Final evidence is exclusively in `generated-final/` and `EVIDENCE.json`. The `generated/` directory contains the superseded preliminary interpreter-default run and is labeled accordingly. Its removal was rejected by automatic approval review; it is not final evidence.
## Reproduce on this configured Windows host
Root authorized this isolated compiler invocation. It does not invoke Cargo or write `target`. The toolchain setup path is this workspace's existing local setup, not a portable dependency included in the repository.
```powershell
. '.local/toolchain/env.ps1'
New-Item -ItemType Directory -Path '.local/library-compatibility-20260911' -Force | Out-Null
rustc --edition=2024 -D warnings -C linker=clang.exe `
'harness/experiments/library-compatibility-20260911/main.rs' `
-o '.local/library-compatibility-20260911/library-compatibility.exe'
& '.local/library-compatibility-20260911/library-compatibility.exe' `
'harness/experiments/library-compatibility-20260911/generated-final'
& '.local/library-compatibility-20260911/library-compatibility.exe' --reopen `
'harness/experiments/library-compatibility-20260911/generated-final/03-updated' `
'harness/experiments/library-compatibility-20260911/generated-final/05-fresh-process-reopened'
```
On another host, compile this same std-only source with a suitable Rust compiler and run the executable with the explicit output directory. Omit the Windows linker override where inappropriate. No network, Studio process, package cache or GUI is used. The separate `--reopen` process loads only the declared project/management/package files; it does not recreate the initial package or consult the experiment's package constructors.
Final compiler: `rustc 1.98.1 (48a229cea 2026-09-01)`, host `x86_64-pc-windows-gnullvm`, LLVM 22.1.8. Final run: 120 assertions, exit 0; fresh-process reopen: exit 0. All 11 files of the updated, expected and fresh-reopened documents have independently matching SHA-256 hashes.
## Read the experiment
- `generated-final/package-D1.library`: complete exact original package. D2 changes only version/documentation; D3 changes the field cardinality. The SA package is a distinct explicit target package.
- `initial.request`, `local-edit.request`, `selective-update.request`: concise complete experiment requests. `D1` in the initial request denotes the explicitly supplied D1 archive in the runner, not a cache search.
- `01-initial/`, `02-edited/`, `03-updated/`: complete accepted snapshots. `project.model` declares all package and management paths. Each instance has a full typed `base.model`, `map.model`, and `lineage.model`.
- `expected-initial.model` and `expected-full-updated/`: independently specified literal initial records and complete updated document oracle. The expected changed rows do not come from `update()` or `materialize()`.
- `04-reidentified/`: current-ID remap with the exact original baseline retained and explicit lineage.
- `05-fresh-process-reopened/`: output of a new process loading the updated portable directory.
- `explicit-bridges.model`: two validated pair-specific identity witnesses for the alternative bridge policy.
- `oa-sa-transition.model`: complete finite pinned/derivative dictionary maps, origin/target pins, target functions/ports/exchange and a refined derivative that cannot be silently written back into the original mount.
- `RESULTS.md`: final observed results and limitations. `EVIDENCE.json` is one level above it and records source/executable/fixture hashes.
The source parser/materializer, full-state parser/writer and finite admission checks are separate paths. Negative controls include strict revision-only consumer rejection, missing explicit bridges, different origins and Energy/Torque, changed contract closure, stale update revision, unresolved expression conflict, field/operation mapping, wrong-layer counterpart, incomplete correspondence, forged package/base/current map, missing imports, reused reserved IDs, local name/subject edits, unrelated additions and dangling outside consumers.
The frozen archive/source hashes depend on exact bytes. Do not normalize line endings when publishing these fixtures. A compile-time type inference correction and the move from interpreter-supplied prototype defaults to complete package records occurred before the final hash-bound run. They are not counted as passing final experiments.