Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
2aeedda
bender-slang: Initial `slang` bindings
fischeti Jan 28, 2026
44f9b85
pickle: Add initial command
fischeti Jan 28, 2026
5d779e6
ci: Clone slang submodule and bump checkout action
fischeti Jan 29, 2026
d55c50b
bender-slang(build): Fix Linux builds
fischeti Jan 29, 2026
396ddd0
bender-slang(build): Provide config template for IIS env
fischeti Jan 29, 2026
3b16102
Add slang feature to disable slang build
micprog Jan 29, 2026
a800abf
bender-slang(build): Link libc++ statically on linux and windows
fischeti Jan 29, 2026
d1813e6
ci: Enable `slang` for Windows again
fischeti Jan 29, 2026
3a27cc3
bender-slang(build): Fix `fmt` library in release builds
fischeti Jan 31, 2026
0e04cec
bender-slang(build): Clean up
fischeti Jan 31, 2026
c575bec
bender-slang(build): Enable `mimalloc` library again
fischeti Jan 31, 2026
812bde7
bender-slang(build): Fix windows build
fischeti Jan 31, 2026
fc5d519
bender-slang(build): Don't use system-installed slang dependencies
fischeti Jan 31, 2026
fda4574
bender-slang(ffi): Refactor interface
fischeti Feb 1, 2026
4fa9b3a
bender-slang(build): Align defines and flags in library and bridge build
fischeti Feb 2, 2026
4d71342
bender-slang(bridge): Add SyntaxTree rewriter for module name prefixe…
fischeti Feb 4, 2026
73fcf10
bender-slang(build): Add include guard to slang_bridge.h
fischeti Feb 4, 2026
f823dff
bender-slang(ffi): Refactor interface (once again)
fischeti Feb 5, 2026
2e5067d
pickle: Bender integration
fischeti Feb 11, 2026
2673472
pickle: Filter non-verilog files and emit warnings
fischeti Feb 12, 2026
f18f2cc
bender-slang: Allow dumping AST as JSON
fischeti Feb 12, 2026
a48e071
bender-slang(rewriter): Handle package imports, virtual interfaces an…
fischeti Feb 12, 2026
0325dcb
pickle: Allow to exclude names from renaming
fischeti Feb 12, 2026
9c8d4fb
pickle: Clean up CLI
fischeti Feb 12, 2026
54a0eba
bender-slang: Emit error when parsing fails
fischeti Feb 16, 2026
1e3f125
Wrap FFI types with safe wrappers
fischeti Feb 16, 2026
930f240
pickle: Filter out unreachable SyntaxTrees
fischeti Feb 16, 2026
49d48de
bender-slang: Use typed errors with `thiserror`
fischeti Feb 16, 2026
278e76c
bender-slang: Unwrap instead of expect
fischeti Feb 16, 2026
24b4e43
bender-slang: Add documentation
fischeti Feb 16, 2026
367d919
pickle: Actually include additional sourcefiles
fischeti Feb 16, 2026
8f0e4f7
bender-slang: Fix windows build
fischeti Feb 16, 2026
604dfc9
bender-slang: Clippy fixes and clean up
fischeti Feb 17, 2026
094547f
bender-slang(lib): Refactor to respect lifetime of C++ objects
fischeti Feb 18, 2026
f94af87
bender-slang: Cannonicalize include paths on windows
fischeti Feb 22, 2026
7635cb7
Update crates/bender-slang/README.md
fischeti Feb 24, 2026
e18f8e3
bender-slang(lib): Use `cfg(unix)`
fischeti Feb 24, 2026
49c1a9c
Update Readme with `script` flags
fischeti Feb 24, 2026
b516a06
pickle: Rename only defined references
fischeti Feb 25, 2026
90cc648
pickle: Fix and require macro expansions
fischeti Feb 26, 2026
833115d
bender-slang: Split up the library
fischeti Feb 26, 2026
570c13b
pickle: Use `unreachable` for groups
fischeti Feb 27, 2026
1ae9c4a
bender-slang(rewriter): Rename block names
fischeti Mar 1, 2026
a25fc40
bender-slang: Two-pass renaming scheme
fischeti Mar 3, 2026
4913515
bender-slang(build): Link stdlibc++ dynamically by default
fischeti Mar 3, 2026
f68b52a
pickle: Align `include_dirs`
fischeti Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .cargo/config.toml.iis
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[target.x86_64-unknown-linux-gnu]
linker = "/usr/pack/gcc-14.2.0-af/bin/gcc"
rustflags = ["-C", "link-arg=-Wl,-rpath,/usr/pack/gcc-14.2.0-af/lib64"]

