Releases: starkware-libs/cairo
Releases · starkware-libs/cairo
v2.0.0-rc5
Cairo compiler.
v2.0.0-rc4
Cairo compiler.
v2.0.0-rc3
Cairo compiler.
v2.0.0-rc2
Cairo compiler.
v2.0.0-rc1
Cairo compiler.
v2.0.0-rc0
Cairo compiler.
Major updates
- New contract syntax, see more details.
- Fixed language server issues.
- Updated docs.
Breaking Changes
- Contract syntax changes.
- Fix of operator precedence - note that
&
and|
have lower precedence now than==
and!=
.- Due to added support for
&&
and||
operators.
- Due to added support for
Bug Fixes
- Prevent formatting of files with syntax errors. #3168
- Fixed bug when attempting to compile large amounts of code, where Sierra to CASM compilation failed. #3230
- Added diagnostics for illegal
match
statement inputs. #3238 - Fix handling of underscores in numeric literals semantic. #3314
New Features
- Added
extended_gcd
function. #3138 - Added
inv_mod
function. #3172 - Added
u256_div_mod_n
. #3190 return;
andbreak;
are now supported. By @gaetbout in #3134- Derive StorageAccess for struct. By @maciejka in #3062
// Foo will now be a valid type for a storage variable.
#[derive(starknet::StorageAccess)]
struct Foo {
a: felt252,
b: u256,
}
- Added
recover_public_key
to secp256k1. #2928 - Added
Default
trait for Array/Dict. By @wraitii in #3048let d: Felt252Dict<Felt252> = Default::default();
- Added
U256IntoEthAddress
. #3244 - Added
verify_eth_signature
to secp256k1. #2929 - Derive
StorageAccess
forEthAddress
and abi Dispatcher builtin types. By @maciejka in #3247 - Derive
Serde
for dispatchers. By @ftupas in #3241 - Added support for secp256r1 in Cairo. #3269
- Added
SpanSerde
implementation. By @milancermak in #3145 - Add support for logical operators with short circuiting. #3323
if cond1 && (cond2 || cond3) {
...
}
- Major type and Inference runtime improvements. #3347
#[generate_trait]
attribute - to write just an impl for creating methods for a type.
#[generate_trait]
impl AddMethods for AddMethodsTrait {
fn method(self: TypeWithNewMethods) -> u32 { ... }
}
New Contributors
- @karol-bisztyga made their first contribution in #3126
- @ArniStarkware made their first contribution in #3228
- @ftupas made their first contribution in #3241
- @tdelabro made their first contribution in #3276
- @chirag-bgh made their first contribution in #3296
- @yair-starkware made their first contribution in #3289
- @lambda-0x made their first contribution in #3293
- @alonh5 made their first contribution in #3334
Full Changelog: v1.1.0...v2.0.0-rc0
v1.1.0
Bug Fixes:
- Added diagnostics for if cond not bool. #3027
- Added diagnostics for multiple definitions of fns in impls and traits. #3033
- Fixed debug print python hint. #3115
New Features:
- feat: Support generic types in Derive statements by @wraitii in #2964
- Add keccak_uint256s_be. #3006
- Add
tx_info
context setters for testing by @ericnordelo in #3005 - Added panic reasons to revert-reason in interoperabily sim. #3007
- feat: impl Into<T,T> by @greged93 in #3036
- Added BitNot operation. #3021
- Formatter Improvements.
- feat: u256 literal by @greged93 in #3038
- Add a .nvmrc file and update the README with info about NVM by @stefanalfbo in #3012
- Add u128_byte_reverse. #2839
- Added u256 try_into felt252. #3055
- Added print function for u256 to debug by @robertkodra in #3047
- Fixed casm test for pythonic print. #3116
- Added widemul for u256. #3108
- Add starknet::get_block_number by @tensojka in #2838
- Added u512_divmod_by_u256. #3112
- Add member completions for the language server.
New Contributors
- @greged93 made their first contribution in #3036
- @stefanalfbo made their first contribution in #3012
- @robertkodra made their first contribution in #3047
- @tensojka made their first contribution in #2838
Full Changelog: v1.0.0...v1.1.0
v1.1.0-rc0
Cairo compiler.
Bump version to v1.1.0-alpha0
Cairo compiler.
V1.0.0
Minor visibility changes.