Releases: FuelLabs/sway
Releases · FuelLabs/sway
v0.63.5
What's Changed
- Fixes mismatched types in ABI cast. by @esdrubal in #6489
- Add tests for propagation of type constraints in type inference by @ironcev in #6502
- Emit unreachable arm warning for OR match arms by @ironcev in #6505
- chore: use fuel-core 0.35.0 and sdk 0.66.4 by @kayagokalp in #6506
- chore: bump to v0.63.5 by @kayagokalp in #6508
Full Changelog: v0.63.4...v0.63.5
v0.63.4
What's Changed
- ci: Benchmark with codspeed by @sdankel in #6481
- Support FuelVM
wqxx
instructions in ASM blocks by @ironcev in #6484 - Add flag check functions by @SwayStar123 in #6445
- Handle case when
Bytes
appends toself
by @bitzoic in #6308 - Fixes impl self duplicated missing error. by @esdrubal in #6493
- Adds function return type unification. by @esdrubal in #6490
- Implement
__contract_ret
as diverging andretd
as terminator by @ironcev in #6486 - Fixes ABI alias metadata types. by @esdrubal in #6494
- Test for contract address being a complex expression by @xunilrj in #6495
- Add missing docs to primitive_conversions library in standard library by @GearedPaladin in #5627
- Change
msg_sender()
'sInput::Message
from sender to recipient by @bitzoic in #6497 - Bump to v0.63.4 by @IGI-111 in #6503
Full Changelog: v0.63.3...v0.63.4
v0.63.3
What's Changed
- Reduces memory footprint of collecting unifications. by @esdrubal in #6479
- Fix error handling in LSP to guard against empty results from the compiler. by @JoshuaBatty in #6480
- Optimize
TokenMap
updates and traversals for modified files only by @JoshuaBatty in #6464 - add overflow and unsafe math tests by @SwayStar123 in #6469
- Bump to v0.63.3 by @JoshuaBatty in #6483
Full Changelog: v0.63.2...v0.63.3
v0.63.2
What's Changed
- No limit on the depth of the return path analysis by @jjcnn in #6435
- Fix sway templates by @xunilrj in #6446
- Guarantee only valid bools are being decoded by @xunilrj in #6436
- Optimize manifest directory lookup with efficient caching by @JoshuaBatty in #6444
- Updated the emitted event in the search page by @laishawadhwa in #6454
- Add
RUST_BACKTRACE: full
to lsp CI tests by @JoshuaBatty in #6457 - std-lib/auth: update in-line docs for
caller_address()
by @K1-R1 in #6449 - Fixes panic on unwrapping in type_check_trait_implementation. by @esdrubal in #6434
- Add the
indoc
crate toswayfmt
tests for better readability. by @JoshuaBatty in #6450 - Handle Out of Bounds Read In Input Message Data by @bitzoic in #6439
- Fix trait-related type inference propagation bug by @tritao in #6455
- eliminate dead block args by @vaivaswatha in #6459
- chore: remove comment by @sdankel in #6463
- Handle formatting new types in
StorageField
by @JoshuaBatty in #6451 - Parse error on illegal statement by @jjcnn in #6443
- Better error array numerics by @xunilrj in #6420
- docs: Update debugging_with_cli.md by @sdankel in #6472
- Improves TraitMap performance. by @esdrubal in #6471
- Fixes Numeric type propagation by @esdrubal in #6461
- check if all required generic arguments are valid by @xunilrj in #6462
- Bump to v0.63.2 by @IGI-111 in #6476
New Contributors
- @laishawadhwa made their first contribution in #6454
Full Changelog: v0.63.1...v0.63.2
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
core
andstd
dependency 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
std
and 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:
__slice
and__elem_at
by @xunilrj in #6282 - Move std-lib
StorageKey
tests 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 self
node 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_analyze
by @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
scwq
instruction 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 newin
keyword 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_verify
has been changed to support variable length messages- some
std
functions now return anOption
instead or reverting - some
std
functions now return types updated to match the specification - some
std
functions 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
match
for 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
,Vec
andString
buffer ownership by @xunilrj in #6142 - Correctly handle
Input::Message
when callingmsg_sender()
by @bitzoic in #6231 - Memory usage reduction by @jjcnn in #6249
- Unify AST nodes for parsed and typed
impl self
andimpl 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::ContractCreated
transaction toOutput
enum 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 use
by @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_import
for parsed enum declaration variants. by @tritao in #6147 - Fix bug in IRGen for while loops by @vaivaswatha in #6146
- Add
Input::Message
case topredicate_address()
by @bitzoic in #6117 - Make CEI analysis take
burn
andmint
into 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_vec
inline 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_contract
test variable name fromCONTRACT_ID
toMY_CONTRACT_ID
by @bitzoic in #6167 - Cleanup
DeclRef
references fromTypeInfo::Enum
andTypeInfo::Struct
by @tritao in #6178 - Handle traits when doing namespace item imports. by @tritao in #6189
- Use
$one
fortrue
in 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::remove
andVec::remove
by @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
MemoryOverflow
onVec
s 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
EqWithEngines
andPartialEqWithEngines
for 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
EnumVariant
parsed 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-dev
toswayex
by @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
Inputs
library 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
in
keyword 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