[env]
CC = "/usr/pack/gcc-14.2.0-af/bin/gcc"
CXX = "/usr/pack/gcc-14.2.0-af/bin/g++"
30 changes: 19 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,17 @@ jobs:
- 1.87.0 # minimum supported version
continue-on-error: ${{ matrix.rust == 'nightly' }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust}}
components: rustfmt
- name: Build
run: cargo build
run: cargo build --all-features
- name: Cargo Test
run: cargo test --all
run: cargo test --workspace --all-features
- name: Format (fix with `cargo fmt`)
run: cargo fmt -- --check
- name: Run unit-tests
Expand All @@ -38,29 +40,33 @@ jobs:
test-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Build
run: cargo build
run: cargo build --all-features
- name: Cargo Test
run: cargo test --all
run: cargo test --workspace --all-features
- name: Run unit-tests
run: tests/run_all.sh
shell: bash

test-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Build
run: cargo build
run: cargo build --all-features
- name: Cargo Test
run: cargo test --all
run: cargo test --workspace --all-features
- name: Run unit-tests
run: tests/run_all.sh
shell: bash
Expand All @@ -69,7 +75,9 @@ jobs:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
Expand All @@ -80,7 +88,7 @@ jobs:
name: Unused Dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
Expand Down
18 changes: 12 additions & 6 deletions .github/workflows/cli_regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,35 +8,41 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Run CLI Regression
run: cargo test --test cli_regression -- --ignored
run: cargo test --all-features --test cli_regression -- --ignored
env:
BENDER_TEST_GOLDEN_BRANCH: ${{ github.base_ref }}

test-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Run CLI Regression
run: cargo test --test cli_regression -- --ignored
run: cargo test --all-features --test cli_regression -- --ignored
env:
BENDER_TEST_GOLDEN_BRANCH: ${{ github.base_ref }}

test-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Run CLI Regression
run: cargo test --test cli_regression -- --ignored
run: cargo test --all-features --test cli_regression -- --ignored
env:
BENDER_TEST_GOLDEN_BRANCH: ${{ github.base_ref }}
10 changes: 5 additions & 5 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ jobs:
-v "$GITHUB_WORKSPACE/target/$platform/$tgtname:/source/target" \
--platform $full_platform \
$tgtname-$platform \
cargo build --release;
cargo build --release --all-features;
shell: bash
- name: OS Create Package
run: |
Expand Down Expand Up @@ -121,7 +121,7 @@ jobs:
-v "$GITHUB_WORKSPACE/target/$platform/$tgtname:/source/target" \
--platform $full_platform \
$tgtname-$platform \
cargo build --release;
cargo build --release --all-features;
shell: bash
- name: OS Create Package
run: |
Expand Down Expand Up @@ -170,7 +170,7 @@ jobs:
-v "$GITHUB_WORKSPACE/target/amd64:/source/target" \
--platform linux/amd64 \
manylinux-amd64 \
cargo build --release;
cargo build --release --all-features;
- name: GNU Create Package
run: .github/scripts/package.sh amd64
shell: bash
Expand Down Expand Up @@ -215,7 +215,7 @@ jobs:
-v "$GITHUB_WORKSPACE/target/arm64:/source/target" \
--platform linux/arm64 \
manylinux-arm64 \
cargo build --release;
cargo build --release --all-features;
- name: GNU Create Package
run: .github/scripts/package.sh arm64
shell: bash
Expand All @@ -240,7 +240,7 @@ jobs:
rustup target add aarch64-apple-darwin
cargo install universal2
- name: MacOS Build
run: cargo-universal2 --release
run: cargo-universal2 --release --all-features
- name: Get Artifact Name
run: |
if [[ "$GITHUB_REF" =~ ^refs/tags/v.*$ ]]; then \
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "crates/bender-slang/vendor/slang"]
path = crates/bender-slang/vendor/slang
url = https://github.com/MikePopoloski/slang.git
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## Unreleased
### Added
- Add new `crates/bender-slang` crate that integrates the vendored Slang parser via a Rust/C++ bridge.
- Add new `pickle` command (behind feature `slang`) to parse and re-emit SystemVerilog sources.

## 0.31.0 - 2026-03-03
### Fixed
Expand Down
126 changes: 125 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading