Skip to content

Update to newest version of jeff#14

Merged
burgholzer merged 10 commits into
mainfrom
update-jeff
Apr 14, 2026
Merged

Update to newest version of jeff#14
burgholzer merged 10 commits into
mainfrom
update-jeff

Conversation

@denialhaag
Copy link
Copy Markdown
Collaborator

@denialhaag denialhaag commented Apr 13, 2026

This PR updates to the newest version of jeff. In particular, the changes introduced by unitaryfoundation/jeff#50 and unitaryfoundation/jeff#52 are implemented.

@denialhaag denialhaag self-assigned this Apr 13, 2026
@denialhaag denialhaag changed the title Update jeff to most recent version Update jeff to newest version Apr 14, 2026
@denialhaag denialhaag marked this pull request as ready for review April 14, 2026 12:00
@denialhaag denialhaag requested review from burgholzer and dime10 April 14, 2026 12:00
@denialhaag
Copy link
Copy Markdown
Collaborator Author

The new Qureg type is also successfully tested in munich-quantum-toolkit/core#1637.

Copy link
Copy Markdown
Collaborator

@burgholzer burgholzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @denialhaag! This is great!
I just have a bunch of mostly stupid questions here; excuse the ignorance please 😌
My only real concern is that we probably should not completely abandon dynamic qubit registers. But maybe even that is fine.

Comment thread cmake/ExternalDependencies.cmake Outdated
Comment thread include/jeff/Conversion/JeffToNative/JeffToNative.td
Comment thread include/jeff/IR/JeffDialect.td Outdated
Comment thread include/jeff/IR/JeffOps.td Outdated
Comment thread lib/Conversion/JeffToNative/JeffToNative.cpp
Comment thread unittests/Conversion/test_native_round_trip.cpp
Comment thread unittests/Conversion/test_native_round_trip.cpp
@denialhaag denialhaag changed the title Update jeff to newest version Update to newest version of jeff Apr 14, 2026
@denialhaag denialhaag requested a review from burgholzer April 14, 2026 13:34
Copy link
Copy Markdown
Collaborator

@burgholzer burgholzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great now!
One question that came up in my mind: Should we also start releasing versioned tags for jeff-mlir?
Does it make sense to track the version of jeff or is there enough separate development here that a separate versioning scheme is warranted here? I am leaning towards the latter given how there is also quite a bit of conversion code from jeff to standard MLIR, which might need tweaks and patch releases.

@denialhaag
Copy link
Copy Markdown
Collaborator Author

One question that came up in my mind: Should we also start releasing versioned tags for jeff-mlir? Does it make sense to track the version of jeff or is there enough separate development here that a separate versioning scheme is warranted here? I am leaning towards the latter given how there is also quite a bit of conversion code from jeff to standard MLIR, which might need tweaks and patch releases.

I agree that it makes sense to start releasing tags and do so independently of jeff. We could tag this as v0.1.0 and then go from there. 🤔

@burgholzer
Copy link
Copy Markdown
Collaborator

I agree that it makes sense to start releasing tags and do so independently of jeff. We could tag this as v0.1.0 and then go from there. 🤔

That sounds good to me!
Are there any things that we still need to adjust for a 0.1.0 release?
Do we want a changelog here as well?
Do we go with a similar tagging scheme as in jeff? (jeff-mlir-v0.1.0 or just v0.1.0)

@denialhaag
Copy link
Copy Markdown
Collaborator Author

Are there any things that we still need to adjust for a 0.1.0 release?

I think the current state is good for a first version. 🤔

Do we want a changelog here as well?

I would be in favor of that! I can set this up in an immediate follow-up PR.

Do we go with a similar tagging scheme as in jeff? (jeff-mlir-v0.1.0 or just v0.1.0)

I don't have a strong opinion here. Maybe @dime10 does? 🤔

@burgholzer
Copy link
Copy Markdown
Collaborator

👍🏼
Let's just go with v0.1.0 here. I think the <prefix>-version format is only really beneficial whenever a repository releases multiple subcomponents that might be versioned differently. This should not be the case here.

I'll go ahead and merge this for now.

@burgholzer burgholzer merged commit edaeeb6 into main Apr 14, 2026
6 checks passed
@dime10
Copy link
Copy Markdown
Collaborator

dime10 commented Apr 14, 2026

I don't have a strong opinion here. Maybe @dime10 does? 🤔

All good, thanks for updating these 🙏

This PR does make me wonder whether we want to check in all those test cases if they are auto-generated anyway, but I suppose checking them is reliable no matter what.

@denialhaag
Copy link
Copy Markdown
Collaborator Author

This PR does make me wonder whether we want to check in all those test cases if they are auto-generated anyway, but I suppose checking them is reliable no matter what.

That's a good point! To make this feasible, we should probably release a first version of jeff-format on PyPI. The setup of the Python environment could be a bit ugly otherwise. 🤔

@burgholzer
Copy link
Copy Markdown
Collaborator

This PR does make me wonder whether we want to check in all those test cases if they are auto-generated anyway, but I suppose checking them is reliable no matter what.

That's a good point! To make this feasible, we should probably release a first version of jeff-format on PyPI. The setup of the Python environment could be a bit ugly otherwise. 🤔

Yeah, especially given how one can't inspect them as part of a diff on GitHub anyway.
I had thought that we already had a release pipeline for the Python package of jeff, but that was apparently just in my head. Would definitely make sense to create a release/CD pipeline for that and publish the respective package.

@denialhaag
Copy link
Copy Markdown
Collaborator Author

This PR does make me wonder whether we want to check in all those test cases if they are auto-generated anyway, but I suppose checking them is reliable no matter what.

That's a good point! To make this feasible, we should probably release a first version of jeff-format on PyPI. The setup of the Python environment could be a bit ugly otherwise. 🤔

Yeah, especially given how one can't inspect them as part of a diff on GitHub anyway. I had thought that we already had a release pipeline for the Python package of jeff, but that was apparently just in my head. Would definitely make sense to create a release/CD pipeline for that and publish the respective package.

There's something else I've been ignoring so far: For some reason, the output of jeff-format is not perfectly reproducible. In particular, all test cases with two functions can change when generate_test_cases.py is rerun. If that happens, the created jeff module is faulty. Because the order of the functions has changed, the main function is suddenly trying to call itself. I can create a minimal example tomorrow and create an issue in the jeff repository so that we can find a solution to this.

denialhaag added a commit to munich-quantum-toolkit/core that referenced this pull request Apr 15, 2026
## Description

This PR re-enables the `jeff` tests by updating to the newest version of
`jeff-mlir`.

This PR should not be merged before
PennyLaneAI/jeff-mlir#14 has been merged.

Fixes #1618

## Checklist

- [x] The pull request only contains commits that are focused and
relevant to this change.
- [x] ~~I have added appropriate tests that cover the new/changed
functionality.~~
- [x] ~~I have updated the documentation to reflect these changes.~~
- [x] I have added entries to the changelog for any noteworthy
additions, changes, fixes, or removals.
- [x] ~~I have added migration instructions to the upgrade guide (if
needed).~~
- [x] The changes follow the project's style guidelines and introduce no
new warnings.
- [x] The changes are fully tested and pass the CI checks.
- [x] I have reviewed my own code changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants