Skip to content
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

feat: Bytes literal in hugr-model. #1845

Merged
merged 1 commit into from
Jan 13, 2025
Merged

feat: Bytes literal in hugr-model. #1845

merged 1 commit into from
Jan 13, 2025

Conversation

zrho
Copy link
Contributor

@zrho zrho commented Jan 8, 2025

Adds a term for byte literals to hugr-model.

In the text format, byte literals are represented as base64 encoded strings.

Closes #1545.

@zrho zrho force-pushed the zrho/model-bytes branch from 4b31d2b to 70cf77b Compare January 8, 2025 15:47
@hugrbot
Copy link
Collaborator

hugrbot commented Jan 8, 2025

This PR contains breaking changes to the public Rust API.
Please deprecate the old API instead (if possible), or mark the PR with a ! to indicate a breaking change.

cargo-semver-checks summary

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/enum_variant_added.ron

Failed in:
variant Term:Bytes in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-model/src/v0/mod.rs:691
variant Term:BytesType in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-model/src/v0/mod.rs:697

Copy link

codecov bot commented Jan 8, 2025

Codecov Report

Attention: Patch coverage is 81.08108% with 7 lines in your changes missing coverage. Please review.

Project coverage is 86.55%. Comparing base (774a13e) to head (6972f60).
Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
hugr-core/src/import.rs 0.00% 3 Missing ⚠️
hugr-model/src/v0/text/parse.rs 70.00% 1 Missing and 2 partials ⚠️
hugr-model/src/v0/binary/read.rs 66.66% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1845      +/-   ##
==========================================
- Coverage   86.55%   86.55%   -0.01%     
==========================================
  Files         194      194              
  Lines       35156    35193      +37     
  Branches    31969    32006      +37     
==========================================
+ Hits        30430    30462      +32     
- Misses       2968     2970       +2     
- Partials     1758     1761       +3     
Flag Coverage Δ
python 92.31% <ø> (ø)
rust 85.98% <81.08%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@zrho zrho force-pushed the zrho/model-bytes branch from 70cf77b to 6972f60 Compare January 10, 2025 13:06
@zrho zrho marked this pull request as ready for review January 10, 2025 13:13
@zrho zrho requested a review from a team as a code owner January 10, 2025 13:13
@zrho zrho requested a review from tatiana-s January 10, 2025 13:13
Copy link
Contributor

@tatiana-s tatiana-s left a comment

Choose a reason for hiding this comment

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

👍

@zrho zrho added this pull request to the merge queue Jan 13, 2025
Merged via the queue into main with commit c72a359 Jan 13, 2025
21 of 23 checks passed
@zrho zrho deleted the zrho/model-bytes branch January 13, 2025 11:19
This was referenced Jan 10, 2025
github-merge-queue bot pushed a commit that referenced this pull request Jan 20, 2025
## 🤖 New release
* `hugr`: 0.14.1 -> 0.14.2 (✓ API compatible changes)
* `hugr-core`: 0.14.1 -> 0.14.2 (✓ API compatible changes)
* `hugr-model`: 0.16.0 -> 0.17.0 (⚠️ API breaking changes)
* `hugr-llvm`: 0.14.1 -> 0.14.2 (✓ API compatible changes)
* `hugr-passes`: 0.14.1 -> 0.14.2 (✓ API compatible changes)
* `hugr-cli`: 0.14.1 -> 0.14.2 (✓ API compatible changes)

### ⚠️ `hugr-model` breaking changes

