Releases: FuelLabs/sway
Releases · FuelLabs/sway
v0.63.6
What's Changed
- conditional constant propagation by @vaivaswatha in #6498
- Correctly check for overflow in add, mul and pow by @SwayStar123 in #6452
- Add
find all references
feature to the language server. by @JoshuaBatty in #6512 - docs: Add build script to test templates by @sdankel in #6510
- Fix "Testing with Rust / Writing Tests" example by @smoelius in #5539
- Replace cargo deps with built-in cargo tree (#6179) by @alfiedotwtf in #6515
- fix: forc-test log decoding in libraries by @sdankel in #6518
- Use cargo-nextest with retries for flaky LSP test by @JoshuaBatty in #6521
- Update proxy contract binary shipped with
forc-deploy
by @kayagokalp in #6520 - fix second pass of method application arguments by @xunilrj in #6526
- Add support for
Transaction::Upload
,Transaction::Upgrade
, andTransaction::Blob
by @bitzoic in #6500 - Update helpers.rs by @cypherpepe in #6255
- Remove subs type optimization causing find method issues by @xunilrj in #6532
- Add Caller addresses function by @SwayStar123 in #6514
- Add Eq for Result by @SwayStar123 in #6140
- feat: Add --raw-logs option for forc-test by @sdankel in #6528
- Add tests for recursive
const
definitions and associated consts usages by @ironcev in #6545 - feat: add a build script to forc-client to keep proxy abi in sync with file by @kayagokalp in #6535
- Adds test for implicit trait constraint. by @esdrubal in #6517
- Fixes unreachable on invalid cfg attribute arg. by @esdrubal in #6553
- Fixes OOB in type_check_analyze of ImplTrait. by @esdrubal in #6551
- Fixes panic error on decl_to_type_info. by @esdrubal in #6552
- Only check non-parent monomorphization args by @xunilrj in #6549
- Fix
function_cache
garbage collection bug by @JoshuaBatty in #6555 - chore: bump to v0.63.6 by @JoshuaBatty in #6556
New Contributors
- @alfiedotwtf made their first contribution in #6515
- @cypherpepe made their first contribution in #6255
Full Changelog: v0.63.5...v0.63.6
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