-
Notifications
You must be signed in to change notification settings - Fork 18
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
sync-platform: Configure the platform / emulator to match circuits #735
sync-platform: Configure the platform / emulator to match circuits #735
Conversation
Could you please expand the description with a short note on what aspects you are syncing up, please? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall a nice consolidation and simplification!
Despite the title of the PR, I didn't see all that much new synchronisation between the platform and emulator here? Perhaps I'm missing something. Could you please elaborate in the PR description what new aspects we are matching that we didn't match before? Thanks!
(I do mostly like the changes here in any case, even if I don't quite understand the title.)
Please mention that we are doing this partially for SP1 compatibility in the PR description. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please see comments.
) Over time we moved from a first version (#215) which looked end-to-end like this: ``` Static memory layout `--> Program compilation `--> Trace generation `--> Static circuits ``` to this ``` Existing third-party programs `--> Auto-detected memory layout `--> Trace generation `--> Configurable circuits ``` This worked by letting the trace generation be more powerful and more permissive than the circuits (larger memory ranges, etc). This PR configures the trace generation to tightly match the circuit behaviors as of today. --------- Co-authored-by: Aurélien Nicolas <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I prematurely removed my hold. Please just use a BTreeSet
or at least a ///
doc comment.
@@ -10,20 +10,23 @@ use crate::addr::{Addr, RegIdx}; | |||
#[derive(Clone, Debug)] | |||
pub struct Platform { | |||
pub rom: Range<Addr>, | |||
pub ram: Range<Addr>, | |||
// This is an `Option` to allow `const` here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// This is an `Option` to allow `const` here. | |
/// This is an `Option` to allow `pub const CENO_PLATFORM: Platform` |
Only a minor cosmetic request.
I enabled auto-merge again. (It got disabled, when I mucked around with my review.) |
@naure Sorry, the renaming of ROM to program code (or similar) is fine. And I recognise that the changes you made to the My request to respect read-only memory is more an aspiration for the future development. |
Over time we moved from a first version (#215) which looked end-to-end like this:
to this
This worked by letting the trace generation be more powerful and more permissive than the circuits (larger memory ranges, etc).
This PR configures the trace generation to tightly match the circuit behaviors as of today.