Releases: starkware-libs/cairo
Releases · starkware-libs/cairo
v2.14.1-dev.3
Cairo compiler.
v2.14.1-dev.2
Cairo compiler.
v2.15.0
Major Changes
- Added edition 2025_12, and support for
(@a).bbeing non-snap. #8853- If edition enabled - member access of a structs - returns the already desnapped value of the member.
struct A {
a: Array<felt252>,
b: felt252,
}
// on V2025_12:
fn v2025_12(a: @A) {
let _: @Array<felt252> = @a.a;
let _: @Array<felt252> = @(@a).a;
let _: @@Array<felt252> = @@(@a).a;
let _: felt252 = a.b;
let _: @felt252 = @a.b;
let _: @felt252 = @(@a).b;
let _: @@felt252 = @@(@a).b;
}
// prior to V2025_12:
fn old(a: @A) {
let _: @Array<felt252> = a.a;
let _: @@Array<felt252> = (@a).a;
let _: @felt252 = a.b;
let _: @@felt252 = (@a).b;
}
- Made
_a valid placeholder for types. #9066
// Now compiles.
let x: [_; 3] = [1, 4, 7_felt252];
Bug Fixes
- Made sure
cfgon items of traits not drop visibility section. #8744 - Allowed for caching coupons as well. #8792
- Made
TakeIterator'snthimplementation more exact. #8849 - Const-eval logical operators must evaluate rhs on non-early return by @phrwlk in #8898
- Decide the number of snapshots by the last member of the deref chain. #8971
- Preventing handling bad-paths for plugin-macros. #9068
- Handled placeholders that weren't met during expansion as the expected empty repeatition. #9082
- Refactored
scheck and improved failure inrecover_public_key. #9142
Optimizations
Compiler Runtime
- Make all functions debug info extraction parallel. #9102
Gas Usage
- Added and use
ec_neg_nz. #8721 - Made
Negfor signed ints not based on range checks. #8746 - Added const for
EcPointincluding non-zero. #8750 - Allow shallow specialization of recursive functions. #8717
- (optimization): automatically detecting reboxing of struct member and applying struct_box_deconstruct libfunc. #8768
- (optimization): Reboxing also applied on Box of snapshots. #8954
- (optimization): Reboxing now also works on whole var reboxing. #8994
- canonicalize specilize args to always use SpecializationArg::Struct/Enum. #9021
- added specialization for recursive functions. #8881
- added specialization for tuples and fixed size arrays. #9087
Code Size
Other Changes
- Added const-folding for
bounded_int_trim_*functions. #8747 - Improve negative impl inference. #8748
- Added unglueing logic for
>=after generic args. #8789 - Made generated embeddable wrappers points to the embeddable attrs. #8791
- Enforce only type or const generic parameters for negative impls. #8793
- Removed non-OS panics from
is_eth_signature_valid. #8934 - Change
cairo-executedefault layout toall_cairo_stwo. #8961 - Override mapping from generated function name to attribute. #8958
- Improved var-based inference diagnostics locations. #9006
- Added support for size of fixed array to be impl-const. #9033
- Added basic sierra-support for
get_execution_info_v3_syscall. #8946
New Contributors
- @efcking made their first contribution in #8716
- @weifangc made their first contribution in #8751
- @justinbay made their first contribution in #8738
- @0xwitty made their first contribution in #8812
- @hexcow made their first contribution in #8813
- @maradini77 made their first contribution in #8814
- @prestoalvarez made their first contribution in #8830
- @liuyueyangxmu made their first contribution in #8833
- @0xbryer made their first contribution in #8839
- @barajeel made their first contribution in #8842
- @annwag made their first contribution in #8843
- @fragchain made their first contribution in #8846
- @defitricks made their first contribution in #8854
- @brawncode made their first contribution in #8869
- @lipperhey made their first contribution in #8871
- @operagxsasha made their first contribution in #8879
- @bobtajson made their first contribution in #8873
- @tn0vak made their first contribution in #8882
- @JoshMa-mq made their first contribution in #8892
- @ursulabauer made their first contribution in #8902
- @Elena343-ai made their first contribution in #8908
- @Maximilian199603 made their first contribution in #8912
- @jcastil0 made their first contribution in #8910
- @fr0mano made their first contribution in #8918
- @meship-starkware made their first contribution in #8931
- @0xcharry made their first contribution in #8939
- @Ocheretovich made their first contribution in #8950
- @strmfos made their first contribution in #8952
- @xiaolinny made their first contribution in #8959
- @0xgordy made their first contribution in #8990
- @bravesasha made their first contribution in #9015
- @changgesi made their first contribution in #9017
- @defiberrys made their first contribution in #9036
- @atorrers made their first contribution in #9078
- @Radovenchyk made their first contribution in #9079
- @AaronAjose made their first contribution in #9077
- @MoNyAvA made their first contribution in #9100
- @atakoraka made their first contribution in #9107
- @IrshadKohl51 made their first contribution in #9109
- @isagi-y22 made their first contribution in #9110
- @zkpepe made their first contribution in #9139
Full Changelog: v2.14.0...v2.15.0
v2.15.0-rc.1
Cairo compiler.
v2.15.0-rc.0
Cairo compiler.
v2.14.1-dev.1
Cairo compiler.
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