A framework for rapid development of reliable asynchronous software.
This release contains the 1.7.0 version of the P# framework.
The release removes the TraceViewer
(which has now moved to its own repository) and exposes the BugTrace
(and related types) as public, which can be used by trace viewing tools (TraceViewer
itself is using these types).
This is a maintenance only release that contains the 1.6.10 version of the P# framework.
This release contains the 1.6.9 version of the P# framework.
OnEventUnhandledAsync
machine callback that is invoked when the machine receives an event that it is not prepared to handle.ILogger
and MachineLogger
into ILogger
and RuntimeLogWriter
to simplify the design, separate the concerns and support some extra scenarios. This required some minimal changes in a custom logger: primarily instead of trying to override MachineLogger
, just implement ILogger
directly and then set it via runtime.SetLogger(…)
(as previously). If you need to override methods of RuntimeLogWriter
to modify the actual logging behavior of the runtime (previously these methods were part of MachineLogger
) then please read the new brief guide here on how to do this.This release contains the 1.6.8 version of the P# framework.
This is a minor release that fixes an issue where the P# high-level syntax rewriter was inserting a call to the removed method SetCardinalityConstraints
in the generated code. This version also removes assert
/assume
parsing from the P# high-level syntax, as it is not used nor supported any more.
This release contains the 1.6.7 version of the P# framework.
This is a minor release that adds exception handlers when invoking the the OnEventDequeue
and OnEventHandled
machine callbacks, as well as fixes the precision of activity coverage across multiple tests.
This release contains the 1.6.6 version of the P# framework.
This is a minor release that adds support for inheriting states and using the wildcard event in a Monitor
.
This release contains the 1.6.4 version of the P# framework.
This is a minor release that fixes a race condition when using the built-in periodic timer API.
This release contains the 1.6.3 version of the P# framework.
This is a minor release that fixes a bug with the parallel tester.
This release contains the 1.6.2 version of the P# framework.
This is a minor release that does the following changes:
Machine.OperationGroupId
property.OperationGroupId
from the Event
.async
/await
corner cases.This release contains the 1.6.1 version of the P# framework.
This is a minor release that exposes some new APIs and updates the way that an operation group id can be optionally passed to Create
and Send
related methods:
Machine.Send
method and the IMachineRuntime
send event methods now receive an optional Guid operationGroupId
, which overrides the default OperationGroupId
set by the event constructor.Machine.Raise
method now receives an optional Guid operationGroupId
, similar to above.IMachineRuntime
methods that receive an optional operation group id, now accept a Guid operationGroupId = default
parameter instead of Guid? operationGroupId = null
.Guid
parameter instead of Guid?
for logging sends.IMachineRuntime
now exposes a Stop
method that terminates the runtime and notifies each active machine to halt execution.