github FuelLabs/sway v0.72.0

5 hours ago

What's Changed

  • Optimize execution speed of in_language tests by @ironcev in #7635
  • Optimize away zero-length MCP/MCPI instructions by @Dnreikronos in #7629
  • Fix redundant ops by @xunilrj in #7636
  • Implement chunk-based dynamic storage StorageVec by @ironcev in #7649
  • Fix swayfmt comment placement after multibyte comments by @JoshuaBatty in #7652
  • IR tests snapshots by @xunilrj in #7654
  • Improve storage_benchmarks tooling by @ironcev in #7653
  • Improve CSE pass by adding get_local/global/config/storage_key by @ironcev in #7655
  • Refactor InstOp::GetConfig for consistency by @ironcev in #7656
  • Fix memcpyopt to allow multiple passes of optimisations by @xunilrj in #7657
  • Optimize compilation speed and memory consumption (DeclEngine) by @ironcev in #7659
  • Parallelize runs of in-lang tests and shorten storage tests compilation by @ironcev in #7661
  • Use HasChanges to propagate information about in-place mutations by @ironcev in #7662
  • Extend compiler metrics with DeclEngine metrics by @ironcev in #7664
  • Remove cloning of parsed tree elements during type checking by @ironcev in #7667
  • Refactor and tidy up std tests for execution speed and discoverability by @ironcev in #7669
  • Extract all perf data from in-language tests run in parallel by @ironcev in #7670
  • Fix gix-validate advisory (GHSA-p3hw-mv63-rf9w) by @ironcev in #7671
  • fix modified in optimisation passes so they converge by @xunilrj in #7666
  • make IR snapshot fail only at the end of all comparisons by @xunilrj in #7676
  • Fix forc-fmt empty if-body + else collapsing onto one line by @Dnreikronos in #7628
  • Optimize type casting by using __transmute instead of asm blocks by @ironcev in #7675
  • Add comprehensive tests for init_aggr instruction and its lowering by @ironcev in #7677
  • Removing verify-ir from the CLI by @xunilrj in #7672
  • Add additional tests for init_aggr instruction and its lowering by @ironcev in #7678
  • Optimize initialization of mostly zeroed aggregates by @vaivaswatha in #7542
  • Optimize dynamic std types by @ironcev in #7683
  • Optionally print IR metadata block by @ironcev in #7684
  • Improve AddrDataId materialization by @xunilrj in #7685
  • Fix SROA miscompilation issues by @ironcev in #7689
  • Bump serde_with from 3.12.0 to 3.21.0 in /test/src/sdk-harness by @dependabot[bot] in #7687
  • Fix get_runtime_representation and const-eval of EnumInstantiation by @ironcev in #7692
  • Optimize hashing by implementing is_hash_trivial by @ironcev in #7695
  • Fix SROA when loading in multiple blocks by @xunilrj in #7694
  • Implement __mem_repr_eq intrinsic by @ironcev in #7697
  • Rollout Block::is_entry by @ironcev in #7696
  • Add missing IR passes to PassManager::OPTIMIZATION_PASSES by @ironcev in #7698
  • Bump to 0.72.0 by @ironcev in #7699

Breaking Changes

  • The __runtime_mem_id and __encoding_mem_id intrinsics are removed in favor of the new __mem_repr_eq intrinsics. For details, see #7697.
  • The std::hash::Hash has a new associated function, is_hash_trivial. For details, see #7695.
  • The --verify-ir CLI option is removed. IR verification is now always performed after every IR pass. For details, see #7672.
  • IR metadata block is not printed by default anymore. To print it, add print-md to --ir CLI option. E.g., --ir final print-md. For details, see #7684.

New Contributors

Full Changelog: v0.71.2...v0.72.0

Don't miss a new sway release

NewReleases is sending notifications on new releases.