Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ZIR-280: Keccak2 InitCycle is deterministic 🎉 #115

Merged
merged 11 commits into from
Dec 17, 2024
Merged

Conversation

jacobdweightman
Copy link
Contributor

@jacobdweightman jacobdweightman commented Dec 11, 2024

I've written a bunch of code for Picus integration, and thought it would be good to open a PR at an intermediate step so it's not so ridiculously enormous. Summary of changes:

  • Added "attribute" syntax for components, modeled after Rust attributes. Currently, the only supported attribute is picus:
#[picus]
component Foo(x: Val) {
  a := Reg(x);
}
  • Added --emit=picus option which emits picus code for components with the picus attribute and their transitive dependencies
  • Added scaffolding for Picus lowering, and implemented a medium-sized chunk of it
  • Created a new InlineForPicusPass which inlines some components to improve Picus performance (Shankara's suggestion, and doubles as a stopgap for a missing Picus feature)

@github-actions github-actions bot changed the title Keccak2 InitCycle is deterministic 🎉 ZIR-280: Keccak2 InitCycle is deterministic 🎉 Dec 11, 2024
Copy link
Contributor

@mars-risc0 mars-risc0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand enough about picus to evaluate the system of signals being generated, but the compiler-side changes all make sense to me.

Copy link
Contributor

@mars-risc0 mars-risc0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the tour through the codebase earlier; this all seems clear and reasonable, now that I understand what it is trying to do.

@jacobdweightman jacobdweightman enabled auto-merge (squash) December 17, 2024 18:42
@jacobdweightman jacobdweightman merged commit baea459 into main Dec 17, 2024
9 checks passed
@jacobdweightman jacobdweightman deleted the jacob/picus branch December 17, 2024 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants