Added QuantumChannel #253
ci.yml
on: pull_request
Documentation
45m 21s
Matrix: test
Annotations
6 warnings
Documentation:
../../../.julia/packages/Documenter/nQAq5/src/utilities/utilities.jl#L46
failed to run `@example` block in src/tutorial/message_queues.md:129-203
```@example messagechannel
sim = Simulation()
communication_delay = 1.0
channel_1to2 = DelayChannel{Bool}(sim, communication_delay)
channel_2to1 = DelayChannel{Bool}(sim, communication_delay)
channel_ready = DelayChannel{Bool}(sim, communication_delay)
global_log = []
@Resumable function do_random_measurement_transmit_receive_compare(sim, channel_out, channel_in)
@yield timeout(sim, 2+rand()) # wait for the measurement to take place
local_measurement = rand() < 0.4 # simulate a random measurement result
put(channel_out, local_measurement)
other_measurement = @yield get(channel_in)
succeeded = local_measurement == other_measurement == true
return succeeded
end
@Resumable function reset_system(sim)
s = now(sim)
reset_duration = 2.0
@yield timeout(sim, reset_duration)
put(channel_ready, true)
push!(global_log, (:reset_system, s, now(sim)))
end
@Resumable function process_node1(sim)
while true
s = now(sim)
succeeded = @yield @process do_random_measurement_transmit_receive_compare(sim, channel_1to2, channel_2to1)
if succeeded
throw(StopSimulation("Success!"))
end
push!(global_log, (:node_1_meas_tx_rx, s, now(sim)))
s2 = now(sim)
@yield @process reset_system(sim)
push!(global_log, (:node_1_wait_for_reset, s2, now(sim)))
end
end
@Resumable function process_node2(sim)
while true
s = now(sim)
succeeded = @yield @process do_random_measurement_transmit_receive_compare(sim, channel_2to1, channel_1to2)
if succeeded
throw(StopSimulation("Success!"))
end
push!(global_log, (:node_2_meas_tx_rx, s, now(sim)))
s2 = now(sim)
@yield get(channel_ready)
push!(global_log, (:node_2_wait_for_reset, s2, now(sim)))
end
end
@process process_node1(sim)
@process process_node2(sim)
ConcurrentSim.run(sim)
fig = Figure()
ax = Axis(fig[1,1],xlabel="time")
hideydecorations!(ax)
for (i, symbol) in enumerate([:node_1_meas_tx_rx,:node_2_meas_tx_rx,:reset_system,:node_1_wait_for_reset,:node_2_wait_for_reset])
x_coords = [(x₀, x₁)
for (s, x₀, x₁) in global_log
if s==symbol]
coords = [(Point(x₀,y+i/5),Point(x₁,y+i/5)) for (y,(x₀, x₁)) in enumerate(x_coords)]
linesegments!(coords,color=Cycled(i),label=string(symbol),linewidth=10)
flat_coords = collect(Iterators.flatten(coords))
scatter!(flat_coords,color=Cycled(i))
end
axislegend(ax)
fig
```
exception =
UndefVarError: `DelayChannel` not defined
Stacktrace:
[1] top-level scope
@ message_queues.md:132
[2] eval
@ ./boot.jl:370 [inlined]
[3] #54
@ ~/.julia/packages/Documenter/nQAq5/src/expander_pipeline.jl:738 [inlined]
[4] cd(f::Documenter.var"#54#56"{Module, Expr}, dir::String)
@ Base.Filesystem ./file.jl:112
[5] (::Documenter.var"#53#55"{Documenter.Page, Module, Expr})()
@ Documenter ~/.julia/packages/Documenter/nQAq5/src/expander_pipeline.jl:737
[6] (::IOCapture.var"#3#5"{DataType, Documenter.var"#53#55"{Documenter.Page, Module, Expr}, Task, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})()
@ IOCapture ~/.julia/packages/IOCapture/8Uj7o/src/IOCapture.jl:119
[7] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:514
[8] with_logger
@ ./logging.jl:626 [inlined]
[9] capture(f::Documenter.var"#53#55"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool)
@ IOCapture ~/.julia/packages/IOCapture/8Uj7o/src/IOCapture.jl:116
[10] runner(#unused#::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document)
@ Documenter ~/.julia/packages/Documenter/nQAq5/src/expander_pipeline.jl:736
|
Documentation:
../../../.julia/packages/Documenter/nQAq5/src/utilities/utilities.jl#L46
no doc found for reference '[`AbstractRepresentation`](@ref)' in src/register_interface.md.
|
Documentation:
../../../.julia/packages/Documenter/nQAq5/src/utilities/utilities.jl#L46
no doc found for reference '[`express`](@ref)' in src/register_interface.md.
|
Documentation:
../../../.julia/packages/Documenter/nQAq5/src/utilities/utilities.jl#L46
no doc found for reference '[`AbstractRepresentation`](@ref)' in src/register_interface.md.
|
Documentation:
../../../.julia/packages/Documenter/nQAq5/src/utilities/utilities.jl#L46
no doc found for reference '[`AbstractRepresentation`](@ref)' in src/register_interface.md.
|
Documentation:
../../../.julia/packages/Documenter/nQAq5/src/utilities/utilities.jl#L46
5 docstrings not included in the manual:
QuantumSavory.CircuitZoo.StringentBodyNode
QuantumSavory.CircuitZoo.StringentHeadNode
QuantumSavory.CircuitZoo.StringentBody
QuantumSavory.CircuitZoo.StringentHead
QuantumSavory.CircuitZoo.inputqubits
These are docstrings in the checked modules (configured with the modules keyword)
that are not included in canonical @docs or @autodocs blocks.
|