10 — Source Audit: betroffene Online-Spec-Bereiche¶
Status: Arbeitsnotiz
1. Online-Specs geprüft¶
Verwendete Online-Bereiche:
https://specs.iowling.at/
https://specs.iowling.at/00-refinements/
https://specs.iowling.at/02-typsystem/
https://specs.iowling.at/04-qualifier-effekte-konversionen-wire/
https://specs.iowling.at/04-axiomatik-profiles-executables/
https://specs.iowling.at/04a-label-inferenz-regeln/
https://specs.iowling.at/07-cast-effekte-refinements/
https://specs.iowling.at/10-runtime-handles-und-memory-safety/
https://specs.iowling.at/11-jadevalue-und-register-layout/
https://specs.iowling.at/Notizen/jdl-types-tags-phantoms/
Die lokalen Dateien im Projektverzeichnis wurden absichtlich nicht als Quelle verwendet.
2. Festgestellte Altlasten¶
type für Meta-Begriffe¶
Problem:
Semantisch kein Werttyp.
Ziel:
type ... : enum für compile-time Policies¶
Problem:
Wenn diese Varianten nie Runtime-Werte sein sollen, ist type enum falsch.
Ziel:
Phantom-Beispiele mit Wert-Enum¶
Problem:
Ziel:
Qualifier-Kombinationen¶
Problem:
Ziel:
Narrow/Try als Suffix-Modus¶
Problem:
provide CastTo[UserSummary]: Narrow for User { ... }
provide CastTo[UserId]: Try[ConvError] for User { ... }
Ziel muss noch final entschieden werden. Konsolidierte Semantik:
Cast-Modus ist Eigenschaft der Cast-Relation.
Try ist fallibler Modus, aber `=?` ist Propagation zur Boundary.
deps-Syntax¶
Problem: alte Beispiele in Runtime-/informativem Material.
Ziel: imperativer Service-Parameter oder Effect[R, E, D].
Ref vs. Rc¶
Problem: unterschiedliche Schreibweisen.
Ziel: Rc als Memory-Policy für Refcounted Heap-Objekte.
3. Implementierungsrelevante Konsequenzen¶
- TagId darf nicht TypeId sein.
- TagEngine gehört in die Type Engine.
- Tags bekommen CompilerDb Queries.
- Tags bekommen keinen RuntimeBus.
- Tag-FQNs/Fingerprints sind für Plugins und Caches nötig.
- TypeFn-Auswertung muss Type-Level-Werte inklusive TagId verarbeiten.
- Meta-Normalisierung muss Tag-Meta expandieren.
- Closure muss Provenienz `tag` und `typefn` führen.
4. Empfohlene Reihenfolge für echte Spec-Integration¶
1. Neues Ontologie-Kapitel einfügen.
2. 00-refinements auf Tags statt Profile-Type-Aliases ändern.
3. 02-typsystem auf tag enum + Phantom-Tags ändern.
4. TypeFn-Kapitel schärfen.
5. Axiomatik-Provenienz aktualisieren.
6. Label-Inferenz source_kind `tag` ergänzen.
7. JME-Kapitel auf tag-basierte Memory-/Region-Policies ändern.
8. CompilerDb/TypeEngine D-Implementierungsabschnitt ergänzen.
9. Cast/try/=? getrennt konsolidieren.
10. Alte `deps`, `Ref`, `UserPhase`, `Profile`-Altlasten entfernen.