Releases: p-org/PSharp
P# 1.7.0
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).
P# 1.6.10
P# 1.6.9
This release contains the 1.6.9 version of the P# framework.
- Added the
OnEventUnhandledAsync
machine callback that is invoked when the machine receives an event that it is not prepared to handle. - Coverage report includes uncovered events.
- Fixes in the P# syntax plugin related to brace matching and coloring.
- Refactored the
ILogger
andMachineLogger
intoILogger
andRuntimeLogWriter
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 overrideMachineLogger
, just implementILogger
directly and then set it viaruntime.SetLogger(…)
(as previously). If you need to override methods ofRuntimeLogWriter
to modify the actual logging behavior of the runtime (previously these methods were part ofMachineLogger
) then please read the new brief guide here on how to do this.
P# 1.6.8
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.
P# 1.6.7
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.
P# 1.6.6
P# 1.6.4
P# 1.6.3
P# 1.6.2
This release contains the 1.6.2 version of the P# framework.
This is a minor release that does the following changes:
- Exposed the setter of the
Machine.OperationGroupId
property. - Modified the internals of how the operation group id associated with event operations is maintained and propagated across the runtime, which allowed us to decouple the
OperationGroupId
from theEvent
. - Hardened the systematic testing runtime for some
async
/await
corner cases.
P# 1.6.1
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:
- The
Machine.Send
method and theIMachineRuntime
send event methods now receive an optionalGuid operationGroupId
, which overrides the defaultOperationGroupId
set by the event constructor. - The
Machine.Raise
method now receives an optionalGuid operationGroupId
, similar to above. - The
IMachineRuntime
methods that receive an optional operation group id, now accept aGuid operationGroupId = default
parameter instead ofGuid? operationGroupId = null
. - The logger interface is updated to receive a
Guid
parameter instead ofGuid?
for logging sends. - The
IMachineRuntime
now exposes aStop
method that terminates the runtime and notifies each active machine to halt execution.