Skip to content

Releases: starkware-libs/cairo

v2.14.1-dev.0

25 Nov 13:30

Choose a tag to compare

Cairo compiler.

v2.14.0

24 Nov 13:47
5836976

Choose a tag to compare

Breaking Changes

  • starknet::secp256_trait::{recover_public_key, is_valid_signature} now check that r and s are in a bounded range.

Other changes

  • Added ByteSpan PartialEq + Debug for testing. #8564
  • Fixed doc of Product function. #8606
  • Made egcd algorithm 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

Full Changelog: v2.13.1...v2.14.0

v2.14.0-rc.0

19 Nov 10:10

Choose a tag to compare

Cairo compiler.

v2.13.1

28 Oct 14:56
4c71405

Choose a tag to compare

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

23 Oct 09:12
8bebf62

Choose a tag to compare

Major Features

  • Added item level inline macros.
  • Support for more complex match, if let and while let
    • Includes recursive variants, structs, tuples, and numeric values.
  • Added ByteSpan in 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::into and TryInto::try_into calls that weren't actually required causes inference errors.
  • Made Iterator::fold be consuming. #8214
  • Made let x = y; move non-copy y. #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 pop from 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 Sum and Product traits. #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_pointers for 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_submodule query 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_syscall instead of simple unwrap where possible. #8561

New Contributors

Full Changelog: v2.12.3...v2.13.0

v2.12.4-dev.1

21 Sep 15:46
6c3a527

Choose a tag to compare

Cairo compiler.

v2.12.4-dev.0

18 Sep 12:14

Choose a tag to compare

Cairo compiler.

v2.12.3

14 Sep 14:04

Choose a tag to compare

What changed

  • Bumped Cairo-VM version to 2.5.0.

Full Changelog: v2.12.2...v2.12.3

v2.12.2

10 Sep 09:13

Choose a tag to compare

Bug Fixes

  • Prevent const folding of panic_with_byte_array when using unsafe_panic.
  • Enabled const folding of match on snapshots.

Other

  • Bumped Cairo-VM version to 2.4.1.

Full Changelog: v2.12.1...v2.12.2

v2.12.1

25 Aug 12:49

Choose a tag to compare

Bug Fixes

  • Fix const-folding of array get issue.
  • Made Iterator::fold a consuming function.
  • Added diagnostics on fn default implementations in starknet::interface traits.
  • Fixed QM zero value.
  • Fixed issue with using let .. else and closures.

Full Changelog: v2.12.0...v2.12.1