Skip to content

Releases: rigetti/pyquil

v2.11.0

03 Sep 17:32
Compare
Choose a tag to compare

Announcements

  • PyQuil's changelog has been overhauled and rewritten in Markdown instead of RST, and can be found in the top-level directory of the repository as the CHANGELOG.md file (which is the standard for most GitHub repositories). However, during the build process, we use pandoc to convert it back to RST so that it can be included as part of the ReadTheDocs documentation here (@karalekas, gh-945, gh-973).

Improvements and Changes

  • Test suite attempts to retry specific tests that fail often. Tests are retried only a single time (@notmgsk, gh-951).
  • The QuantumComputer.run_symmetrized_readout() method has been revamped, and now has options for using more advanced forms of readout symmetrization (@joshcombes, gh-919).
  • The ProtoQuil restrictions built in to PyQVM have been removed (@ecpeterson, gh-874).
  • Add the ability to query for other memory regions after both QPU and QVM runs. This removes a previously unnecessary restriction on the QVM, although ro remains the only QPU-writeable memory region during Quil execution (@ecpeterson, gh-873).
  • Now, running QuantumComputer.reset() (and QuantumComputer.compile() when using the QPU) additionally resets the connection information for the underlying QVM/QPU and QVMCompiler/QPUCompiler objects, which should resolve bugs that arise due to stale clients/connections (@karalekas, gh-872).
  • In addition to the simultaneous 1Q RB fidelities contained in device specs prior to this release, there are now 1Q RB fidelities for non-simultaneous gate operation. The names of these fields have been changed for clarity, and standard errors for both fidelities have been added as well. Finally, deprecation warnings have been added regarding the fCPHASE and fBellState device spec fields, which are no longer routinely updated and will be removed in release v2.13 (@jvalery2, gh-968).
  • The NOTICE has been updated to accurately reflect the third-party software used in pyQuil (@karalekas, gh-979).
  • PyQuil now sends “modern” ISA payloads to quilc, which must be of version >= 1.10.0. Check out the details of get_isa for information on how to specify custom payloads (@ecpeterson, gh-961).

Bugfixes

  • The MemoryReference warnings have been removed from the unit tests (@maxKenngott, gh-950).
  • The merge_programs function now supports merging programs with DefPermutationGate, instead of throwing an error, and avoids redundant readout declaration (@kylegulshen, gh-971).
  • Remove unsound logic to fill out non-"ro" memory regions when targeting a QPU (@notmgsk, gh-982).

v2.10.0

31 Jul 17:20
Compare
Choose a tag to compare

Improvements and Changes

  • Rewrote the README, adding a more in-depth overview of the purpose of pyQuil as a library, as well as two badges -- one for PyPI downloads and another for the Forest Slack workspace. Also, included an example section for how to get started with running a simple Bell state program on the QVM (@karalekas, gh-946, gh-949).

  • The test suite for pyquil.operator_estimation now has an (optional) faster version that uses fixed random seeds instead of averaging over several experiments. This can be enabled with the --use-seed command line option when running pytest (@msohaibalam, gh-928).

  • Deleted the deprecated modules job_results.py and kraus.py (@karalekas, gh-957).

  • Updated the examples README. Removed an outdated notebook. Updated remaining notebooks to use MemoryReference, and fix any parts that were broken (@notmgsk, gh-820).

  • The AbstractCompiler.quil_to_native_quil() function now accepts a protoquil keyword which tells the compiler to restrict both input and output to protoquil (i.e. Quil code executable on a QPU). Additionally, the compiler will return a metadata dictionary that contains statistics about the compiled program, e.g. its estimated QPU runtime. See the compiler docs for more information (@notmgsk, gh-940).

  • Updated the QCS and Slack invite links on the index.rst docs page (@starktech23, gh-965).

  • Provided example code for reading out the QPU runtime estimation for a program (@notmgsk, gh-963).

Bugfixes

  • unitary_tools.lifted_gate() was not properly handling modifiers such as DAGGER and CONTROLLED (@kylegulshen, gh-931).

  • Fixed warnings raised by Sphinx when building the documentation (@appleby, gh-929).

v2.9.1

28 Jun 23:03
Compare
Choose a tag to compare

Bugfixes

  • Relaxed the requirement for a quilc server to exist when users of the QuantumComputer object only want to do simulation work with a QVM or pyQVM backend (@karalekas, gh-934).

v2.9.0

