ITADN
QuantumSavory/QuantumSavory.jl

版本发布 8

v0.7.0
? · 2026-06-13

## QuantumSavory v0.7.0 [Diff since v0.6.0](https://github.com/QuantumSavory/QuantumSavory.jl/compare/v0.6.0...v0.7.0) - **(breaking)** **(fix)** The `ProtocolZoo` entanglement-tracking tags and messages now carry entanglement pair IDs, fixing a class of bookkeeping bugs (#303) where stale update messages could be applied to the wrong Bell pair after a physical slot was reused. See the porting guide below. - **(fix)** `EntanglementTracker` no longer waits on the physical slot lock when an incoming update only needs `EntanglementHistory` metadata of an empty slot, fixing a race (#448) where valid in-flight updates were dropped as stale because history forwarding was serialized behind slot reuse by an `EntanglerProt`. - `SwapperProt` gained a `max_history_per_slot` option and `CutoffProt` gained a `max_delete_per_slot` option, enforcing FIFO caps on accumulated `EntanglementHistory` and `EntanglementDelete` metadata. `CutoffProt` no longer deletes old `EntanglementHistory` tags itself; history cleanup is now owned by the swapper that creates those tags. - Stale update/delete messages dropped by `EntanglementTracker` are now logged at `@warn` level instead of `@error`, as with pair IDs such drops are expected only under benign circumstances (e.g. history garbage collection). **Merged pull requests:** - Add QTCP tutorial examples (#379) (@LBacciottini) - fix race conditions in AsymmetricSemaphore (#384) (@Krastanov-agent) - Simplify onchange change notification (#385) (@Krastanov-agent) - Cover stale query_wait deletion race (#386) (@Krastanov-agent) - Document async query consumption safety (#387) (@Krastanov-agent) - Keep EntanglementTracker updates under one lock (#388) (@Krastanov-agent) - Handle stale switch reciprocal cleanup (#389) (@Krastanov-agent) - Revalidate SwapperProt tags after locking (#390) (@Krastanov-agent) - Fix stale EntanglementConsumer tag queries (#391) (@Krastanov-agent) - Avoid stale switch match accounting (#392) (@Krastanov-agent) - Make tag ids thread-safe (#423) (@Krastanov-agent) - Benchmark: query index selectivity (#434) (@LBacciottini) - Performance: Secondary indexes on tags (#435) (@LBacciottini) - UUID-based EntanglementTracker (#440) (@LBacciottini) - Bump codecov/codecov-action from 6 to 7 (#454) (@dependabot[bot]) **Closed issues:** - Entanglement tracker protocol with UUIDs assigned to each Bell pair [$1600] (#134) - EntanglementConsumer, SwapperProt, EntanglementTracker, EntanglerProt might fail to correctly track entangled states across a repeater chain (#303) - KeyError when running multiple simulations in different threads (#380) - EntanglementTracker stale delete error messages (#419) - Bounty Proposal: Synchronous vs. Asynchronous Protocols Example (#138) (#427) - Add secondary indexes for tag and message queries (#431) - EntanglementTracker can drop valid update messages as stale when two swaps are simultaneous (#448)

v0.6.0
? · 2026-05-06