```
--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/enum_variant_added.ron

Failed in:
  variant Term:Const in /tmp/.tmpszSQ4r/hugr/hugr-model/src/v0/mod.rs:591
  variant Term:ConstFunc in /tmp/.tmpszSQ4r/hugr/hugr-model/src/v0/mod.rs:697
  variant Term:ConstAdt in /tmp/.tmpszSQ4r/hugr/hugr-model/src/v0/mod.rs:703
  variant Term:Bytes in /tmp/.tmpszSQ4r/hugr/hugr-model/src/v0/mod.rs:711
  variant Term:BytesType in /tmp/.tmpszSQ4r/hugr/hugr-model/src/v0/mod.rs:717
  variant Term:Meta in /tmp/.tmpszSQ4r/hugr/hugr-model/src/v0/mod.rs:720
  variant Operation:Const in /tmp/.tmpszSQ4r/hugr/hugr-model/src/v0/mod.rs:409

--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/enum_variant_missing.ron

Failed in:
  variant Term::Quote, previously in file /tmp/.tmp8fke0a/hugr-model/src/v0/mod.rs:565

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/struct_missing.ron

Failed in:
  struct hugr_model::v0::MetaItem, previously in file /tmp/.tmp8fke0a/hugr-model/src/v0/mod.rs:500
```

<details><summary><i><b>Changelog</b></i></summary><p>

## `hugr`
<blockquote>

##
[0.14.2](hugr-v0.14.1...hugr-v0.14.2)
- 2025-01-20

### Bug Fixes

- Three bugfixes in model import and export. (#1844)

### Documentation

- Fix typo in `DataflowParent` doc (#1865)

### New Features

- Add CallGraph struct, and dead-function-removal pass (#1796)
- `Value::some`, `::none`, and `SumType::new_option` helpers (#1828)
- Constant values in `hugr-model` (#1838)
- *(hugr-llvm)* Emit ipow (#1839)
- Bytes literal in hugr-model. (#1845)
- Improved representation for metadata in `hugr-model` (#1849)

### Testing

- Add tests for constant value deserialization (#1822)
</blockquote>

## `hugr-core`
<blockquote>

##
[0.14.2](hugr-core-v0.14.1...hugr-core-v0.14.2)
- 2025-01-20

### Bug Fixes

- Three bugfixes in model import and export. (#1844)

### Documentation

- Fix typo in `DataflowParent` doc (#1865)

### New Features

- `Value::some`, `::none`, and `SumType::new_option` helpers (#1828)
- Constant values in `hugr-model` (#1838)
- *(hugr-llvm)* Emit ipow (#1839)
- Bytes literal in hugr-model. (#1845)
- Improved representation for metadata in `hugr-model` (#1849)

### Testing

- Add tests for constant value deserialization (#1822)
</blockquote>

## `hugr-model`
<blockquote>

##
[0.17.0](hugr-model-v0.16.0...hugr-model-v0.17.0)
- 2025-01-20

### Bug Fixes

- Three bugfixes in model import and export. (#1844)

### New Features

- Constant values in `hugr-model` (#1838)
- Bytes literal in hugr-model. (#1845)
- Improved representation for metadata in `hugr-model` (#1849)
</blockquote>

## `hugr-llvm`
<blockquote>

##
[0.14.2](hugr-llvm-v0.14.1...hugr-llvm-v0.14.2)
- 2025-01-20

### New Features

- *(hugr-llvm)* Emit more int ops (#1835)
- Constant values in `hugr-model` (#1838)
- *(hugr-llvm)* Emit ipow (#1839)

### Refactor

- *(hugr-llvm)* [**breaking**] Optimise the llvm types used to represent
hugr sums. (#1855)

### Testing

- Fix failing inot test (#1841)
</blockquote>

## `hugr-passes`
<blockquote>

##
[0.14.2](hugr-passes-v0.14.1...hugr-passes-v0.14.2)
- 2025-01-20

### New Features

- Add CallGraph struct, and dead-function-removal pass (#1796)
</blockquote>

## `hugr-cli`
<blockquote>

##
[0.14.1](hugr-cli-v0.14.0...hugr-cli-v0.14.1)
- 2024-12-18

### New Features

- Print `hugr-cli`'s correct version when using '--version' (#1790)
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: Agustín Borgna <agustin.borgna@quantinuum.com>
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.

model: Add terms for bytes
3 participants