Skip to content

Releases: microsoft/qsharp

v1.8.0

21 Aug 21:02
89ba8c9
Compare
Choose a tag to compare

The 1.8.0 release of the QDK includes a number of improvements and fixes, with a focus on refining the project references and editor completions experience.

The full list of changes is below.

What's Changed

Full Changelog: v1.7.0...v1.8.0

v1.7.0

24 Jul 23:23
5763700
Compare
Choose a tag to compare

QDK 1.7.0 release notes

The team is very excited to ship this release. It has some of the most significant improvements to the Q# language in a long time.

Major language changes

External project references

The biggest feature in this release is the ability to reference other projects and consume their APIs. The projects can be in a separate local directory or published to GitHub. As part of this change, we also introduced import and export syntax, and generate an implicit namespace hierarchy based on file layout, removing the need for the namespace syntax.

For more details see the wiki page at https://github.com/microsoft/qsharp/wiki/Q%23-External-Dependencies-(Libraries). (The official documentation will be updated shortly with more details and examples).

New struct syntax

We're also introducing a new struct syntax, and long term see this as the replacement for the current UDT syntax. The custom types created by either are largely compatible, but the new syntax is simpler, cleaner, and similar to several popular languages. See more details at https://github.com/microsoft/qsharp/wiki/Q%23-Structs until the official docs are updated.

Optional EntryPoint

As well as removing the need to wrap code in a namespace, we're also removing the need to specify the EntryPoint attribute. If you have one callable called Main in your project, this will be the default entry point. (Note: Any specified @EntryPoint will still take precedence).

A new standard library namespace

We've also simplified the namespaces for our standard library. What was previously all under Microsoft.Quantum can now be accessed under the Std namespace. This reduces visual clutter and highlights what APIs are part of the "standard" library included with Q#.

Example

Taken together the above provides for a much cleaner language with a simple code sharing mechanism. For example, if your project references another project named Sparkle which exports an operation named Correct that takes a custom type Input with a Double and a Qubit, your entire Q# code to call this can be as simple as:

import Std.Diagnostics.DumpMachine;
import Sparkle.Input, Sparkle.Correct;

operation Main() : Unit {
    use q = Qubit[1];
    let x = new Input { A = 3.14, B = q[0] };
    
    Correct(x);

    DumpMachine();
    MResetZ(q[0]);
}

(Note these changes are additional capabilities. There are no breaking changes or requirements to change code to adopt this release).

Other updates and improvements

