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

WIP: [Adding Specification for the Adaptive Profile] #35

Draft
wants to merge 54 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
42382a4
Adding current spec of the adaptive profile
peter-campora Jun 5, 2023
1a39d74
small tweak to writing about measurement function
peter-campora Jun 22, 2023
4f76d73
Adding sign extension in terms of supported instructions
peter-campora Jun 22, 2023
f8f1fa0
Quick cleanup and adding some open questions around measurement repre…
peter-campora Jun 22, 2023
38bfa4f
Starting to add a bit of writing about the opaquememory and opaque po…
peter-campora Jul 12, 2023
8046b7d
Adaptive profile spec changes
peter-campora Jul 20, 2023
63dda76
Cleaning up error message bullets and adding some more writing about …
peter-campora Aug 9, 2023
7dd5d24
Some more cleanup and consistency of bullet reference fixes
peter-campora Aug 9, 2023
83bf592
Fleshing out a few points, especially related to integer support base…
peter-campora Aug 31, 2023
eb38263
Adding page to show hardware provider table support for different opt…
peter-campora Oct 11, 2023
d610692
Various changes based on pull request feedback
peter-campora Oct 11, 2023
eeebb26
Cleaning up writing about the switch instruction, non-constant gate a…
peter-campora Oct 31, 2023
cfcb1b7
Fix issues reported my markdownlint, typos
qartik Nov 1, 2023
0267af8
Fix remaining markdownlint issues, reformat tables
qartik Nov 1, 2023
ba6ca84
Merge pull request #1 from qartik/adaptive-profile
peter-campora Nov 8, 2023
f62877f
generalizing the hardware table for initial draft
peter-campora Nov 8, 2023
5b8cafa
Small typo X=>x in hardware table
peter-campora Nov 8, 2023
6003aa0
Cleaning up the classical data type writing. Additionally, cleaning u…
peter-campora Dec 7, 2023
7538079
Add markdownlint config and resolve existing issues
qartik Mar 5, 2024
8238585
fix: copyediting and markdownlint compliance
qartik Mar 5, 2024
e301126
Merge pull request #2 from qartik/adaptive-profile-copyediting
peter-campora Mar 6, 2024
0b1b1e2
Various writing cleanup fixes and also making sure bullet references …
peter-campora Mar 6, 2024
93597a3
fixing module flags set in example
peter-campora Mar 6, 2024
e6ce6d5
small change to keep swap example consistent
peter-campora Mar 27, 2024
ff5e775
Update specification/under_development/profiles/Adaptive_Profile.md
peter-campora Mar 27, 2024
6dc2130
Update specification/under_development/profiles/Adaptive_Profile.md
peter-campora Jun 4, 2024
33da252
Update specification/under_development/profiles/Adaptive_Profile.md
peter-campora Jun 4, 2024
2499339
Update specification/under_development/profiles/Adaptive_Profile.md
peter-campora Jun 4, 2024
0808c41
Update specification/under_development/profiles/Adaptive_Profile.md
peter-campora Jun 4, 2024
a83fd5e
Update specification/under_development/profiles/Adaptive_Profile.md
peter-campora Jun 4, 2024
5c814eb
Initial update based on Bettina's feedback
peter-campora Jun 5, 2024
ee5a3ec
Incorporating feedback based on PR comments
peter-campora Jun 5, 2024
8262bbd
additional tweak to add writing trying to define the minimum bar for …
peter-campora Jun 5, 2024
11db5f7
adding writing about multiple return points being used
peter-campora Jun 5, 2024
0891f36
editing pass #1
Jul 31, 2024
aacb629
forgot to clean up some of the references to module flags
Jul 31, 2024
e7ad9f2
removing use of global constants and bool_record
Jul 31, 2024
81e989e
precision as argument in output recording
Jul 31, 2024
703b8ef
fixedpoint output recording function
Jul 31, 2024
9d26a15
editing pass for classical computations and IR defined functions
Aug 2, 2024
8a461ba
Merge pull request #3 from bettinaheim/adaptive-profile
peter-campora Aug 2, 2024
d78b408
updating providers.md with up to date module flag functions
peter-campora Aug 2, 2024
8ffb3f9
Adding truncation for integers and truncation and extension for floats
peter-campora Aug 2, 2024
c3b03f6
Removing providers table and mention of this table in the spec
peter-campora Aug 2, 2024
5c3e3c3
cleaned up the capabilities sections, minus the backwards branching
bettinaheim Aug 29, 2024
3f82b6f
cleaned up section on program structure and entry point definition
bettinaheim Aug 30, 2024
bd5e461
cleaned up the section on classical instructions
bettinaheim Aug 30, 2024
a247eed
runtime functions
bettinaheim Aug 30, 2024
a95da62
editing done up to the module flags
bettinaheim Aug 30, 2024
d1a7fdc
missing table entry
bettinaheim Aug 30, 2024
917eb8b
updating the loop section to distinguish two kinds of loops
bettinaheim Sep 13, 2024
c06b730
updating the module flag
bettinaheim Sep 13, 2024
f6384f9
Merge pull request #4 from bettinaheim/adaptive-profile
peter-campora Sep 13, 2024
5149679
fixing some module flags examples, making sure the multiple return po…
peter-campora Sep 13, 2024
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
4 changes: 2 additions & 2 deletions .github/workflows/cla_assistant.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
steps:
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the Contributor License Agreement and I hereby accept the Terms.') || github.event_name == 'pull_request_target'
uses: cla-assistant/github-action@v2.1.3-beta
uses: cla-assistant/github-action@v2.3.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_ACCESS_TOKEN : ${{ secrets.CLA_BOT_ACCESS_TOKEN }}
Expand All @@ -26,4 +26,4 @@ jobs:
custom-pr-sign-comment: 'I have read the Contributor License Agreement and I hereby accept the Terms.'
allowlist: user1,bot*
# edit the path below (if needed) to point to the document containing the CLA that a contributor agrees to
path-to-document: 'https://github.com/qir-alliance/qir-spec/blob/main/Contributor_License_Agreement.md'
path-to-document: 'https://github.com/qir-alliance/qir-spec/blob/main/Contributor_License_Agreement.md'
4 changes: 2 additions & 2 deletions .github/workflows/link_and_spell_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
name: "Check spelling, linting and links"
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- run: |
wget https://github.com/qir-alliance/.github/archive/refs/heads/main.zip -O clone.zip &&
unzip clone.zip && mv .github-main out && rm clone.zip &&
Expand All @@ -38,7 +38,7 @@ jobs:
if: ${{ success() || failure() }}
- name: "Check spelling in changed files"
# cspell:words streetsidesoftware
uses: streetsidesoftware/cspell-action@v1.2.4
uses: streetsidesoftware/cspell-action@v6
with:
inline: warning
# Only warn on spelling errors, since there's likely a lot of false
Expand Down
25 changes: 25 additions & 0 deletions .markdownlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Reference: https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml

# MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md013.md
MD013:
# Number of characters
line_length: 80
# Number of characters for headings
heading_line_length: 80
# Number of characters for code blocks
code_block_line_length: 180
# Include code blocks
code_blocks: true
# Include tables
tables: false
# Include headings
headings: true
# Strict length checking
strict: false
# Stern length checking
stern: false

# MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md033.md
MD033:
# Allowed elements
allowed_elements: ["br"]
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ documentation to facilitate working with QIR.

### Asking and Answering Questions

Have a question? This repository is great places to ask questions about QIR and
the available tools to work with it. Your question will serve as resource to
Have a question? This repository is a great place to ask questions about QIR and
the available tools to work with it. Your question will serve as a resource to
others searching for help. Please file an issue to ask your question
[here](https://github.com/qir-alliance/qir-spec/issues/new).

Expand Down Expand Up @@ -51,7 +51,7 @@ have any questions or would like to revoke your consent, please contact
[qiralliance@mail.com](mailto:qiralliance@mail.com).

For more information about the development process for specifications under the
QIR Alliance, please see the the governance policy available
QIR Alliance, please see the governance policy available
[here](https://github.com/qir-alliance/.github/blob/main/Governance.md).

### Contributing an Implementation
Expand All @@ -72,4 +72,4 @@ possible. Thank you for taking the time to contribute.
This project has adopted the community specification [Code of
Conduct](https://github.com/qir-alliance/.github/blob/main/Code_of_Conduct.md#contributor-covenant-code-of-conduct).
Please contact [qiralliance@mail.com](mailto:qiralliance@mail.com) for Code of
Conduct issues or inquires.
Conduct issues or inquiries.
2 changes: 1 addition & 1 deletion Resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ about:
- [A quick introduction to
LLVM](https://hub.packtpub.com/introducing-llvm-intermediate-representation/)
- [Gitbook about LLVM-based
compilers](https://mapping-high-level-constructs-to-llvm-ir.readthedocs.io/en/latest/README.html)
compilers](https://mapping-high-level-constructs-to-llvm-ir.readthedocs.io/en/latest/)
- [Language reference manual](https://llvm.org/docs/LangRef.html)
- [Wikipedia entry](https://en.wikipedia.org/wiki/LLVM)
- [Original publication](https://llvm.org/pubs/2004-01-30-CGO-LLVM.pdf)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Back End Support for Adaptive Profile

The following table contains rows listing of each optional feature in the
adaptive profile via [module flags](../Adaptive_Profile.md#module-flags-metadata)
as described in the [program structure](../Adaptive_Profile.md#program-structure),
and columns with hardware providers using the adaptive profile to indicate
whether or not they support each feature via a ✓ or x.

| | Placeholder Backend 0 | Placeholder Backend 1 | Placeholder Backend 2 | Placeholder Backend 3 |
| :------------------------ | :-------------------- | :-------------------- | :-------------------- | :-------------------- |
| qubit_resetting | ✓ | ? | ? | ? |
| classical_ints | ✓ | ? | ? | ? |
| classical_floats | x | ? | ? | ? |
| classical_fixed_points | x | ? | ? | ? |
| user_functions | x | ? | ? | ? |
| dynamic_float_args | x | ? | ? | ? |
peter-campora marked this conversation as resolved.
Show resolved Hide resolved
| extern_functions | ✓ | ? | ? | ? |
peter-campora marked this conversation as resolved.
Show resolved Hide resolved
| backwards_branching | x | ? | ? | ? |
| multiple_target_branching | x | ? | ? | ? |
Loading
Loading