Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
d83dd6f
bender-slang: Initial `slang` bindings
fischeti Jan 28, 2026
92ebfc2
pickle: Add initial command
fischeti Jan 28, 2026
47c51c0
ci: Clone slang submodule and bump checkout action
fischeti Jan 29, 2026
84717a7
bender-slang(build): Fix Linux builds
fischeti Jan 29, 2026
d0f5efb
bender-slang(build): Provide config template for IIS env
fischeti Jan 29, 2026
51faabb
Add slang feature to disable slang build
micprog Jan 29, 2026
74b137e
bender-slang(build): Link libc++ statically on linux and windows
fischeti Jan 29, 2026
d7019f9
ci: Enable `slang` for Windows again
fischeti Jan 29, 2026
2e9a7a0
bender-slang(build): Fix `fmt` library in release builds
fischeti Jan 31, 2026
3c6d982
bender-slang(build): Clean up
fischeti Jan 31, 2026
15fcccc
bender-slang(build): Enable `mimalloc` library again
fischeti Jan 31, 2026
b726eaa
bender-slang(build): Fix windows build
fischeti Jan 31, 2026
3d50afd
bender-slang(build): Don't use system-installed slang dependencies
fischeti Jan 31, 2026
ef8bf9f
bender-slang(ffi): Refactor interface
fischeti Feb 1, 2026
112c0f5
bender-slang(build): Align defines and flags in library and bridge build
fischeti Feb 2, 2026
19e159e
bender-slang(bridge): Add SyntaxTree rewriter for module name prefixe…
fischeti Feb 4, 2026
b83355a
bender-slang(build): Add include guard to slang_bridge.h
fischeti Feb 4, 2026
22679ac
bender-slang(ffi): Refactor interface (once again)
fischeti Feb 5, 2026
3e5634e
pickle: Bender integration
fischeti Feb 11, 2026
b854b1c
pickle: Filter non-verilog files and emit warnings
fischeti Feb 12, 2026
e82a313
bender-slang: Allow dumping AST as JSON
fischeti Feb 12, 2026
7e43523
bender-slang(rewriter): Handle package imports, virtual interfaces an…
fischeti Feb 12, 2026
b81f002
pickle: Allow to exclude names from renaming
fischeti Feb 12, 2026
7684c26
pickle: Clean up CLI
fischeti Feb 12, 2026
2256064
bender-slang: Emit error when parsing fails
fischeti Feb 16, 2026
4c672f3
Wrap FFI types with safe wrappers
fischeti Feb 16, 2026
c260c59
pickle: Filter out unreachable SyntaxTrees
fischeti Feb 16, 2026
08e1913
bender-slang: Use typed errors with `thiserror`
fischeti Feb 16, 2026
b2a7acd
bender-slang: Unwrap instead of expect
fischeti Feb 16, 2026
5a4e98c
bender-slang: Add documentation
fischeti Feb 16, 2026
732ab9c
pickle: Actually include additional sourcefiles
fischeti Feb 16, 2026
2ad5ca5
bender-slang: Fix windows build
fischeti Feb 16, 2026
f295d10
bender-slang: Clippy fixes and clean up
fischeti Feb 17, 2026
7f52153
bender-slang(lib): Refactor to respect lifetime of C++ objects
fischeti Feb 18, 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
6 changes: 6 additions & 0 deletions .cargo/config.toml.iis
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[target.x86_64-unknown-linux-gnu]
linker = "/usr/pack/gcc-14.2.0-af/bin/gcc"

[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.30.0 - 2026-02-12
### Added
Expand Down
125 changes: 124 additions & 1 deletion Cargo.lock

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

Loading