26 Jun 18:39
Compare
Choose a tag to compare

Announcements

Improvements and Changes

  • Removed a bunch of logic around creating inverse gates from user-defined gates in Program.dagger() in favor of a simpler call to Gate.dagger() (@notmgsk, gh-887).

  • The RESET instruction now works correctly with QubitPlaceholder objects and the address_qubits function (@jclapis, gh-910).

  • ReferenceDensitySimulator can now have a state that is persistent between rounds of run or run_and_measure (@joshcombes, gh-920).

Bugfixes

  • Small negative probabilities were causing ReferenceDensitySimulator to fail (@joshcombes, gh-908).

  • The dagger function was incorrectly dropping gate modifiers like CONTROLLED (@jclapis, gh-914).

  • Negative numbers in classical instruction arguments were not being parsed (@notmgsk, gh-917).

  • Inline math rendering was not working correctly in intro.rst (@appleby, gh-927).

Thanks to community member @jclapis for the contributions to this release!

v2.8.0

21 May 00:12
Compare
Choose a tag to compare

Improvements and Changes

  • PyQuil now verifies that you are using the correct version of the QVM and quilc (@karalekas, gh-913).

  • Added support for defining permutation gates for use with the latest version of quilc (@notmgsk, gh-891).

  • The rpcq dependency requirement has been raised to v2.5.1 (@notmgsk, gh-911).

  • Added a note about the QVM's compilation mode to the documentation (@stylewarning, gh-900).

  • Some measure_observables params now have the Optional type specification (@msohaibalam, gh-903).

Bugfixes

v2.7.2

03 May 21:01
923a74f
Compare
Choose a tag to compare

Bugfixes

  • An additional backwards-incompatible change from gh-870 snuck through 2.7.1, and is addressed in this patch release (@karalekas, gh-901).

v2.7.1

01 May 17:07
5449f9a
Compare
Choose a tag to compare

Bugfixes

  • The changes to operator estimation (gh-870, gh-896) were not made in a backwards-compatible fashion, and therefore this patch release aims to remedy that. Going forward, there will be much more stringent requirements around backwards compatibility and deprecation (@karalekas, gh-899).

v2.7.0

01 May 17:07
Compare
Choose a tag to compare

Improvements and Changes

  • Standard deviation -> standard error in operator estimation (@msohaibalam, gh-870).

  • Update what pyQuil expects from quilc in terms of rewiring pragmas -- they are now comments rather than distinct instructions (@ecpeterson, gh-878).

  • Allow users to deprioritize QPU jobs -- mostly a Rigetti-internal feature (@jvalery2, gh-877).

  • Remove the qubits field from the TomographyExperiment dataclass (@msohaibalam, gh-896).

Bugfixes

v2.6.0

29 Mar 21:09
910dfe7
Compare
Choose a tag to compare

Improvements and Changes

  • Added a CODEOWNERS file for default reviewers (@karalekas, gh-855).

  • Bifurcated the QPUCompiler endpoint parameter into two -- quilc_endpoint and qpu_compiler_endpoint -- to reflect changes in Quantum Cloud Services (@karalekas, gh-856).

  • Clarified documentation around the DELAY pragma (@willzeng, gh-862).

  • Added information about the local_qvm context manager to the getting started documentation (@willzeng, gh-851).

  • Added strict version lower bounds on the rpcq and networkx dependencies (@notmgsk, gh-828).

  • A slice of a Program object now returns a Program object (@notmgsk, gh-848).

Bugfixes

  • Added a non-None default timeout to the QVMCompiler object and the get_benchmarker function (@karalekas, gh-850, gh-854).

  • Fixed the docstring for the apply_clifford_to_pauli function (@kylegulshen, gh-836).

  • Allowed the apply_clifford_to_pauli function to now work with the Identity as input (@msohaibalam, gh-849).

  • Updated a stale link to the Rigetti Forest Slack workspace (@karalekas, gh-860).

  • Fixed a notation typo in the documentation for noise (@willzeng, gh-861).

  • An IndexError is now raised when trying to access an out-of-bounds entry in a MemoryReference (@notmgsk, gh-819).

  • Added a check to ensure that measure_observables takes as many shots as requested (@marcusps, gh-846).

Special thanks to @willzeng for all the contributions this release!

v2.5.2

13 Mar 20:24
370d0fa
Compare
Choose a tag to compare

This is a bugfix release, repairing a bug in the serialization of ExperimentResults objects.