Add a status section the IR note file
This commit is contained in:
parent
6ba970e55c
commit
dc343be7ad
@ -160,6 +160,29 @@ The implemented IR is best understood as a relationalized, flattened theory:
|
||||
|
||||
So the IR is not just an AST for queries. It is the bridge from elaborated dependent syntax to a database-shaped form that later evaluation code can consume.
|
||||
|
||||
## Status
|
||||
|
||||
The IR looks good as a first compiler pass, but not yet as a complete runtime model.
|
||||
|
||||
What already looks solid:
|
||||
|
||||
- It matches the direction described in the other notes: theories become tables plus laws.
|
||||
- It already lowers nontrivial dependent structure into a relational form.
|
||||
- It makes important constraints explicit, especially `foreignKeys` and `total`.
|
||||
- It gives Geolog a plausible backend-neutral compiled form between elaboration and evaluation.
|
||||
|
||||
What still looks missing:
|
||||
|
||||
- explicit runtime state for the chase
|
||||
- fresh witness generation for existential conclusions
|
||||
- branch or world tracking for disjunction
|
||||
- equality-class or term-merging machinery
|
||||
- provenance and scheduling information
|
||||
|
||||
So the current IR is best seen as a lowered theory IR, not yet a full chase-runtime IR.
|
||||
|
||||
If the project keeps this design, the natural next step is probably a second layer above `FlatTheory` for runtime execution state. That layer would hold current facts, branch identity, fresh-name allocation, equality information, and evaluation metadata.
|
||||
|
||||
## Note
|
||||
|
||||
`docs/lecture3.tex` has a `Query IR` section header but no content yet, so the code above is currently the most concrete description of the actual intermediate representation.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user