Releases: FuelLabs/sway
Releases · FuelLabs/sway
v0.68.1
What's Changed
- chore: bump fuel-core to 0.43.1 and fuels to 0.72 by @kayagokalp in #7110
- Fix relative path resolution with temp manifests in LSP by @JoshuaBatty in #7079
- chore: bump version to 0.68.1 by @kayagokalp in #7112
Full Changelog: v0.68.0...v0.68.1
v0.68.0
What's Changed
- Improve snapshot testing by @ironcev in #7020
- chore: update templates to use newer fuels SDK by @sdankel in #7024
- chore: add more information to lib-std project manifest by @sdankel in #7003
- Fix trait constraint type checking order for supertraits. by @tritao in #7022
- forc-call list functions support with example call usage by @zees-dev in #7018
- AbiDecode for arrays using
const_generics
by @xunilrj in #7008 - Separate prelude imports from star imports by @jjcnn in #6971
- Implements deref in reassignment for projections. by @esdrubal in #6941
- Import codec to all files that define new types in std lib by @SwayStar123 in #7028
- Refactor: Access to externals moved from
Root
toNamespace
by @jjcnn in #6999 - Defining, parsing, and checking
#[attribute]
s by @ironcev in #6986 - impl PartialEq, Eq, Hash, Clone for array by @xunilrj in #7037
- Cleanup stale lock files in the .lsp-locks directory by @JoshuaBatty in #6816
- Merge type and const generics by @xunilrj in #7044
- TypeArgument as enum to support const generics by @xunilrj in #7052
- Allow decimal/binary/octal u256 literals by @saimeunt in #7043
- chore: improve
test_cleanup_stale_files
test & addmark-flaky-tests
crate by @JoshuaBatty in #7055 - Check for redundant
.gitignore
files in tests by @ironcev in #7059 - move codspeed benchmarks to buildjet by @Voxelot in #7062
- Update fuels version by @zees-dev in #7053
- fix: run forc-publish tarball tests sequentially to remove flakiness by @kayagokalp in #7064
- Forc call transfers by @zees-dev in #7056
- Add
#[error_type]
and#[error]
attributes by @ironcev in #7058 - Fix compiler panic on configurable initialization by @ironcev in #7068
- ci: include forc-node binaries in releases by @kayagokalp in #7069
- Add
--generate-hexfile
flag toforc build
for hex-encoded output by @JoE11-y in #7032 - forc call verbosity levels by @zees-dev in #7074
- feat: registry source resolution and builds by @kayagokalp in #7038
- feat: yanking support for registry packages by @kayagokalp in #7081
- forc-pkg: add guards to ensure proper fetch cleanups by @kayagokalp in #7049
- ci: add a step to reject x.y.z versioning for dependencies by @kayagokalp in #7082
- Cache and restore namespace module for cached modules by @tritao in #7078
- Implement
Eq
forSignature
and add missingcodec
tests by @bitzoic in #7084 - Optimize
tx
module for bytecode size and gas usage by @ironcev in #7087 - Sway compiler optimizations by @xunilrj in #7080
- Optimize
inputs
andoutputs
modules for bytecode size and gas usage by @ironcev in #7092 - feat: limit registry nesting to 2 levels for registry sources by @kayagokalp in #7094
- Improved trait coherence checking by @tritao in #6844
- Optimize
auth
module for bytecode size and gas usage by @ironcev in #7096 - More Sway compiler optimizations by @xunilrj in #7093
Debug
trait and its auto implementation by @xunilrj in #7015- chore: bump to 0.67.1 by @kayagokalp in #7090
- ci: move build binaries step to ubuntu-22.04 by @kayagokalp in #7099
- chore: bump to 0.67.2 by @kayagokalp in #7100
- fix(ci): update Docker actions to fix GitHub cache deprecation error by @JoshuaBatty in #7104
assert_eq
requiresPartialEq
instead ofEq
by @ironcev in #7105- Fix
Eq
constraint in vec.swimpl<T> PartialEq for Vec<T>
. by @tritao in #7106 - Bump to 0.68.0 by @IGI-111 in #7108
Breaking Changes
Implementation coherence is now enforced by the compiler through static checks of orphan rules and implementation overlap, invalid implementations that either overlap with existing functionality or implement types from other packages were always considered illegal but will now result in explicit errors instead of undefined behavior.
New Contributors
Full Changelog: v0.67.0...v0.68.0
v0.67.0
What's Changed
- Trait map optimizations by @tritao in #7007
- Merge std and core libraries by @SwayStar123 in #6729
- Promote experimental features by @ironcev in #7016
- Bump to v0.67.0 by @IGI-111 in #7017
Breaking Changes
core
andstd
libraries have been merged- Storage keys are now calculated differently
- The
Eq
trait has been split intoEq
andPartialEq
- conversions from
Bytes
tob256
are now fallible
We recommend using the new forc migrate
tool to address these breaking changes in your codebase.
Full Changelog: v0.66.10...v0.67.0
v0.66.10
v0.66.9
What's Changed
- Implement
TryFrom<Bytes>
forb256
by @bitzoic in #6958 - chore: Change blob ID calculation in forc-deploy to use configurables offset by @sdankel in #6991
- Check for type aliases when implementing traits by @jjcnn in #6875
impl
trait for "const generics" by @xunilrj in #6946- Refactor CONTRACT_ID injection logic to only occur in LSP mode by @JoshuaBatty in #7001
- Add inline tests for all arithmetic cases in
u8
,u16
,u32
,u64
,U128
, andu256
by @bitzoic in #6995 - Update trait map to track fully resolved impl type parameters. by @tritao in #6963
- Introduce
GlobalVar
akin toLocalVar
and introduceget_global
instruction similar toget_local
. by @vaivaswatha in #6928 - Implement trees visitors and migrations for
TryFrom<Bytes>
forb256
by @ironcev in #7005 - Add migration for
Bytes::into(self) -> b256
toBytes::try_into
by @ironcev in #7009 - Add migration for merging
core
andstd
libraries by @ironcev in #7010 - Bump to 0.66.9 by @IGI-111 in #7011
- Fix source dependencies preventing release by @IGI-111 in #7012
- fix fallback compilation on new encoding by @xunilrj in #6998
- Add description to forc-node by @IGI-111 in #7013
Full Changelog: v0.66.8...v0.66.9
v0.66.8
What's Changed
- Function selector collision check by @jjcnn in #6869
- plugin: forc-call by @zees-dev in #6791
- CompileError::ContractIdConstantNotAConstDecl by @mo-hak in #6842
- Implement marker traits by @ironcev in #6871
- Fixes double call of get_items_for_type. by @esdrubal in #6626
- Fixes argument errors not displayed. by @esdrubal in #5909
- feat: disallow dependency package name collision in forc-pkg by @kayagokalp in #6888
- fix: remove invalid unpacking logic for IPFS pinned pkg sources by @kayagokalp in #6902
- feat: Add forc-publish plugin by @sdankel in #6890
- Implement array repeat without repeating item at the AST/CST trees by @xunilrj in #6901
- Implement partial equivalence and extend
forc migrate
tool by @ironcev in #6900 - Removes redundant checks from unifier. by @esdrubal in #6912
- Removes TraitMap::insert_for_type. by @esdrubal in #6867
- Respect variable type ascription when initializer has type Never by @jjcnn in #6911
- minor: Migrate forc-call node_url by @zees-dev in #6920
- chore: cargo update by @sdankel in #6929
- feat: add forc-node command for easily bootstrapping a node by @kayagokalp in #6473
- Const generic feature toggle, parser and errors. by @xunilrj in #6926
- Fix bug in conditional-const-prop when targets of cbr are same by @vaivaswatha in #6936
- docs: added a twitter shield by @Olexandr88 in #6939
- Fix issue with
__transmute
type checking by @xunilrj in #6940 - unique constants in the IR by @vaivaswatha in #6896
- Add test of never type in arrays by @jjcnn in #6943
- ECAL opcode support by @zees-dev in #6947
- Extend
#[deprecated]
support by @IGI-111 in #6944 - Add
bldd
case toOp::parse_opcode()
by @ironcev in #6957 - Add as_u256 for U128 by @SwayStar123 in #6951
- Allow
ldc
opcode in predicates by @ironcev in #6964 - Add
ProgramId
to root module. by @tritao in #6959 - Implement Iteration for Bytes by @SwayStar123 in #6953
- chore: move dev dependencies to workspace by @sdankel in #6966
- fix extract_type_parameters regarding primitive types by @xunilrj in #6965
- forc-call logs support by @zees-dev in #6968
- fix: resolve UB in _add, __sub, _mul for u8, u16, u32 by @K1-R1 in #6654
- Fully resolve trait constraints call paths. by @tritao in #6962
- Fix typos in CI. by @tritao in #6972
- feat: Support categories and keywords in forc manifest by @sdankel in #6974
- ci: Install forc-node in gh-pages.yml by @sdankel in #6978
- Update mdbook to 0.4.45 in CI by @IGI-111 in #6973
- ci: upgrade to rust 1.85.0 by @sdankel in #6979
- Add "Breaking Release Checklist" to internal docs by @ironcev in #6980
- chore: bump to 0.66.8 by @sdankel in #6989
New Contributors
Full Changelog: v0.66.7...v0.66.8
v0.66.7
What's Changed
- Add
Bytes
conversions forAddress
,ContractId
,EvmAddress
,B512
andAssetId
by @bitzoic in #6857 - Encoding v1 docs by @xunilrj in #6350
- Introduce
crypto
module and expand cryptographic functions by @bitzoic in #6837 - Auto-generate DWARF debug symbols in debug builds by @JoshuaBatty in #6863
- Fixes insert_trait_implementaion for nested generics. by @esdrubal in #6827
- Add
Clone
implementation forString
andVec
by @bitzoic in #6865 - Add
resize()
toVec
andBytes
by @bitzoic in #6864 - feat: Add support for additional package manifest keys by @sdankel in #6868
- Add
last()
toVec
by @bitzoic in #6870 - Use compiler source map directly in forc-debug by @JoshuaBatty in #6872
- chore: upgrade
fuels-rs
sdk to0.70
by @zees-dev in #6851 - Fix CI error when building external fork non-push builds by @tritao in #6878
- ZK opcodes in the Sway assembly by @vaivaswatha in #6876
- Fix clippy warnings for Rust 1.84.0 by @tritao in #6877
forc-debug
: Add ABI support for decoding log values by @JoshuaBatty in #6856- Add tests of visibility of private direct submodules by @jjcnn in #6849
- Fix
build-publish-master-image
CI by upgrading Rust version in Dockerfile by @tritao in #6882 - Std-lib support for ZK opcodes by @bitzoic in #6832
- chore: bump to 0.66.7 by @sdankel in #6894
Full Changelog: v0.66.6...v0.66.7
v0.66.6
What's Changed
- forc test single-step until jump point instead of patching binary by @xunilrj in #6731
- Support for aliased import for encoding v1 by @xunilrj in #6628
- improve asm copy propagation for MOVE instruction by @xunilrj in #6641
- Error on use of self intead of Self in return type by @esdrubal in #6763
- Fixes
for
specific error message. by @esdrubal in #6758 - Improve document symbol hierarchy to match rust-analyzer layout by @JoshuaBatty in #6678
- Fixes qualified call path without as trait. by @esdrubal in #6764
- Implement Serde for AstNode types by @JoshuaBatty in #6605
- More namespace cleanups by @tritao in #6675
- Implement hierarchical trait map and namespace lookups. by @tritao in #6516
- refactor: Improve DAP server code organisation and readability by @JoshuaBatty in #6770
- Fix handling of associated constants in ABI/traits by @tritao in #6768
- Change
SubstTypesContext
to contain an optionalTypeSubstMap
. by @tritao in #6773 - Add
mod
toU128
by @bitzoic in #6771 - Associate lexical scopes with their respective declarations. by @tritao in #6780
- typo-Update deploy.rs by @shystrui1199 in #6783
- Update
output_asset_to()
andoutput_asset_id()
to handleOutput::Variable
by @bitzoic in #6781 - docs: add sway memory model by @matt-user in #6775
- fix: typos cleanup by @yash251 in #6799
- Add testing of
storage_domains
to language and SDK tests by @ironcev in #6809 - Refactor
swayfmt
to support arbitrary lexed trees by @ironcev in #6806 - Add modulo inline tests by @SwayStar123 in #6817
- fix: formatting for loop by @amiremohamadi in #6807
- Rename forc doc
--manifest-path
to--path
by @amiremohamadi in #6797 - fix bug in
memcopyopt
related to killing defined symbols by @vaivaswatha in #6820 - Remove instances of multiple impl blocks by @SwayStar123 in #6822
- Fixes array oob on reassignment. by @esdrubal in #6819
- add erroneously missing #[test()] attribute by @SwayStar123 in #6824
- Implements fully working hierarchical lexical scopes. by @esdrubal in #6784
- Implement
Iterator
forStorageVec
by @ironcev in #6821 - Show error when contract method names conflict by @xunilrj in #6782
- codegen: Use idiomatic fuel-vm ops for memcpy and addr_of by @Dentosal in #6795
- Refactor the module structure of the namespace module by @jjcnn in #6291
- migrate from shellfish to rustyline with enhanced CLI features by @JoshuaBatty in #6830
- [asmgen] pushing / popping registers for call should handle all def'd regs by @vaivaswatha in #6826
- [asmgen] bugfixes in
const_indexing_aggregates_function
by @vaivaswatha in #6834 - Add Transaction::Blob tests by @SwayStar123 in #6667
- Add
forc-migrate
tool by @ironcev in #6790 - Do not allow inline
VirtualImmediate
* instantiations by @vaivaswatha in #6852 - fix: Adds generic trait impls to forc-doc by @sdankel in #6850
- Bump to v0.66.6 by @IGI-111 in #6853
- fix: gh-pages CI failing due to forc-migrate by @sdankel in #6854
- chore: enable serde feature for num_bigint by @JoshuaBatty in #6855
- Add splice method to Bytes by @SwayStar123 in #6823
New Contributors
- @shystrui1199 made their first contribution in #6783
- @amiremohamadi made their first contribution in #6807
Full Changelog: v0.66.5...v0.66.6
v0.66.5
What's Changed
- chore: add a script to bump all fuel maintained dependencies by @kayagokalp in #6684
- docs: remove dead links to sway-libs/fixed-point by @kayagokalp in #6689
- chore: remove unmaintained
atty
crate by @kayagokalp in #6691 - chore: remove unmaintained
difference
in favor ofsimilar
by @kayagokalp in #6694 - Rewrite
TypeEngine
for performance, robustness, and simplicity by @ironcev in #6613 - chore: remove unmaintained
ansi_term
in favor ofansiterm
by @kayagokalp in #6696 - Remove
forc
help test. by @tritao in #6682 - chore: remove
uwuify
feature by @kayagokalp in #6698 - fix: forc-deploy asks for password before checking if the wallet exists by @kayagokalp in #6704
- Forc-deploy import wallet support if non-existent wallet by @zees-dev in #6680
- chore: upgrade fuels sdk to 66.10 by @sdankel in #6715
- Send method arguments with numerics to the second pass by @xunilrj in #6700
- Add verifications-complete job by @IGI-111 in #6716
- Add modules to forc-doc search index by @sdankel in #6711
- Test encoding raw slices does not allows buffer overflows by @xunilrj in #6699
- Add revert with log function to std lib by @SwayStar123 in #6717
- Transmute intrinsics by @xunilrj in #6692
- Profiling support by @tritao in #6705
- Storage domains by @ironcev in #6466
- Fix module visibility check by @jjcnn in #6685
- Make
OrdEq
trait public by @bitzoic in #6723 - Add configurables section offset in the preamble by @vaivaswatha in #6709
Forc.toml
metadata support by @zees-dev in #6728- Proof that #6324 is not a bug. by @esdrubal in #6573
- Add repro for issue #6335. by @tritao in #6730
- feat: add function for generating bytecode identifier by @sdankel in #6674
- Add comments about bytecode test files by @sdankel in #6741
- chore: bump version to 0.66.5 by @sdankel in #6743
Full Changelog: v0.66.4...v0.66.5
v0.66.4
What's Changed
- Optimise TokenMap to only hold either a typed or parsed AST token by @JoshuaBatty in #6585
EncodeBufferAppend
:grow_if_needed
should allocate sufficiently by @vaivaswatha in #6686- Bump to v0.66.4 by @IGI-111 in #6688
Full Changelog: v0.66.3...v0.66.4