PSharp Versions Save

A framework for rapid development of reliable asynchronous software.

1.7.0

4 years ago

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).

1.6.10

4 years ago

This is a maintenance only release that contains the 1.6.10 version of the P# framework.

1.6.9

4 years ago

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 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.

1.6.8

4 years ago

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.

1.6.7

4 years ago

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.

1.6.6

4 years ago

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.

1.6.4

4 years ago

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.

1.6.3

4 years ago

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.

1.6.2

4 years ago

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 the Event.
  • Hardened the systematic testing runtime for some async/await corner cases.

1.6.1

4 years ago

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 the IMachineRuntime send event methods now receive an optional Guid operationGroupId, which overrides the default OperationGroupId set by the event constructor.
  • The Machine.Raise method now receives an optional Guid operationGroupId, similar to above.
  • The IMachineRuntime methods that receive an optional operation group id, now accept a Guid operationGroupId = default parameter instead of Guid? operationGroupId = null.
  • The logger interface is updated to receive a Guid parameter instead of Guid? for logging sends.
  • The IMachineRuntime now exposes a Stop method that terminates the runtime and notifies each active machine to halt execution.