## QuantumSavory v0.6.0 [Diff since v0.5.1](https://github.com/QuantumSavory/QuantumSavory.jl/compare/v0.5.1...v0.6.0) - **(breaking)** Some fields of EntanglerProt were renamed for consistency with other protocols. More such renaming is to be expected, for consistency's sake. - **(breaking)** The `StatesZoo` now integrates with the `Genqo.jl` package, to provide high accuracy models of the ZALM entanglement source. The previous implementation of the ZALM source was removed. - **(breaking)** Renaming `wait(::MessageBuffer)` and `onchange_tag(::Register)` to `onchange`. - **(fix)** `observable` used to incorrectly handle subsystem permutations on some backends in some edge cases, giving wrong results. - **(fix)** Stale `EntanglementDelete` messages in `EntanglementTracker` are now dropped as a workaround for protocol bookkeeping issue #303. - **(fix)** Tensor products of operators are now better supported in `apply!` for `CliffordRepr` - Querying functions now also return the time at which a tag was tagged. - `query_wait` now exists as a much simpler alternative to `onchange` followed by `query`. - `GraphStateConstructor` protocol and related tooling for modeling of the iterative construction of a graph state out of Bell pairs. - Protocol constructors moving to having constructors that do not require `sim` to be explicitly specified. - Noise types now have default parameters, for ease of construction in examples. The default values generally correspond to near-zero noise (e.g. decoherence time of `1e9`). - Protocols (subtypes of `AbstractProtocol` in the `ProtocolZoo`) now have rich `show` methods for the `image/png` and `text/html` MIME types - Unexported function `permits_virtual_edge` to describe whether a protocol can run between two nodes that are not directly connected. - Non-public functions `parent`, `parentindex`, `name`, `namestr`, `timestr`, `compactstr`, `available_protocol_types`, `available_slot_types`, `available_background_types`, `constructor_metadata` for better introspection capabilities and cleaner printing. - `T1T2` noise has been added. - Support for Gaussian states, unitaries, and channels through `GabsRepr` as the default for QModes. - `HomodyneMeasurement` has been added for Gaussian-state measurements. - New assisted continuous-variable teleportation example. - New piecemaker GHZ-switch example. - `DepolarizedBellPair` added to `StatesZoo`, representing a depolarized Bell state `p|Φ⁺⟩⟨Φ⁺| + (1-p)I/4`, constructible from either the depolarization parameter `p` or fidelity `F`. **Closed issues:** - show register lock status in plots of the network (#95) - Waiting on register events [$800] (#133) - A new Julia package for Gaussian Quantum Optics [$1600] (#140) - Undo the removal of graph matching capabilities after GraphMatching.jl fixes its installation dependencies (#155) - Implement electron-nuclear spin register for MBQC distillation protocol (#204) - More examples of MBQC purification protocols (#205) - Arbitrary graph constructor protocol (#225) - the `onchange_tag(::Register)` and `wait(::MessageBuffer)` have the same functionality implemented in two different ways (#229) - `StabilizerState` in `observable` (#231) - renaming `wait(::MessageBuffer)` and `onchange_tag(::Register)` to bring in consistency (#268) - tables in the documentation render as ascii art instead of html (#270) - QTCP's LinkController might miss LinkRequests arriving while entanglement is being attempted (#304) - notify not working after #336 (#352)

v0.5.1
? · 2025-07-15

## QuantumSavory v0.5.1 [Diff since v0.5.0](https://github.com/QuantumSavory/QuantumSavory.jl/compare/v0.5.0...v0.5.1) **Merged pull requests:** - Waiting on Register Events (#164) (@hanakl) - Bump codecov/codecov-action from 4 to 5 (#168) (@dependabot[bot]) - CI autocancel (#169) (@Krastanov) - Background Map for Plotting (#170) (@hanakl) - CompatHelper: bump compat for ResumableFunctions to 1, (keep existing compat) (#171) (@github-actions[bot]) - Bump dawidd6/action-download-artifact from 6 to 7 (#173) (@dependabot[bot]) - CompatHelper: bump compat for Makie in [weakdeps] to 0.22, (keep existing compat) (#175) (@github-actions[bot]) - Bump dawidd6/action-download-artifact from 7 to 8 (#179) (@dependabot[bot]) - a model for the Barrett Kok Bell state (#181) (@Krastanov) - state explorer - an interactive tool (#182) (@Krastanov) - MBQC Purification (#185) (@hanakl) - GHZ setup example (#187) (@hanakl) - further fixes to docs (#188) (@Krastanov) - bump min compat Makie to fix downgrade CI issues with GeoMakie (#189) (@Krastanov) - Bump dawidd6/action-download-artifact from 8 to 9 (#190) (@dependabot[bot]) - remove outdated GeoMakie extension (#198) (@Krastanov) - Tyler Map Fixes (#208) (@hanakl) - qtcp work (#209) (@Krastanov) - Speedup observable by avoiding outer products (#217) (@Krastanov) - faster initialization for tensor products (#221) (@Krastanov) - Bump dawidd6/action-download-artifact from 9 to 10 (#234) (@dependabot[bot]) - CompatHelper: bump compat for QuantumInterface to 0.4, (keep existing compat) (#235) (@github-actions[bot]) - CompatHelper: bump compat for Makie in [weakdeps] to 0.23, (keep existing compat) (#239) (@github-actions[bot]) - Bump dawidd6/action-download-artifact from 10 to 11 (#240) (@dependabot[bot]) - prepare for 5.1 release - bring back graphmatching and simplify tests (#244) (@Krastanov) **Closed issues:** - A (web)GUI for drawing out a network, assigning protocols, and running simulations with some introspection [$3000] (#139) - `CliffordRepr()` incompatible with `ProtocolZoo.SwapperProt` (#158) - Depolarizing noise model for CliffordRepr() (#196) - simple first version of Emilly's quantum sensing over net (#202) - Fix Tyler tile loading issue (#206) - assymetric semaphore can lead to an infinite loop if a process locks it immediately after an unlock (#210) - Display state in the order of its state indices (#211) - observable() comparatively slow when using QuantumOpticsRepr() (#216) - `apply!` slow when initialized with product state (#219)

