Commit graph

12 commits

Author SHA1 Message Date
Rob Knight
c7b39f21f0
Support SELF keyword in Podlang parser (#368)
* Support SELF keyword in Podlang parser

* Add pretty-printing for SELF
2025-07-29 17:35:48 -07:00
Rob Knight
59c6151dbc
Secret keys in Podlang (#365) 2025-07-29 15:50:10 -07:00
Rob Knight
9f8335756c
Add Podlang pretty-printing (#353)
* Add Podlang pretty-printing

* Review feedback changes

* Formatting

* Use Display impl for printing StatementTmplArg
2025-07-25 08:43:43 -07:00
Daniel Gulotta
89dfc4e214
always replace SELF when copying statements (#345) 2025-07-22 14:56:37 -07:00
b5e0d97cb6
remove MockSignedPod (#339)
- breaking change: Removal of MockSignedPod.  Use SignedPod instead.
- breaking change: Redefinition of numerical id for values of PodType.
2025-07-15 11:19:19 +02:00
Rob Knight
0750dbeaff
Detect invalid wildcards in the language processor (#321) 2025-07-08 15:31:15 -07:00
Rob Knight
b123185ee9
Support public key literals and tidy up handling of Raw vs PodId (#319)
* Support public key literals and tidy up handling of Raw vs PodId
2025-07-01 01:34:35 -07:00
3c6930dfe6
Allow literals in statement templates (#287)
This PR is a continuation of the work done in #276 
- Fix PodType in MainPod (we were using `MockMain` instead of `Main`)
- Update anchored keys in statement template arguments to only support wildcards in the origin and literal keys as the key.
  - Update the pest grammar accordingly
  - Update the parser accordingly
- Rewrite the eth_dos example in a recursive manner so that we use one recursive pod for every distance increment of 1.
  - I've also used the podlang to define the eth_dos custom predicates.  Currently all predicates are in a single batch (previously `eth_friend` was in a different batch).  With #286 we could define `eth_friend` in a different batch again.
    - I was feeling a bit creative and used a format macro to pass `Value`s from rust to the podlang code.
  - The eth_dos is now written using literals.  This resolves https://github.com/0xPARC/pod2/issues/255
- Remove `StatementArg::WildcardValue` in favor of `StatementArg::Literal`.  The `WildcardValue` was just a way to have some kind of typing for values that would be used as arguments in custom predicates.  Now that we can have literals in any statement this value can be anything, so I just removed the `WildcardValue` and use `Literal` instead.  On the backend it was already the case that both cases were treated the same way (after all, `WildcardValue` and `Literal` were 4 fields in the backend).
  - Added a new type for Value: `PodId` so that we can use it for custom predicates that take a pod id to be used in a wildcard
- Add a mock vd_set that is empty for tests that don't use plonky2; this allows running those tests individually without paying for the expensive work of calculating the vd for various circuits.
- rename StatementTmplArg::WildcardValue to StatementTmplArg::Wildcard
2025-06-16 16:38:38 +02:00
Daniel Gulotta
7d0d3ad769
Allow literals in statements (#276)
Implements #229 and #261.
2025-06-13 10:27:19 -07:00
Rob Knight
21ab3c2d0d
Basic 'use' syntax for importing custom predicates (#286)
* Basic 'use' syntax for importing custom predicates

* Add extra test for unknown batches

* Fix unused import

* Enforce that imports must match number of predicates in a batch
2025-06-13 10:09:08 -07:00
6feff2ae69
display statement/statement_tmpl as in pod lang v1 (#269)
* display statement/statement_tmpl as in pod lang v1

* fix tests
2025-06-10 15:06:57 +02:00
Rob Knight
541c264586
Podlog language v1 (#225)
* Initial commit for Podlog language

* Spell-checker thinks that 'lits' is a bad abbreviation for 'literals'

* Enable SetContains/SetNotContains

* Update language based on review feedback

* Typo/comment fix

* Make native predicates case-sensitive

* Enforce max batch size in CustomPredicateBatchBuilder

* Remove some unnecessary checks for things handled by the grammar

* Clean up more unnecessary error-checking

* Typo

* Simplify hex processing

* Replace various errors with unreachable!()

* Translate from big-endian hex string to little-endian RawValue

* Update hex en/decoding functions
2025-06-06 22:17:23 -07:00