v1.6.0
Welcome to the v1.6.0 release of the Azure Quantum Development Kit!
The big feature in this release is the ability to compile Q# programs to QIR that require "Adaptive Profile" capabilities. This enables programs to take advantage of the latest capabilities of quantum hardware, such as the ability to perform mid-circuit measurement of qubits, branch based on the results, and perform some classical computations at runtime. For more details, see https://aka.ms/qdk.qir.
We've added or updated a number of samples that can leverage Adaptive Profile capabilities, such as the Three Qubit Repetition Code and the Iterative Phase Estimation notebook. Please do try it out and give us your feedback!
As part of the above work, the previous code generation approach was replaced, even in the non-Adaptive ("base profile") case. Please log an issue if you see any unexpected change in behavior.
Other notable new features include Q# linting support in Jupyter Notebooks, CodeActions in VS Code to fix certain Q# errors, Q# library documentation inside VS Code, and more!
Impactful changes and fixes
- Add linting support to notebooks (Closes #1277) by @orpuente-MS in #1313
- Use new QIR gen API for Base Profile by @idavis in #1400
- Allow generating circuits for operations despite no entrypoint error by @minestarks in #1432
- Fix lint message formatting by @orpuente-MS in #1444
- Change the default level of the DivisionByZero lint to "error" by @orpuente-MS in #1445
- Adding Adaptive RI profile by @idavis in #1451
- Handle impossible factories in RE API by @msoeken in #1463
- Fix global phase for
PauliI
rotation andDumpRegister
by @swernli in #1461 - Documentation in the VSCode - core, std, and current project by @DmitryVasilevsky in #1466
- Three qubit repetition code sample works in Adaptive Profile by @DmitryVasilevsky in #1534
- GHZ and CAT samples work in Adaptive and Base Profiles by @DmitryVasilevsky in #1532
- Add messages to samples in /samples/language by @goshua13 in #1509
- Make
SpreadZ
utility iterative instead of recursive by @swernli in #1545 - Support target name in Python, remove Adaptive warnings by @swernli in #1549
- Avoid panic from
DumpRegister
in circuit display by @swernli in #1554 - Respect configured target profile for histogram in VS Code by @swernli in #1565
- Update to Rust 1.78 by @orpuente-MS in #1570
- Respect target setting for "Estimate" command by @swernli in #1576
- Add support for CodeActions in the Language Service by @orpuente-MS in #1495
- Read correct field in QEC scheme by @msoeken in #1602
- Fix panic when updating array with dynamic value by @swernli in #1606
- Added dot product via iterative phase estimation sample by @DmitryVasilevsky in #1562
- Reset zoom level when circuit window is resized by @minestarks in #1592
- Fix normalization math in
DumpRegister
by @swernli in #1608 - Adaptive quantum computing notebook samples by @cesarzc in #1614
New Contributors
- @Piwakk made their first contribution in #1440
- @goshua13 made their first contribution in #1447
- @moumita-halder made their first contribution in #1489
- @devikamehra made their first contribution in #1468
- @viktorveis made their first contribution in #1568
- @JPark1023 made their first contribution in #1518
- @SoniaLopezBravo made their first contribution in #1512
Full Changelog: v1.4.0...v1.6.0