Skip to content

feat: Add PersistentHugr #2080

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 44 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
7ad09f5
feat!: Split Rewrite trait into VerifyPatch and ApplyPatch
lmondada Apr 8, 2025
eda21fa
Merge branch 'main' into feat/rewrite-trait
lmondada Apr 10, 2025
4db3f5d
ci: Run ci checks on PRs to any branch
aborgna-q Apr 15, 2025
209b2ea
Merge branch 'main' into release-rs-v0.16.0
aborgna-q Apr 15, 2025
81447ec
feat!: Allow generic Nodes in HugrMut insert operations (#2075)
aborgna-q Apr 15, 2025
ef1cba0
fix!: Don't expose `HugrMutInternals` (#2071)
aborgna-q Apr 15, 2025
fac6c8b
feat!: Mark all Error enums as non_exhaustive (#2056)
aborgna-q Apr 15, 2025
baaca02
feat!: Handle CallIndirect in Dataflow Analysis (#2059)
acl-cqc Apr 16, 2025
195f30c
Merge branch 'main' into release-rs-v0.16.0
aborgna-q Apr 16, 2025
553350c
feat!: Expand SimpleReplacement::ApplyResult type
lmondada Apr 15, 2025
6347756
feat: Make NodeHandle generic (#2092)
aborgna-q Apr 16, 2025
5b43c0d
feat!: remove ExtensionValue (#2093)
ss2165 Apr 17, 2025
c480927
feat: Add PersistentHugr
lmondada Apr 15, 2025
89c2680
feat!: ComposablePass trait allowing sequencing and validation (#1895)
acl-cqc Apr 22, 2025
d8a5d67
feat!: ReplaceTypes: allow lowering ops into a Call to a function alr…
acl-cqc Apr 23, 2025
b209709
feat!: Hugrmut on generic nodes (#2111)
aborgna-q Apr 23, 2025
a1cd051
Merge branch 'main' into release-rs-v0.16.0
aborgna-q Apr 24, 2025
d91dbe6
feat!: Removed model_unstable feature flag (#2120)
aborgna-q Apr 28, 2025
6ca1258
feat!: Remove `RootTagged` from the hugr view trait hierarchy (#2122)
aborgna-q Apr 28, 2025
db4b39f
feat!: Split Rewrite trait into VerifyPatch and ApplyPatch (#2070)
lmondada Apr 29, 2025
9dd32a2
Merge remote-tracking branch 'origin/release-rs-v0.16.0' into feat/pe…
lmondada Apr 29, 2025
c15d8ac
feat!: Bump MSRV to 1.85 (#2136)
aborgna-q Apr 29, 2025
f0738b1
feat!: Cleanup core trait definitions (#2126)
aborgna-q Apr 29, 2025
154cd00
rename Patch to Commit
lmondada Apr 29, 2025
a5eb655
Merge branch 'release-rs-v0.16.0' into feat/persistenthugr
lmondada Apr 29, 2025
aa7d5cb
remove unwanted changes
lmondada Apr 29, 2025
4b95a1c
cargo clippy
lmondada Apr 29, 2025
fd7662d
fix docs link
lmondada Apr 29, 2025
1369d79
chore: Remove stray rewrite.rs file (#2142)
lmondada Apr 29, 2025
6f7775b
chore(hugr-llvm): upgrade to inkwell 0.6.0 (#2128)
qartik Apr 30, 2025
a918853
feat!: Removed runtime extension sets. (#2145)
zrho May 1, 2025
40dcd99
address comments
lmondada May 3, 2025
197a060
tests: refactor out a common state space
lmondada May 3, 2025
c663830
revert to mermaid string comparisons :(
lmondada May 3, 2025
ac959c0
wip: add try_add_replacement test
lmondada May 3, 2025
01ac4f0
Replace deleted_nodes with invalidation_set
lmondada May 4, 2025
19098e5
feat: Accept outgoing ports in SimpleReplacement nu_out
lmondada May 6, 2025
8ee0ab7
Merge branch 'luca/out-boundary-map' into feat/persistenthugr
lmondada May 6, 2025
14f969a
switched to outgoing ports
lmondada May 4, 2025
20081dd
feat!: Accept outgoing ports in SimpleReplacement nu_out (#2151)
lmondada May 6, 2025
731081f
feat!: Improved array lowering (#2109)
mark-koch May 6, 2025
9a1b615
feat: export mangle name function (#2152)
ss2165 May 6, 2025
6bcec20
Merge branch 'release-rs-v0.16.0' into feat/persistenthugr
lmondada May 6, 2025
a7729f3
remove stray print
lmondada May 6, 2025
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
53 changes: 25 additions & 28 deletions .github/workflows/ci-rs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- main
pull_request:
branches:
- '**'
- "**"
merge_group:
types: [checks_requested]
workflow_dispatch: {}
Expand All @@ -25,7 +25,6 @@ env:
LLVM_VERSION: "14.0"
LLVM_FEATURE_NAME: "14-0"


jobs:
# Check if changes were made to the relevant files.
# Always returns true if running on the default branch, to ensure all changes are thoroughly checked.
Expand All @@ -43,25 +42,25 @@ jobs:
model: ${{ steps.filter.outputs.model == 'true' || steps.override.outputs.out == 'true' }}
llvm: ${{ steps.filter.outputs.llvm == 'true' || steps.override.outputs.out == 'true' }}
steps:
- uses: actions/checkout@v4
- name: Override label
id: override
run: |
echo "Label contains run-ci-checks: $OVERRIDE_LABEL"
if [ "$OVERRIDE_LABEL" == "true" ]; then
echo "Overriding due to label 'run-ci-checks'"
echo "out=true" >> $GITHUB_OUTPUT
elif [ "$DEFAULT_BRANCH" == "true" ]; then
echo "Overriding due to running on the default branch"
echo "out=true" >> $GITHUB_OUTPUT
fi
env:
OVERRIDE_LABEL: ${{ github.event_name == 'pull_request' && contains( github.event.pull_request.labels.*.name, 'run-ci-checks') }}
DEFAULT_BRANCH: ${{ github.ref_name == github.event.repository.default_branch }}
- uses: dorny/paths-filter@v3
id: filter
with:
filters: .github/change-filters.yml
- uses: actions/checkout@v4
- name: Override label
id: override
run: |
echo "Label contains run-ci-checks: $OVERRIDE_LABEL"
if [ "$OVERRIDE_LABEL" == "true" ]; then
echo "Overriding due to label 'run-ci-checks'"
echo "out=true" >> $GITHUB_OUTPUT
elif [ "$DEFAULT_BRANCH" == "true" ]; then
echo "Overriding due to running on the default branch"
echo "out=true" >> $GITHUB_OUTPUT
fi
env:
OVERRIDE_LABEL: ${{ github.event_name == 'pull_request' && contains( github.event.pull_request.labels.*.name, 'run-ci-checks') }}
DEFAULT_BRANCH: ${{ github.ref_name == github.event.repository.default_branch }}
- uses: dorny/paths-filter@v3
id: filter
with:
filters: .github/change-filters.yml

check:
needs: changes
Expand Down Expand Up @@ -109,7 +108,7 @@ jobs:
- name: Override criterion with the CodSpeed harness
run: cargo add --dev codspeed-criterion-compat --rename criterion --package hugr
- name: Build benchmarks
run: cargo codspeed build --profile bench --features extension_inference,declarative,model_unstable,llvm,llvm-test
run: cargo codspeed build --profile bench --features declarative,llvm,llvm-test
- name: Run benchmarks
uses: CodSpeedHQ/action@v3
with:
Expand Down Expand Up @@ -234,7 +233,7 @@ jobs:
id: toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.75"
toolchain: "1.85"
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@master
with:
Expand All @@ -253,12 +252,10 @@ jobs:
cargo binstall cargo-minimal-versions --force
- name: Pin transitive dependencies not compatible with our MSRV
# Add new dependencies as needed if the check fails due to
# "package `XXX` cannot be built because it requires rustc YYY or newer, while the currently active rustc version is 1.75.0"
# "package `XXX` cannot be built because it requires rustc YYY or newer, while the currently active rustc version is 1.85.0"
run: |
rm Cargo.lock
cargo add -p hugr [email protected]
cargo add -p hugr [email protected]
cargo add -p hugr [email protected]
# rm Cargo.lock
# cargo add -p hugr [email protected]
- name: Build with no features
run: cargo minimal-versions --direct test --verbose --no-default-features --no-run
- name: Tests with no features
Expand Down
7 changes: 2 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ repos:
# built into a binary build (without using `maturin`)
#
# This feature list should be kept in sync with the `hugr-py/pyproject.toml`
entry: cargo test --workspace --exclude 'hugr-py' --features 'hugr/extension_inference hugr/declarative hugr/model_unstable hugr/llvm hugr/llvm-test hugr/zstd'
entry: cargo test --workspace --exclude 'hugr-py' --features 'hugr/declarative hugr/llvm hugr/llvm-test hugr/zstd'
language: system
files: \.rs$
pass_filenames: false
Expand All @@ -100,10 +100,7 @@ repos:
- id: py-test
name: pytest
description: Run python tests
# We need to rebuild `hugr-cli` without the `extension_inference` feature
# to avoid test errors.
# TODO: Remove this once the issue is fixed.
entry: sh -c "cargo build -p hugr-cli && uv run pytest"
entry: sh -c "uv run pytest"
language: system
files: \.py$
pass_filenames: false
Loading
Loading