Find a file
Rob Knight 48aa004ae5
Create multiple PODs where resource limits for a single POD are exceeded (#444)
* Create multiple PODs where resource limits for a single POD are exceeded

* HashSet -> BTreeSet determinism fix

* Fixed incorrect assignment of input PODs and added test

* Ensure only a single output POD

* Return error when reveal() called with unknown statement

* Use unreachable! for presumed-impossible cases

* Use assert_eq! rather than debug_assert_eq

* Use FIFO for topological sort

* Simplify bounds calculation

* Some more simplifications/comments

* Enforce dep_idx < idx invariant

* Incrementally solve rather than estimating slack

* Fix tests to correctly test dependencies between private and public statements

* More tidying

* Note possible optimisation of MainPodBuilder cloning of input PODs

* Fix tracking of total input POD count

* Refactor tests

* Formatting

* Small optimisation: use Vec in place of BTreeSet

* Account for automatically-inserted Contains statements

* Formatting

* Fix possible issue with copied statements

* Simplify result type given only a single result MainPod

* Remove unnecessary POD count estimate functionality

* Simplify dependency ordering and tracking

* Remove notion of multiple output PODs from solver

* Minor simplifications

* Use add_constraint instead of with

* Remove unnecessary check following assertion

* Fix handling of anchored keys given that Contains statements are not auto-inserted if they already exist

* Fix confusing dependency graph test

* Remove prove_order

* Fix deduplication and possible double-counting of public but not copied statements

* Reorder so that the output POD is the final POD

* Add more detailed tests

* Remove redundant tests

* Simplify POD counting

* More docs

* Flag more branches as unreachable

* Formatting

* Fix for changed custom batch parsing
2026-01-28 07:44:04 +01:00
.github/workflows Add versioning features (#387) 2025-08-08 09:33:44 -07:00
book [docs] Port the example that @ax0 told me months ago about a theorem-ish perspective on predicates, and updates the signature section adding a note (& references) on the current signature scheme. (#443) 2026-01-07 16:24:56 +01:00
examples Improved predicate splitting (#445) 2026-01-27 21:54:21 -08:00
src Create multiple PODs where resource limits for a single POD are exceeded (#444) 2026-01-28 07:44:04 +01:00
.gitignore Aard custom (#49) 2025-02-24 09:05:30 -08:00
build.rs Feat/disk cache (#354) 2025-07-24 12:15:31 +02:00
Cargo.toml Create multiple PODs where resource limits for a single POD are exceeded (#444) 2026-01-28 07:44:04 +01:00
README.md Featurize middleware types that are actually defined by the backend (#94) 2025-02-27 14:15:31 +01:00
rust-analyzer.toml chore(qol): add rust-analyzer.toml (#187) 2025-04-08 08:33:49 +10:00
rust-toolchain.toml Feat/disk cache (#354) 2025-07-24 12:15:31 +02:00
rustfmt.toml Organize imports (#188) 2025-04-07 16:19:13 -07:00

POD2

Usage

  • Run tests: cargo test --release
  • Rustfmt: cargo fmt
  • Check typos: typos -c .github/workflows/typos.toml

Book

The book contains the specification of POD2. A rendered version of the site can be found at: https://0xparc.github.io/pod2/

To run it locally:

  • Requirements
  • Go to the book directory: cd book
  • Run the mdbook: mdbook serve