Releases: starkware-libs/cairo
Releases · starkware-libs/cairo
v2.14.1-dev.0
Cairo compiler.
v2.14.0
Breaking Changes
- starknet::secp256_trait::{recover_public_key, is_valid_signature} now check that
randsare in a bounded range.
Other changes
- Added ByteSpan PartialEq + Debug for testing. #8564
- Fixed doc of
Productfunction. #8606 - Made
egcdalgorithm more flexible to work for signed numbers as well. #8676
Optimizations
Compiler Runtime
- Making casm-builder more efficient. #8573
Gas Usage
- Adding support to felt add mul and sub in constant propogation. #8594
- felt252_div constant propogation support. #8619
- Added const-folding of enums. #8651
- Made const-folding with middle snapshots work. #8652
- Allowed const calculations of felt252 to u256 and u128. #8681
- add support for specailizing functions with partial structs. #8664
- partial specialization for enums arguments. #8678
Code Size
- Optimized Felt252Span deserialization using less panic code. #8656
- Removed
unwraps and made them into?for non-OS-fails. #8663 - Minor code simplification of ecdsa. #8677
New Contributors
- @vastonus made their first contribution in #8570
- @Lil-Duckling-22 made their first contribution in #8565
- @Doryu001 made their first contribution in #8598
- @claudecodering made their first contribution in #8603
Full Changelog: v2.13.1...v2.14.0
v2.14.0-rc.0
Cairo compiler.
v2.13.1
What's Changed
- Made all maps that may have a large number of elements be hash-maps. #8579
- Refactored and further tested storage of Result and Option. #8583
- Updated inv-mod to be consistent with existing u256-inv-mod impl. #8584
Full Changelog: v2.13.0...v2.13.1
v2.13.0
Major Features
- Added item level inline macros.
- Support for more complex
match,if letandwhile let- Includes recursive variants, structs, tuples, and numeric values.
- Added
ByteSpanin corelib.
Breaking Changes
- Global impls
- impls defined near the type are always considered when solving an impl - even if the type doesn't exist.
- This causes a breakage where
Into::intoandTryInto::try_intocalls that weren't actually required causes inference errors.
- Made
Iterator::foldbe consuming. #8214 - Made
let x = y;move non-copyy. #8521 - Changed bytearray pending word into
Byte31Index. #8516- Should only affect users that use old edition and accessed the internal fields of ByteArray.
Bug Fixes
- Handling zero-sized generics. #7990
- Properly recognising when a closure is not fully concrete. #7987
- Const-folded
popfrom empty arrays and spans keep the expected var. by @orizi in #8117 - Fix const reported as unused. #8139
- Added dignostics for having a starkware interface with a body. #8216
- Block tail expressions fully process attributes. #8257
- disallow named arguments in closures. #8278
- Not generating expressions of deref if not found. #8295
- added is_zero functions to extern consts list. #8360
- add diagnostic when use star causes cycles. #8463
- Expose
SumandProducttraits. #8542
Other new features
- Add
Nullable::deref_or_else. #8026 - feat(semantic): support allow(unused_variables) by @giladchase in #8289
- added inference for negative impls. #8339
- Implemented
sub_pointersfor Option. #8525 - Added support for override file location using
path. by @orizi in #8557
Optimizations
Compiler runtime
- Less green lookups + string manip - direct usage of file content. #7966
- Made
get_submodulequery based instead of iteration based. #7980 - Removed location fetching when
get_dummy_program_for_size_estimation. #7982 - Refactored Maps from CostTokenType to be defined once. #8021
- Changed CostTokenMap type to vec-map. #8023
- Creating metadata only once. #8019
- Updated salsa version.
Gas usage
- Improved ByteArray iteration.
- Improved ByteArray manipulation.
- Compute ByteArray sha256 via iterator. #8540
Code size
- Added common-expression-elimination optimization. #8217
- Const folding of matching on snapshots. #8377
- Using
unwrap_syscallinstead of simpleunwrapwhere possible. #8561
New Contributors
- @xihuwenhua made their first contribution in #7994
- @GarmashAlex made their first contribution in #8037
- @suobitong made their first contribution in #8040
- @MozirDmitriy made their first contribution in #8055
- @Galoretka made their first contribution in #8074
- @lechpzn made their first contribution in #8098
- @radik878 made their first contribution in #8106
- @Snezhkko made their first contribution in #8120
- @forkfury made their first contribution in #8124
- @Forostovec made their first contribution in #8126
- @fifalodm made their first contribution in #8127
- @Fibonacci747 made their first contribution in #8138
- @kurahin made their first contribution in #8147
- @sashass1315 made their first contribution in #8153
- @Bashmunta made their first contribution in #8155
- @phrwlk made their first contribution in #8148
- @dneptolus made their first contribution in #8161
- @avorylli made their first contribution in #8166
- @oooLowNeoNooo made their first contribution in #8168
- @SADfronov made their first contribution in #8174
- @ANtutov made their first contribution in #8200
- @viktorking7 made their first contribution in #8318
- @keeghcet made their first contribution in #8372
- @Princetimix69 made their first contribution in #8460
- @goldlinker made their first contribution in #8528
- @spuradage made their first contribution in #8536
- @wyrapeseed made their first contribution in #8552
Full Changelog: v2.12.3...v2.13.0
v2.12.4-dev.1
Cairo compiler.
v2.12.4-dev.0
Cairo compiler.
v2.12.3
v2.12.2
Bug Fixes
- Prevent const folding of
panic_with_byte_arraywhen usingunsafe_panic. - Enabled const folding of
matchon snapshots.
Other
- Bumped Cairo-VM version to 2.4.1.
Full Changelog: v2.12.1...v2.12.2
v2.12.1
Bug Fixes
- Fix const-folding of array get issue.
- Made
Iterator::folda consuming function. - Added diagnostics on fn default implementations in
starknet::interfacetraits. - Fixed
QMzero value. - Fixed issue with using
let .. elseand closures.
Full Changelog: v2.12.0...v2.12.1