-
Notifications
You must be signed in to change notification settings - Fork 32
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
Dict hints #455
Dict hints #455
Conversation
crates/starknet-os/src/hints/dict.rs
Outdated
|
||
let bucket_index = get_maybe_relocatable_from_var_name(vars::ids::BUCKET_INDEX, vm, ids_data, ap_tracking)?; | ||
|
||
let prev_offset = dict_tracker.get(&bucket_index).unwrap().clone(); |
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.
Handling this unwrap is the only thing I can thing of.
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.
Should be good!
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.
The code looks good to me, but I would suggest one thing:
In cairo-lang
this all comes from a file called compression.cairo
, and we have tried to keep our file structure similar to theirs. So, my suggestions:
- Rename
dict.rs
->compression.rs
- Drop
constants.rs
and include its contents incompression.rs
* Ft/os upgrade (#453) * update cairo-lang to v0.13.3 * expect Starknet v0.13.3 version * set_state_updates_start & set_compressed_start * update deserialize OS output * hint implementation: set_n_updates_small * disable test until we get a reference PIE with the new OS version * set full_output for integration tests * deserialize output fix tests * update sequencer address * fix CI: bump cairo-lang to v0.13.3 * clippy * bump cairo-lang * fix tests * fix use_kzg_da global variable * add hint test * fix is_s_updates_small * add tests for set_compressed_start and set_state_updates_start * fix StarknetGeneralConfig * add test with reference PIEs * log2 hint (#454) * feat: add the log2_ceil hint * simplify log2 function * clean up unimplemented.rs --------- Co-authored-by: whichqua <[email protected]> * Dict hints (#455) * feat: add dict manager and get offset hints for v0.13.3 * use TOTAL_N_BUCKETS from constants * handle error * rename dict to compression * compression constants * change unimplemented.rs description * clippy --------- Co-authored-by: whichqua <[email protected]> * Compression hint (#464) * compression hint * set_decompressed_dst hint * use log2 from math.rs * add test get_n_elms_per_felt * fix: handle `full_output` compression correctly (#461) * fix: handle kzg compression correctly * lint: clippy and fmt * fix: replace unwrap with expect for get_index * add: docs and tests for the compression module * remove unused constant --------- Co-authored-by: Geoffrey Mureithi <[email protected]> * feat: decompress the output to state diff (#466) * feat: decompress the output to state diff * chore: replace unwraps with expect * fix: minor replacements of if with match --------- Co-authored-by: whichqua <[email protected]>
Implement dictionary hints related to compression process.
Add constants.rs file to define constants that are needed across several hints
KZG tests still require extra hints.
Check orphan hints is failing because it detects two extra hints that will be covered in compress PR (
COMPRESS
andSET_DECOMPRESSED_DST
)Issue Number: N/A
Type
Description
Breaking changes?