Skip to content

Commit d1a9f04

Browse files
Add changelog and update docs
1 parent 37c81e4 commit d1a9f04

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

docs/changelog.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ _This project uses semantic versioning_
44

55
## UNRELEASED
66

7+
- Improve high-level Python ergonomics and docs [#397](https://github.com/egraphs-good/egglog-python/pull/397)
8+
- Add `EGraph.freeze()`, returning a `FrozenEGraph` snapshot that can be pretty-printed back into replayable high-level Python actions for debugging and inspection.
9+
- Add a variadic `EGraph(*actions, seminaive=True, save_egglog_string=False)` constructor so actions can be registered at construction time, and export `ActionLike` from `egglog` for typing code that works with `EGraph.register(...)` and the constructor.
10+
- Add richer general-purpose builtin helpers used by the new containers/polynomials work, including additional `Vec`, `MultiSet`, numeric, and string operations.
11+
- Expand the Python integration/reference docs with examples for `run`, `stats`, `function_values`, `freeze`, `display`, and `saturate`, and clarify that proof-mode commands exposed in low-level bindings are not yet supported as a full high-level Python workflow.
12+
- Add the new containers/polynomials documentation and examples.
13+
- Fix several high-level bugs:
14+
- auto-prefix generated `let` bindings with `$` so recorded programs and round-tripped output are valid egglog;
15+
- keep schedules and default-rewrite rules live after materialization so later declarations are not missed;
16+
- fix empty Python container conversions and several higher-order callable / nested-lambda inference edge cases.
17+
- Update the experimental `egglog.exp.array_api` module overall, including docs, doctests, and CI coverage.
18+
719
## 13.0.1 (2026-03-04)
820

921
- Fix install by adding cloudpickle as required dependency [#405](https://github.com/egraphs-good/egglog-python/pull/405)

docs/reference/egglog-translation.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,15 @@ The correct function type (in this case it would be `Callable[[i64, i64], Unit]`
211211

212212
To run actions in Python, they are passed as arguments to the `egraph.register` function. We have constructors to create each kind of action. They are created and registered in this way, so that we can use the same syntax for executing them on the top level egraph as we do for defining them as results for rules.
213213

214+
You can also pass initial actions directly to the high-level constructor:
215+
216+
```{code-cell} python
217+
egraph = EGraph(
218+
let("x", i64(1)),
219+
set_(fib(0)).to(i64(0)),
220+
)
221+
```
222+
214223
Here are examples of all the actions:
215224

216225
### Let

0 commit comments

Comments
 (0)