v0.5.0
? · 2024-10-16

## QuantumSavory v0.5.0 [Diff since v0.4.2](https://github.com/QuantumSavory/QuantumSavory.jl/compare/v0.4.2...v0.5.0) **Merged pull requests:** - Implementing Cutoff protocol, related synchronization communication tags, and general Improvements to protocol stability (#120) (@ba2tro) - remove GraphMatching as BlossomV does not compile on mac and windows (#153) (@Krastanov) - fix incorrect version number (#163) (@Krastanov) **Closed issues:** - Improve static analysis tests with JET [$200] (#130) - Move the test runner to use TestItems.jl [$200] (#141) - Switch to using `DocumenterMermaid.jl` than manual `HTML-tag` based Mermaid. (#149)

v0.4.2
? · 2024-08-14

## QuantumSavory v0.4.2 [Diff since v0.4.1](https://github.com/QuantumSavory/QuantumSavory.jl/compare/v0.4.1...v0.4.2) **Merged pull requests:** - Bump dawidd6/action-download-artifact from 3 to 5 (#122) (@dependabot[bot]) - Bump dawidd6/action-download-artifact from 5 to 6 (#124) (@dependabot[bot]) - cleanup (#125) (@Krastanov) - CompatHelper: bump compat for QuantumOpticsBase to 0.5, (keep existing compat) (#126) (@github-actions[bot]) - Enable more Aqua tests by solving piracy and ambiguities issues (#143) (@Tortar) - Fix observable call due to something being now a keyword (#145) (@Tortar) **Closed issues:** - Aqua static analysis [$200] (#135)

v0.4.1
? · 2024-06-06

## QuantumSavory v0.4.1 [Diff since v0.4.0](https://github.com/QuantumSavory/QuantumSavory.jl/compare/v0.4.0...v0.4.1) **Merged pull requests:** - simplify the `query` implementation (#121) (@Krastanov)

v0.4.0
? · 2024-06-05

## QuantumSavory v0.4.0 [Diff since v0.3.4](https://github.com/QuantumSavory/QuantumSavory.jl/compare/v0.3.4...v0.4.0) **Merged pull requests:** - Bump julia-actions/cache from 1 to 2 (#117) (@dependabot[bot]) - CompatHelper: bump compat for Makie to 0.21, (keep existing compat) (#118) (@github-actions[bot]) - Simple Entanglement Switch (#119) (@Krastanov) **Closed issues:** - save time of tagging and use it in FILO/FIFO considerations (#111)

v0.3.4
? · 2024-04-26

## QuantumSavory v0.3.4 [Diff since v0.3.3](https://github.com/QuantumSavory/QuantumSavory.jl/compare/v0.3.3...v0.3.4) **Merged pull requests:** - documentation for the data inspection feature in plotting (#110) (@Krastanov) - CompatHelper: bump compat for QuantumClifford to 0.9, (keep existing compat) (#112) (@github-actions[bot]) **Closed issues:** - FIFO and FILO for query and querydelete! (#80)