Releases
0.1.5
Compare
Sorry, something went wrong.
No results found
📝 Changelog
✨ Features
feat(slang): thread SemanticAnalysis through emitter chain
feat(slang): return Option from expression emission
feat(mlir): add llvm.data_layout and llvm.target_triple to module
feat(mlir): add typed constants, allocas, loads, and casts to builder
feat(slang): ABI-based function naming
feat(slang): emit initializer before alloca
feat(slang): skip redundant casts and comparisons
feat(mlir): align pass pipeline with solc (canonicalizer, modifier lowering)
feat(slang): checked arithmetic with sol.cadd/sol.csub/sol.cmul/sol.cdiv
feat(slang): rewrite logical AND/OR as sol.if + i1 alloca
feat(slang): emit default constructor with FunctionKind attribute
feat(dev): add a cargo clippy alias for slang
feat(slang): migrate Sol dialect emission to ODS-generated builders (#332 )
feat(slang): add assert built-in (#345 )
feat(mlir): add lit tests (#362 )
feat(slang): emit sol.this for ThisKeyword expressions (#369 )
feat(slang): encode require string literal message (#346 )
feat(slang): use slang's compute_canonical_signature() for method identifiers (#354 )
feat(slang): lower revert statements (#361 )
feat(slang): integer literal narrowing (#367 )
feat(slang): lower additional EVM intrinsics (#376 )
feat(slang): cast function call arguments to match parameter types (#352 )
feat(cli): filter MLIR output by dialect via --emit-mlir (#380 )
feat(slang): lower emit statements (#377 )
feat(solx-dev): split LLVM utils and tests build flags (#396 )
feat(slang): lower explicit constructor body and wire the deploy module (#405 )
feat(solx-dev): add --enable-tools to install opt and llc (#435 )
feat(slang): resolve compound Slang type variants (#387 )
feat(slang): emit multi-value return statements (#388 )
feat(slang): resolve Contract, Interface, and Enum type variants (#390 )
feat(slang): wire gasleft, msg.sig, msg.data, addr.code intrinsics (#392 )
feat(solx-dev): add --install-distribution flag for lean CI install (#439 )
feat(slang): emit tuple deconstruction statements (#389 )
feat(slang): wire cryptographic and modular-arithmetic intrinsics (#393 )
feat(slang): resolve UserDefinedValue types via target-type lookup (#410 )
feat(slang): emit sol.return after sol.revert (#370 )
feat(slang): support multi-result function calls in deconstruction (#391 )
feat(slang): emit contract-level constant references (#401 )
feat(slang): wire .length on arrays, bytes, and strings (#411 )
feat(slang): wire address.send and address.transfer (#412 )
feat(slang): wire abi.encode, abi.encodePacked, abi.encodeWithSelector, abi.encodeWithSignature, abi.decode (#414 )
feat(slang): wire IndexAccessExpression to sol.gep / sol.map (#415 )
feat(slang): wire array push/pop and array literals (#416 )
feat(slang): support a[i] / m[k] assignment targets (#419 )
feat(slang): read and write struct fields in memory, calldata, and storage (#422 )
feat(slang): wire struct-literal constructors (#424 )
feat(slang): allow runtime require message via Error(string) call (#425 )
feat(slang): emit state variable initializers in constructor (#426 )
feat(mlir): emit wide integer constants without parser round-trip (#428 )
feat(slang): support packed state variable slots (#427 )
🐛 Fixes
fix(slang): normalize Windows paths in compilation config
fix(ci): override CARGO_TARGET_DIR for solx-dev build in build-llvm action
fix(dev): path canonicalization in solc+MLIR build
fix: cargo-deny failure from vulnerable rustls-webpki (#335 )
fix(mlir): remove text round-trip from finalize_module (#333 )
fix(mlir): use ptr_type for sol.alloca alloc_type attribute (#340 )
fix(slang): use declared type for state variable storage operations (#358 )
fix(slang): use arith.constant for i1 booleans (#359 )
fix: update rand to 0.9.3 for dependabot alert #8 (#336 )
fix(ci): pin MSYS2 to stabilize Windows ccache (#374 )
fix(tests): correct EIP-55 checksum in literal_types fixture (#385 )
fix(deps): update rust crate toml to 0.9 (#400 )
fix(deps): update rust crate reqwest to 0.13 (#399 )
fix(ci): fetch reference solc directly from raw.githubusercontent.com (#406 )
fix(deps): pin reqwest to 0.12 to restore HTTPS in solx-compiler-downloader (#407 )
fix(deps): update rust crate toml to v1 (#423 )
fix(ci): pin js package managers and ignore pnpm build scripts (#432 )
fix(mlir): adapt to Sol→Yul pipeline split and align codegen with solc (#436 )
fix(deps): update rust crate revm to v37 (#421 )
fix(slang): skip no-op casts in TypeConversion::emit (#386 )
fix(evmla): track typed stack through SWAPX/DUPX (#431 )
fix(ci): pin Node 24 for renovate-config-check (#440 )
fix(slang): allocate named return parameters (#413 )
fix(tester): pass debug output dir via SOLX_OUTPUT_DIR env var (#442 )
fix(llvm): pin the fix and add a test for invalid memset optimization (#441 )
fix(standard-json): always emit sourceLocation start/end (#443 )
fix(deps): update rust crate rust_xlsxwriter to 0.95 (#449 )
fix(llvm): pin the fix and add a test for irreducible CFG (#454 )
fix(deps): update rust crate revm to v38 (#468 )
fix(benchmark): solx-tester skips E codegen; Hardhat ignores the configured solx (#497 )
fix(deps): bump crossbeam-epoch to 0.9.20 (RUSTSEC-2026-0204) (#516 )
fix(deps): update rust crate revm to v40 (#511 )
fix(test-harness): fix the integration error gate and self-verify compiler (#529 )
fix(ci): derive Boost MinGW compiler tag on Windows (#530 )
fix(deps): update rust crate rust_xlsxwriter to 0.96 (#539 )
fix(deps): update rust crate num-bigint to 0.5 (#538 )
fix(deps): update rust crate revm to v41 (#541 )
fix(tests): add a test for a codegen bug caused by branch folding (#542 )
📦 Other Changes
build: bump object from 0.37.3 to 0.39.0 (#318 )
build: bump melior from 0.26.4 to 0.26.9 (#313 )
build: bump mikepenz/release-changelog-builder-action from 6.1.1 to 6.2.0 (#317 )
build: bump codecov/codecov-action from 5.5.3 to 6.0.0 (#315 )
build: bump gimli from 0.33.0 to 0.33.1 (#320 )
build: bump ron from 0.12.0 to 0.12.1 (#321 )
build: bump sha2 from 0.10.9 to 0.11.0 (#314 )
build: bump cc from 1.2.57 to 1.2.58 (#322 )
build: bump revm from 34.0.0 to 36.0.0 (#319 )
build: bump libc from 0.2.183 to 0.2.184 (#323 )
build: bump docker/login-action from 4.0.0 to 4.1.0 (#326 )
build: bump indexmap from 2.13.0 to 2.13.1 (#327 )
build: bump mshick/add-pr-comment from 3.9.0 to 3.10.0 (#324 )
ci: free disk space on macOS runners to fix flaky builds (#329 )
ci: add merge_group trigger to required status check workflows (#328 )
ci: add Socket Firewall (SFW) composite action and test workflow (#250 )
build: bump sha3 from 0.10.8 to 0.11.0 (#325 )
build: bump semver from 1.0.27 to 1.0.28 (#330 )
build: bump cc from 1.2.58 to 1.2.59 (#331 )
chore: bump slang_solidity and Rust toolchain to 1.94.0
refactor(slang): remove catch_unwind guards
refactor(slang): resolve member access via BuiltIn variants
build: bump docker/build-push-action from 7.0.0 to 7.1.0 (#334 )
build: bump actions/upload-artifact from 7.0.0 to 7.0.1 (#338 )
build: bump mikepenz/release-changelog-builder-action from 6.2.0 to 6.2.1 (#339 )
build: bump softprops/action-gh-release from 2.6.1 to 3.0.0 (#343 )
ci(sfw): install SFW CA in container path (#357 )
build: bump indexmap from 2.13.1 to 2.14.0 (#349 )
build: bump rayon from 1.11.0 to 1.12.0 (#351 )
refactor(mlir): replace type cache HashMap with TypeFactory (#341 )
build: bump cc from 1.2.59 to 1.2.60 (#348 )
build: bump libc from 0.2.184 to 0.2.185 (#350 )
test(debug-info): migrate DWARF debug info validation to solx-tester (#342 )
build: bump rustls-webpki to 0.103.13 for RUSTSEC-2026-0104 (#363 )
build: bump clap from 4.6.0 to 4.6.1 (#366 )
ci(cache): re-add ccache as artifact-cache fallback (#360 )
build: bump actions/cache from 5.0.4 to 5.0.5 (#368 )
build: bump assert_cmd from 2.2.0 to 2.2.1 (#373 )
build: bump actions/setup-node from 6.3.0 to 6.4.0 (#372 )
build: bump object from 0.39.0 to 0.39.1 (#381 )
chore: Configure Renovate (#378 )
ci: extract submodule init into a composite action (#383 )
chore(deps): update github-actions (#397 )
chore(deps): update cargo minor/patch (#395 )
chore(deps): update ubuntu:24.04 docker digest to c4a8d55 (#394 )
refactor(slang): resolve callee via slang's binder (#382 )
ci(cache): drop LLVM_PARALLEL_LINK_JOBS to 1 on macOS x86 (#402 )
chore(deps): update rust crate md5 to 0.8 (#398 )
refactor(slang): don't thread SemanticAnalysis through the emitters (#403 )
chore(cargo): bump workspace resolver to 3 (#408 )
ci(slang): run MLIR lit tests in slang-tests workflow (#384 )
ci(llvm): disable LLVM tools on all platforms via install-distribution (#404 )
chore(deps): update github-actions (#417 )
chore(deps): update rust crate toml to v0.9.12 (#418 )
chore(renovate): pin mlir-sys to <220 (#420 )
refactor(solx-dev): move JS pkg manager pins into harness configs (#434 )
chore(deps): update dependency pnpm to v10.28.2 [security] (#438 )
chore(config): migrate Renovate config (#437 )
chore(deps): update cargo-bins/cargo-binstall action to v1.19.1 (#445 )
chore(deps): update cargo minor/patch (#444 )
chore(deps): update dependency hardhat to v3 (#450 )
chore(deps): update dependency hardhat to v2.28.6 (#446 )
chore(deps): update dependency pnpm to v10.33.4 (#447 )
chore(deps): update github-actions (#456 )
chore(deps): update rust to v1.95.0 (#458 )
chore(deps): update rust crate sha3 to 0.12 (#457 )
chore(deps): update dependency bun to v1.3.14 (#455 )
refactor(slang): Migrate to slang_solidity_v2 (#453 )
ci: change runner to solx-linux-amd64-self-hosted (#375 )
chore(slang): bump slang_solidity_v2 and fix hex literal lowering (#459 )
chore(deps): update github-actions (#465 )
chore(deps): update cargo minor/patch (#466 )
chore(deps): update dependency pnpm to v11 (#467 )
chore(deps): update dependency pnpm to v11.3.0 (#469 )
chore(deps): update cargo minor/patch to v1.2.63 (#471 )
chore(deps): update github-actions (#472 )
chore(deps): update ubuntu:24.04 docker digest to 786a8b5 (#470 )
chore(deps): update rust to v1.96.0 (#474 )
chore(deps): update dependency pnpm to v11.5.0 (#473 )
chore(deps): update ubuntu docker tag to v26 (#475 )
chore(deps): update github-actions (#478 )
chore(deps): update cargo minor/patch to v8.0.3 (#476 )
chore(deps): update dependency pnpm to v11.5.2 (#477 )
chore(slang): Update slang_solidity_v2 to latest (#479 )
chore(deps): update cargo minor/patch (#481 )
chore(deps): update ubuntu:26.04 docker digest to 53958ec (#480 )
chore(deps): update dependency pnpm to v11.7.0 (#482 )
chore(deps): update github-actions (#483 )
ci: full benchmark on ci:integration-benchmark-full label (#484 )
chore(deps): update dependency pnpm to v11.8.0 [security] (#485 )
chore(deps): update slang_solidity_v2_common digest to d93a0ca (#488 )
chore(deps): update github-actions (#490 )
chore(deps): update cargo minor/patch (#489 )
chore(deps): update rust crate itertools to 0.15 (#492 )
chore(deps): update rust crate anyhow to v1.0.103 [security] (#493 )
perf(codegen): O(1) debug-info location lookup (#495 )
chore(deps): update ubuntu:26.04 docker digest to b7f4819 (#506 )
chore(deps): update rust crate ron to v0.12.2 (#507 )
chore(deps): update github-actions (#509 )
chore(deps): update dependency pnpm to v11.9.0 (#508 )
chore: point solx-llvm submodule at NomicFoundation org (#512 )
chore(deps): update rust crate gimli to 0.34 (#510 )
ci: support solx-llvm's regression CI (image tools + optional artifact cache) (#513 )
ci: python3-venv instead of system-pip installs in the runner image (#515 )
ci: label-gated compile-time benchmark (hyperfine over standard JSON) (#518 )
perf: optimize the EVM legacy assembly compilation pipeline (#499 )
refactor(mlir): introduce the ir/ entity substrate and migrate solx-slang onto it (#494 )
refactor(mlir): own the block insertion cursor in solx_mlir::Context (#514 )
perf(core): solc and subprocess payload optimizations (#504 )
ci: bump solx-ci-runner image to ea317f4 (#519 )
perf(evmla): redesign EVM assembly to offload the LLVM optimizer (#501 )
refactor(mlir): reduce MLIR dialect boilerplate to macro definitions (#523 )
perf(debug-info): debug info build optimizations (#503 )
chore: update slang dependency to latest (#528 )
chore(deps): make renovate ignore slang_solidity_v2 (#491 )
test(debug-info): pin cross-source DWARF line attribution (#532 )
chore(deps): update cargo minor/patch (#534 )
chore(deps): update rust to v1.96.1 (#535 )
chore(deps): update github-actions (#537 )
chore(deps): update dependency pnpm to v11.10.0 (#536 )
chore(deps): update codecov/codecov-action action to v7 (#540 )
ci: adopt cargo-cooldown-check v0.2.0, drop its cache step and config (#543 )
chore: bump the solx-llvm submodule (#544 )
perf(codegen): output-gating optimizations (#502 )
ci: stop macOS disk cleanup once a free-space target is met (#533 )
solx-tester: drop the archived web3 crate for alloy-primitives (#548 )
perf(core): reuse persistent worker subprocesses across translation units (#524 )
chore: devcontainer on the CI runner image, with LLVM install docs and CI validation (#525 )
chore: bump Rust toolchain to 1.97.1 (#556 )
refactor(slang): scope-strata lowering architecture (#549 )
chore: bump version to 0.1.5 (#558 )
You can’t perform that action at this time.