Releases: FuelLabs/sway
Releases · FuelLabs/sway
v0.63.1
What's Changed
- test: add more chunking tests by @kayagokalp in #6433
- fix release workflow by embedding proxy abi to code in plain str by @kayagokalp in #6437
- Bump version to 0.63.1 by @kayagokalp in #6438
Full Changelog: v0.63.0...v0.63.1
v0.63.0
What's Changed
- Remove support for namespace attribute by @IGI-111 in #6279
- Make module name mandatory and private by @jjcnn in #6271
- Cache Build Plans in language server by @JoshuaBatty in #6281
- Forbid configurables in pattern matching and shadowing by @ironcev in #6289
- feat: Enhance forc-deploy UX with dialoguer by @sdankel in #6278
- cache pid lock files to reduce IO operations by @JoshuaBatty in #6297
- Add documentation about Undefined Behavior by @IGI-111 in #6302
- fix: update the document link for Manual Storage Management. by @dima-safin-2025 in #6301
- Add
coreandstddependency test filtering to the test runner by @tritao in #6299 - chore: correction typos index.md by @osrm in #6303
- Re-pin LSP tests to published version of
stdand re-enable commented out tests by @JoshuaBatty in #6315 - chore: bump forc-pkg deps and fix clippy warnings by @JoshuaBatty in #6311
- Fix range OOB bug in the language server by @JoshuaBatty in #6314
- Additionally test associated constants by @ironcev in #6349
- Support for slice new syntax &[T] by @xunilrj in #6307
- Correct code_size function implementation by @SwayStar123 in #6304
- Introduce a new symbol resolving pass by @tritao in #5809
- Revert when loading 0 size typed storagevec by @SwayStar123 in #6358
- Slice/Array intrinsics:
__sliceand__elem_atby @xunilrj in #6282 - Move std-lib
StorageKeytests to in-language tests by @bitzoic in #6363 - feat: create and deploy a reference proxy contract for contracts with
[proxy]enabled by @kayagokalp in #6069 - Fixes assert in type_check_encode_buffer_empty. by @esdrubal in #6364
- Fixes crash on encode_buffer_append with wrong args. by @esdrubal in #6365
- docs: Update docs for forc-client by @sdankel in #6403
- fix size of configurable buffer for enums by @xunilrj in #6366
- Add error for duplicate struct field initialization by @IGI-111 in #6401
- Fixes unreachable macro crashing compiler. by @esdrubal in #6362
- ASM blocks handling: inlining, DCE, ASM returns without return register by @ironcev in #6404
- Fix broken documentation link by @IGI-111 in #6400
- Fix bugs in memcpyopt by @vaivaswatha in #6359
- Revert when overflow using pow for u8, u16, u32 by @SwayStar123 in #6340
- Allow forc deploy to submit transaction without waiting for commit confirmation by @luisburigo in #6294
- Filter ABI supertrait methods from contract entry generation by @tritao in #6402
- Fix
impl selfnode order dependency pass key collision issue. by @tritao in #6407 - Implement mutability checks for references to aggregate type fields. by @tritao in #6415
- Updates JSON ABI, LDC, BSIZ, BLDD and ED19. by @esdrubal in #6254
- Implement Typed Module Caching by @JoshuaBatty in #6280
- Better checks at
type_check_analyzeby @xunilrj in #6410 - Update README.md by @sdankel in #6423
- Allow variable length message in ed_verify by @SwayStar123 in #6419
- Increase Safety when introspecting transaction inputs by @bitzoic in #6405
- Increase Safety when introspecting transactions by @bitzoic in #6418
- Increase Safety when introspecting transaction outputs by @bitzoic in #6414
- Update rust version in forc docker image by @Voxelot in #6422
- chore: bump sdk version by @sdankel in #6430
- feat: Implement ldc based automatic contract chunking by @kayagokalp in #6250
- fix: use proxy bin with storage slots in a namespace by @kayagokalp in #6429
- Fix broken forc command docs by @JoshuaBatty in #6424
- Fix
scwqinstruction and "phantom" error in purity checks by @ironcev in #6432 - chore: bump to 0.63.0 by @sdankel in #6421
New Contributors
- @dima-safin-2025 made their first contribution in #6301
- @osrm made their first contribution in #6303
- @luisburigo made their first contribution in #6294
Breaking changes
- the
#[namespace()]attribute is no longer supported. The new namespace syntax is preferred moving forward and the newinkeyword usage can be used for backwards compatibility - Configurables are no longer allowed in pattern matching and shadowing
- There have been significant changes the the ABI specification format
ed_verifyhas been changed to support variable length messages- some
stdfunctions now return anOptioninstead or reverting - some
stdfunctions now return types updated to match the specification - some
stdfunctions have been made private are will no longer be available
Full Changelog: v0.62.0...v0.63.0
v0.62.0
What's Changed
- feat: Print the formatted bytecode size on forc build by @sdankel in #6214
- Inliner shouldn't inline a function into itself by @vaivaswatha in #6218
- better error and dca for configurables by @xunilrj in #6121
matchfor string slices by @xunilrj in #6202- fix: typo in comment for ipfs fetching in forc-pkg by @kayagokalp in #6236
- Add string slices to supported types message in match expressions by @ironcev in #6243
- fix configurable tests by @xunilrj in #6242
- re-enable LDC test by @xunilrj in #6240
- chore: remove snapshot, as accounts are funded by default by @kayagokalp in #6235
- Fix
Bytes,VecandStringbuffer ownership by @xunilrj in #6142 - Correctly handle
Input::Messagewhen callingmsg_sender()by @bitzoic in #6231 - Memory usage reduction by @jjcnn in #6249
- Unify AST nodes for parsed and typed
impl selfandimpl trait. by @tritao in #6251 - uncomment update contract update check by @xunilrj in #6247
- Add LRU Session Cache to Reduce RAM Usage by @JoshuaBatty in #6239
- Update index.md by @Olexandr88 in #6261
- Add
Output::ContractCreatedtransaction toOutputenum by @bitzoic in #6194 - Implement a map from typed to parsed decl ids in the declaration engine. by @tritao in #6245
- Small code refactor by @ylmin in #6263
- docs: Add Core Library to introduction section of the Sway book by @calldelegation in #6193
- Feature: Reexport using
pub useby @jjcnn in #6116 - Add tracing span macro calls to the language server for better debugging by @JoshuaBatty in #6238
- Update index.md by @operagxsasha in #6267
- Use HashSet for error deduplication by @ylmin in #6268
- chore: bump to use fuel-core v0.31.0 and sdk v0.65.1 by @kayagokalp in #6252
- Bump to v0.62.0 by @IGI-111 in #6276
New Contributors
- @Olexandr88 made their first contribution in #6261
- @ylmin made their first contribution in #6263
- @operagxsasha made their first contribution in #6267
Full Changelog: v0.61.2...v0.62.0
v0.61.2
What's Changed
- Improve error messages for namespaced storage fields by @IGI-111 in #6204
- fix: deployment estimation deferred to sdk by @kayagokalp in #6212
- feat: Add helper function for consistent forc output by @sdankel in #6208
- Bump to v0.61.2 by @sdankel in #6213
Full Changelog: v0.61.1...v0.61.2
v0.61.1
What's Changed
- Fixes namespace
variant_importfor parsed enum declaration variants. by @tritao in #6147 - Fix bug in IRGen for while loops by @vaivaswatha in #6146
- Add
Input::Messagecase topredicate_address()by @bitzoic in #6117 - Make CEI analysis take
burnandmintinto account by @jjcnn in #6162 - Improving binary size for encoding v1 by @xunilrj in #6096
- fix: fix panic and improve error output in forc-debug by @sdankel in #6165
- docs: Fix nightly storage docs by @calldelegation in #6172
- Use company fork of publish-crates action by @IGI-111 in #6176
- Incomplete escape analysis and referred symbols in IR optimizations by @ironcev in #6175
- Remove
storage_vec_to_vecinline tests from sdk-harness by @bitzoic in #6168 - Counter Example Doc Update by @Chester-King in #6164
- Verify that entry block does not have predecessors by @ironcev in #6177
- Update sdk-harness's
configurables_in_contracttest variable name fromCONTRACT_IDtoMY_CONTRACT_IDby @bitzoic in #6167 - Cleanup
DeclRefreferences fromTypeInfo::EnumandTypeInfo::Structby @tritao in #6178 - Handle traits when doing namespace item imports. by @tritao in #6189
- Use
$onefortruein ASM instead of using data section by @ironcev in #6186 - fix: only support hover links for vscode by @sdankel in #6181
- Fix Clippy warnings. by @tritao in #6183
- Fix bug in
Bytes::removeandVec::removeby @vaivaswatha in #6192 - chore: bump fuels-rs to v0.64.0, fuel-core to v0.28.0 by @kayagokalp in #6187
- Fix fn dedup miscompilation leading to
MemoryOverflowonVecs by @xunilrj in #6195 - Add a simple simplify-cfg optimization for assembly by @vaivaswatha in #6197
- Remove deferred monomorphization. by @tritao in #6196
- Fix u256 logarithm rounding errors by @SwayStar123 in #6163
- Fixes method application unwrap panic. by @esdrubal in #6201
- [ASM] Fix bug in modelling defs and uses of WQAM instruction by @vaivaswatha in #6203
- Enables tests that prove #418 is solved. by @esdrubal in #6206
- Refactor
StorageVec'sload_vec()andstore_vec()to handle types of less than 8 bytes by @bitzoic in #6166 - Bump to v0.61.1 by @IGI-111 in #6207
New Contributors
- @Chester-King made their first contribution in #6164
Full Changelog: v0.61.0...v0.61.1
v0.61.0
What's Changed
- Unify arguments before desugaring contract call by @xunilrj in #6053
- chore: fund test suite's account by default in local-test node by @kayagokalp in #5935
- chore: fix some comments by @cuishuang in #5989
- Show forc plugin path warning only in verbose mode by @sdankel in #6004
- fix: fund default signer account in ci by @kayagokalp in #6055
- Add examples on how to import storage types to the book by @bitzoic in #6051
- Implement
EqWithEnginesandPartialEqWithEnginesfor parsed declarations by @tritao in #6054 - Rename module terminology to program by @JoshuaBatty in #6056
- chore: Improve the error message for unresolved manifest reference by @sdankel in #6061
- Add generated bytecode size to verbose test output by @ironcev in #6063
- feat: Add primitive types to forc-doc by @sdankel in #6032
- Tuning the optimizer pipeline by @vaivaswatha in #6072
- feat: Updating all templates to rust v0.62.0 by @calldelegation in #6067
- Bash script to help benchmark the compiler by @xunilrj in #6076
- Add
EnumVariantparsed decl and minor refactors to namespace-related code by @tritao in #6062 - Set code owners by @IGI-111 in #6078
- Unify parsed and typed symbols namespace maps. by @tritao in #6070
- Fix code owner precedence by @IGI-111 in #6082
- Refactor trait handling when doing namespace item imports. by @tritao in #6080
- Do not panic when there is auto impl type check by @xunilrj in #6094
- chore: bump fuel-core to v0.27.0 by @kayagokalp in #6090
- fix: remove Forc.lock files from template projects by @sdankel in #6101
- chore: add issue templates by @sdankel in #6097
- Update codeowners
application-devtoswayexby @bitzoic in #6095 - Automatically import contract return type by @xunilrj in #6089
- Add primitive conversions submodules to the prelude by @bitzoic in #6105
- Increase test coverage on std-lib by @bitzoic in #6087
- Faster access for configurables by @xunilrj in #6058
- Fix issue with name clash on auto implementation of AbiEncode and AbiDecode by @jjcnn in #6044
- Update
Inputslibrary return types to match VM specs by @bitzoic in #6108 - Fix mod by zero constant folding by @xunilrj in #6112
- Use immediates instead of data section when possible by @vaivaswatha in #6098
- Adds method and function deduplication to frontend. by @esdrubal in #5967
- Change
StorageMap'sremove()to usesha256(key, self.field_id())instead ofsha256(key, self.slot())by @bitzoic in #6135 - Fix doc comment by @GearedPaladin in #6138
- Unify namespace import logic for parsed and typed declarations by @tritao in #6057
- chore: fix some comments by @tsinghuacoder in #6139
- Storage name based slots and namespaces. by @esdrubal in #6064
- Resolve memory overflow when
b256::TryFrom<Bytes>is not 32 bytes by @bitzoic in #6136 - Support for string slices in contracts/predicates/scripts by @xunilrj in #6079
- Bump to v0.61.0 by @IGI-111 in #6144
Breaking Changes
- now using fuel-core 0.27.0
- Storage slot calculations use a new formula to enable namespacing syntax, please consult the documentation about storage namespacing and the
inkeyword for more details - Inputs and return types have been updated according to VM spec changes
New Contributors
- @cuishuang made their first contribution in #5989
- @tsinghuacoder made their first contribution in #6139
Full Changelog: v0.60.0...v0.61.0
v0.60.0
What's Changed
- fix: add forc-doc impls for enums and fix sidebar by @sdankel in #6020
- fix dca for encoding v1 autogenerated code by @xunilrj in #6006
- Don't contrain type arguments of StorageMap by @IGI-111 in #6034
- TryFrom< B512 > for b256, u256 by @SwayStar123 in #6010
- Allow storage access in fallback only contracts by @IGI-111 in #6031
- Fix containing
StorageStrings inStorageVecs by @ironcev in #6043 - Add
AbiEncodeandAbiDecodeforStringby @bitzoic in #6037 - fix bug in fndedup for fuelvm instructions by @vaivaswatha in #6045
- Introduce
Self::zeroandself::is_zero()for 13 types by @bitzoic in #5973 - Optimization pipeline: switch order of fndedup and inlining by @vaivaswatha in #6024
- Enable OrdEq on U128 by @IGI-111 in #6048
- Bump to v0.60.0 by @IGI-111 in #6049
Full Changelog: v0.59.0...v0.60.0
v0.59.0
What's Changed
- Update clap and deps to latest version by @IGI-111 in #5994
- feat: add log decoding capabilities to show decoded log values for forc-test by @kayagokalp in #5812
- change to use
parking_lot::RwLockfor better performance by @JoshuaBatty in #6014 - feat: only show forc examples with explicit --help flag by @kayagokalp in #6013
- feat: point --testnet flag to latest testnet instead of
devnetby @kayagokalp in #6019 - feat: Add implementations to forc-doc by @sdankel in #6017
- Add
ContractId::this()documentation to book by @bitzoic in #6008 - Improve IR printing CLI in
forcby @ironcev in #6025 - chore: use fuels-rs v0.62.0, fuel-abi-types v0.5.0 by @kayagokalp in #6027
- Remove frontend section from Sway docs. by @SilentCicero in #5743
- fail const eval if return_type is error by @xunilrj in #6023
- Implement
DisplayandDisplayWithEnginesfor some more types by @tritao in #5999 - ABI hash based ids for Logs. by @esdrubal in #5980
- Return type of output_asset_to changed to Address by @dmihal in #5424
- Bump to v0.59.0 by @IGI-111 in #6030
Breaking changes
- now using fuels-rs v0.62.0, fuel-abi-types v0.5.0
logIdfields of ABI specification files now usestringinstead ofnumber.
New Contributors
Full Changelog: v0.58.0...v0.59.0
v0.58.0
What's Changed
- Enable
name-resolution-after-monomorphizationagain by @xunilrj in #5996 - feat: fee estimation for forc-deploy and point --testnet to devnet by @kayagokalp in #5990
- chore: bump to v0.58.0 by @kayagokalp in #6003
Full Changelog: v0.57.0...v0.58.0
v0.57.0
What's Changed
- ci: fixing typos programmatically by @sdankel in #5975
- Refactor forc-doc into a lib and add tests folder by @JoshuaBatty in #5971
- Rework book intro by @IGI-111 in #5972
- Wrap
BaseIdentname_override_opt&TraitNamein anArcby @JoshuaBatty in #5978 - change submodules to use
im::HashMapinstead ofim::OrdMapby @JoshuaBatty in #5976 - Add function deduplication in debug mode, but considering metadata equality (debug info) by @vaivaswatha in #5977
- Make ControlFlowGraph store a reference to Engines to remove clones by @JoshuaBatty in #5983
- chore: bump to fuel-core v0.26.0 by @kayagokalp in #5981
- Update library inline docs descriptions by @bitzoic in #5984
- feat: take dynamic asset id into account with
forc-clientby @kayagokalp in #5987 - Name clash in star imports should result in error when the name is used by @jjcnn in #5963
- Encoding v1 for Configurables by @xunilrj in #5942
- Bump to v0.57.0 by @IGI-111 in #5993
- upgrade sdk-harness test to use fuels-rs v0.61 by @xunilrj in #5995
- Improve ASM printing CLI in
forcby @ironcev in #5997 - Remove redundant IR generation of constants and unused IR main inlining by @ironcev in #5998
Breaking changes
- Configurables now use the ABI encoding v1 instead of raw memory representation
- Shadowed star imports will now throw an error if a common ambiguous name is used
Full Changelog: v0.56.1...v0.57.0