Many other changes have gone into this release. Some of the main ones include:

  • Unitary Hack contributions
    • Save RE widget to .png (#1604)
    • Lint rule: Use Functions (#1579)
    • Add doc for internal AND (#1580)
  • New DrawRandomBool API (#1645)
  • New DoubleAsStringWithPrecision API (#1664)
  • Fix display of CCX in a circuit (#1685)
  • Completion list improvements (#1682, #1715)
  • New samples (e.g. #1721)
  • Many more Katas additions and updates
  • Various bug fixes and perf improvements
  • Lots of engineering improvements to build times, testing, pipelines, etc.

New Contributors

Full Changelog: v1.6.0...v1.7.0

We hope you enjoy this release. Please log an issue if you need any assistance or to provide feedback. Thanks!

v1.6.0

06 Jun 16:58
1e123fa
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v1.4.0...v1.6.0

v1.4.0

23 Apr 21:00
f9046ca
Compare
Choose a tag to compare

Welcome to the v1.4.0 release of the Azure Quantum Development Kit. The main highlights of this release are:

Other notable fixes and improvements include:

And lots of Katas updates! Including:

  • Add state flip task to Single-Qubit Gates kata by @WWhitedogi in #1343
  • Add tasks 1.8, 1.9, 1.10 to Superposition Kata by @jkingdon-ms in #1346
  • Add sign flip, basis change, amplitude change tasks to Single-Qubit Gates kata by @WWhitedogi in #1352
  • Add global phase -1, relative phase i, and complex relative phase tasks to Single-Qubit Gates kata by @WWhitedogi in #1369
  • Add tasks 1.11, 1.12 to Superposition Kata by @jkingdon-ms in #1381
  • Add task 2.1 to Superposition kata by @tcNickolas in #1395
  • Update READMEs to add details on building playground and katas by @Manvi-Agrawal in #1402
  • Add tasks on Bell states changes to Multi-Qubit States kata by @WWhitedogi in #1385
  • Add CZ section and CNOT and CZ tasks to Multi-Qubit Gates kata by @WWhitedogi in #1389
  • Adds task 1.13 to Superposition Kata by @frtibble in #1382

Full Changelog: v1.3.1...v1.4.0

v1.3.1

22 Mar 19:10
cfc3bc9
Compare
Choose a tag to compare

Includes a fix for an issue rendering DumpMachine calls in VS Code.

See v1.3.0...v1.3.1 for the change.

v1.3.0

21 Mar 16:59
072d85d
Compare
Choose a tag to compare

Welcome to the v1.3.0 release of the Azure Quantum Development Kit. The main highlights of this release are:

  • Initial support for linting (#1140)
  • Document and selection formatting (#1172 and #1275)
  • Authenticate to Azure Quantum workspaces via a connection string (#1238)
  • Add a 'Create Q# project' command (#1286)
  • Significant performance improvements from using mimalloc (#1249)
  • More significant performance improvements via CFG usage (#1261)
  • Add Microsoft.Quantum.Measurement to the prelude (#1233)
  • Changes to the data returned by dump_machine and dump_operation (#1227)

And more! See v1.2.0...v1.3.0 for the full list of changes.

v1.2.0

29 Feb 00:49
5dbef01
Compare
Choose a tag to compare

Welcome to the v1.2.0 release of the Azure Quantum Development Kit. The main highlights of this release are:

  • Added the DumpRegister API (#1173)
  • Added code distance to Resource Estimation tooltips (#1205)
  • Use optimized AND for decomposition (#1202)
  • Remove the "Message:" prefix from Message output by @colommar (#1175)
  • Generate Q# API docs for learn.microsoft.com (#1150)
  • Show codelens on entry point in VS Code to Run, Debug, Histogram, and Estimate (#1142)
  • Support generating QIR with custom intrinsics (#1141)
  • Fix hover info for lambdas passed to generic functions (#1161)
  • Fix panic on in-place update optimization (#1149)
  • Add boolean Xor API (#1100)

And much more! See v1.1.3...v1.2.0 for the full change log.

v1.1.3

09 Feb 19:37
18b2b81
Compare
Choose a tag to compare

Welcome to the v1.1.3 release of the Azure Quantum Development Kit. This release is largely a bug fixing release of v1.1. Some notable changes include:

  • Use fixed seed for random circuit generation in resource estimation sample in #1097
  • Consolidate samples and run notebooks in build in #1070
  • Fix typos in Q# standard lib documentation by @filipw in #1101
  • Session now exits when there is a runtime failure when running without debugging in #1103
  • Pure state preparation added to unstable standard library in #1068
  • Use relevant icon for locals completion by @filipw in #1111
  • Prefer open file contents to disk contents in #1110
  • Fix BOM handling in Python in #1112
  • Update spans used for some type mismatch errors in #1098
  • Evaluator performance improvements in #1116
  • Fix state ordering in Python in #1122
  • Set notebook cell language back to Python if %%qsharp magic isn't there in #1118
  • Clarify instructions on running the playground in #1134
  • New factoring algorithm sample for resource estimation in #1058

Full Changelog: v1.1.1...v1.1.3

v1.1

30 Jan 19:48
41d073b
Compare
Choose a tag to compare

Welcome to the v1.1 release of the Azure Quantum Development Kit. The main highlights of this release are:

  • Space-time scatter charts for resource estimation via #985
  • Additional samples targeted for use with resource estimation via #1019, #1033, and #1067
  • Changes to the order of bits in the |ket> representation via #1079
  • Highlighting of errors in cells in Jupyter Notebooks via #1071
  • New dump_operation API in Python via #1055
  • Added BoolArrayAsBigInt to the standard library via #1047 (thanks @filipw)
  • Added ability to set random seeds for quantum or classical simulation via #1053
  • Various other minor fixes and improvements

v1.0

23 Jan 19:54
9e6c3e2
Compare
Choose a tag to compare

Welcome to the v1.0 release of the Azure Quantum Development Kit. Being a version 1.0 release, this release includes all of our initial features, including:

  • VS Code extension for desktop and web
  • Rich Q# language service support
  • A Q# compiler and simulator
  • Vastly improved performance over the prior QDK
  • Q# debugging
  • The qsharp and qsharp-widgets Python packages.
  • Jupyter Notebook integration
  • Quantum Resource Estimation
  • Azure Quantum service integration

And more! See the release blog post for more details at https://devblogs.microsoft.com/qsharp/announcing-v1-0-of-the-azure-quantum-development-kit/