Jacqueline Nabaglo
b6bc018cba
Simplify JUMP/JUMPI constraints and finish witness generation ( #846 )
...
* Simplify `JUMP`/`JUMPI` constraints and finish witness generation
* Constrain stack
2022-12-11 11:08:33 -08:00
Jacqueline Nabaglo
249e50ebcb
Get/set context ( #843 )
2022-12-11 10:59:14 -08:00
Jacqueline Nabaglo
29644e5111
Implement PC instruction ( #847 )
...
* Implement `PC` instruction
* lints
2022-12-11 10:41:32 -08:00
Jacqueline Nabaglo
95eeed46f0
Memory load/store constraints ( #839 )
2022-12-09 10:35:00 -08:00
Daniel Lubarov
f4ab65f973
Fixes to get test_simple_transfer working
2022-12-08 23:27:20 -08:00
Daniel Lubarov
f4fdb6a12f
Fix
2022-12-03 12:02:51 -08:00
Daniel Lubarov
b8b2fefe52
Use Keccak sponge table for bootloading
...
And get rid of the deprecated Keccak memory table.
2022-12-03 11:21:31 -08:00
Daniel Lubarov
20183c260b
Fixes & re-enabling most constraints
2022-12-02 22:47:07 -08:00
Daniel Lubarov
bfa680fcea
Fix recursive constraints
2022-12-02 19:43:01 -08:00
Daniel Lubarov
7293054062
Warnings
2022-12-02 14:49:32 -08:00
Daniel Lubarov
1f92d73177
Misc fixes
2022-12-02 14:31:18 -08:00
Daniel Lubarov
206f527338
Merge branch 'main' into jacqui/witness-generation
2022-11-30 10:09:57 -08:00
Jacqueline Nabaglo
87a9c002c9
Compiler errors + refactor
2022-11-28 13:19:40 -08:00
Hamish Ivey-Law
1c87fbb712
EVM shift left/right operations ( #801 )
...
* First parts of shift implementation.
* Disable range check errors.
* Tidy up ASM.
* Update comments; fix some .sum() expressions.
* First full draft of shift left/right.
* Missed a +1.
* Clippy.
* Address Jacqui's comments.
* Add comment.
* Fix missing filter.
* Address second round of comments from Jacqui.
2022-11-09 10:47:15 +11:00
Jacqueline Nabaglo
ec3391f9c4
Add Fp254 ops to the CPU table ( #779 )
...
* Add Fp254 ops to the CPU table
* Add forgotten file
2022-10-13 14:02:19 -07:00
Jacqueline Nabaglo
d5cf53c227
Constraints for dup/swap ( #743 )
...
* Constraints for dup/swap
* Minor comments
* Daniel comments
* More comments
2022-10-03 12:31:43 -07:00
Jacqueline Nabaglo
e978425b26
Connect stack to memory ( #735 )
...
* Connect stack to memory
* Daniel PR comment
2022-09-28 15:18:56 -07:00
Jacqueline Nabaglo
084700a7f4
Memory channel for program counter ( #717 )
2022-09-22 18:09:23 -07:00
Jacqueline Nabaglo
cae5f4870c
Stack pointer + underflow/overflow checks ( #710 )
...
* Stack pointer + underflow/overflow checks
* Daniel comments
* Extra docs
2022-09-10 13:20:30 -07:00
Jacqueline Nabaglo
013bf6471d
Transpose memory columns (make it an array of channel structs) ( #700 )
2022-08-26 22:05:16 -07:00
Jacqueline Nabaglo
f48de368a9
Make jumps, logic, and syscalls read from/write to memory columns ( #699 )
...
* Make jumps, logic, and syscalls read from/write to memory columns
* Change CTL convention (outputs precede inputs)
* Change convention so outputs follow inputs in memory channel order
2022-08-26 14:39:39 -07:00
Daniel Lubarov
aa87f2c3ba
Public memory
2022-08-25 20:19:18 -07:00
Daniel Lubarov
522cac5e15
Keccak memory stark
2022-08-24 09:29:17 -07:00
Daniel Lubarov
782d7d0e18
Revert "Support accessing local row in CTLs"
2022-08-23 12:22:54 -07:00
Daniel Lubarov
a37dec9881
Support accessing previous row in CTLs
2022-08-22 15:20:10 -07:00
Jacqueline Nabaglo
b98dd47820
Permission levels, jumps, traps ( #653 )
...
* Permission levels, jumps, traps
* Tests passing
* PR comments + documentation
* Docs + minor bugfixes
* Tests
* Use already-defined `stop` and `exception` (but renamed to `sys_stop`, `fault_exception`)
* Daniel comments
2022-08-16 09:46:10 -07:00
Daniel Lubarov
b2f09881c0
Merge branch 'main' into cpu_shared_cols
2022-07-28 13:41:46 -07:00
Jacqueline Nabaglo
c160c4032d
Inter-row program counter constraints ( #639 )
...
* Beginning of control flow support
* Fixes to halt spin loop
2022-07-27 11:36:33 -07:00
Daniel Lubarov
3d83d63f0b
Shared CPU columns
...
I was thinking we could have two sets of shared columns:
- First, a set of "core" columns which would contain instruction decoding registers during an execution cycle, or some counter data during a kernel bootloading cycle.
- Second, a set of "general" columns which would be more general-purpose. For now it could contain "looking" columns for most CTLs (Keccak, arithmetic and logic; NOT memory since memory can be used simultaneously with the others). It could potentially be reused for other things too, such as the registers used for `EQ` and `IS_ZERO` (but I know it's nontrivial to share those since we would need to use lower-degree constraints, so I wouldn't bother for now).
This PR implements just the latter. If it looks good I'll proceed with the former afterward.
2022-07-18 12:15:41 -07:00
Daniel Lubarov
ef3addea2c
Merge branch 'main' into evm_generation
2022-07-11 17:24:37 -07:00
Nicholas Ward
afc5a4dc4f
fixes
2022-07-11 10:44:48 -07:00
Nicholas Ward
6655ee68e4
restored timestamp column to CTL
2022-07-11 10:44:48 -07:00
Nicholas Ward
a98f267ff0
initial change
2022-07-11 10:44:48 -07:00
Daniel Lubarov
5d74a19ad6
Add test (won't work for a while, but to illustrate)
2022-07-04 18:10:03 -07:00
Daniel Lubarov
e7b480deaf
Begin work on witness generation and kernel bootstrapping
2022-07-01 10:09:57 -07:00
Jacqueline Nabaglo
bc9e618967
Structured wrapper over CPU table row ( #589 )
...
* Structured wrapper over CPU table row
* Lints
* minor style
* Minor cleanup
2022-06-29 16:23:44 -07:00
Daniel Lubarov
34e73db42b
Memory naming tweaks ( #579 )
...
* Memory naming tweaks
- Define the channel count and value limbs in a single place, so they're easy to adjust.
- Standardize on "channels" which I think is more explicit, since e.g. `num_mem_ops` used to mean either the channel count or total operation count in a trace.
* feedback
* tweaks
* fmt
2022-06-27 16:03:56 -07:00
Daniel Lubarov
e73d01a037
packed_field -> packed (#584 )
...
* `packed_field` -> `packed`
For cleaner imports; "field" is usually clear from context
* fix
2022-06-27 15:07:52 -07:00
Daniel Lubarov
3346d3f902
field_types -> types (#583 )
...
* `field_types` -> `types`
Here too, I think "field" is usually clear from context, e.g. in `use plonky2::field::types::Field;`.
* fixes
* fmt
2022-06-27 12:24:09 -07:00
Daniel Lubarov
410e03349c
extension_field -> extension (#581 )
...
It seems redundant in most contexts, e.g. `use plonky2::field::extension_field::Extendable;`. One could import `extension_field`, but it's not that common in Rust, and `field::extension` is now about as short.
2022-06-27 07:18:21 -07:00
Nicholas Ward
4a7ebf057b
updated in line with main changes
2022-06-23 14:36:14 -07:00
Jacqueline Nabaglo
3aaab765dd
define columns for CTL closer to the constraints ( #573 )
2022-06-21 10:28:44 -07:00
Jacqueline Nabaglo
49219a2b11
NOT stark ( #565 )
...
* NOT operation stark
* Daniel PR comment
2022-06-14 16:55:08 -07:00
Jacqueline Nabaglo
47efff834f
EVM decode ( #553 )
...
* EVM decode
* Style and docs
* Daniel PR comments
* Minor style
* Work on tests
* Tests passing!
* Minor: fix comment
* William comments
2022-06-03 19:24:47 -07:00
wborgeaud
12a3155baf
Ignore test instead of failing
2022-05-20 08:34:25 +02:00
wborgeaud
b3f873c66a
Finish test
2022-05-19 11:10:10 +02:00
Daniel Lubarov
c54896dcb8
Rename starky2 -> evm ( #547 )
2022-05-18 10:32:14 -07:00