This repository was archived by the owner on Aug 26, 2022. It is now read-only.
Releases: p-org/PSharp
Releases · p-org/PSharp
P# 1.6.0
This release contains the 1.6.0 version of the P# framework.
This is a major release containing new features and performance optimizations, as well as some minor API changes (to give us extra flexibility towards designing the below, but also planned upcoming features).
- Support for
MachineTestKit, a new built-in unit-testing API that allows to test machines (and methods of machines) in isolation. You can learn more about this here. Done in #427. - Improved memory consumption (and reduced GCs) in production and testing by optimizing internal string (and some other types) allocations. In our microbenchmarks, the peak working set of some scenarios is cut by half (not taking into account user code of course). Done in #425.
- Improved messaging latency and throughput, by redesigning and optimizing the internal
Machineinbox and its various operations. We are now implementing it internally using anIEventQueueinterface that allows us to inject different queues for different scenarios. Done in #426. - Support for running an
async Tasktest (that uses theTestattribute) withPSharpTester. Done in #430.
Changes:
- The runtime type (returned by
PSharpRuntime.Create(…)is now an interface of typeIMachineRuntime. This allows us to modify the internal implementation without affecting the user by giving this interface. Eventhas now an optional constructor that takes theGuid operationGroupId(this was used to be passed via theSendOptionsoptional parameter of theMachine.Sendmethod).Defaultevent cannot be manually instantiated anymore, useDefault.Eventto get a static instance. This improved memory consumption in machines that use theDefaultevent.- The
ILoggerinterface exposes a few new overloads ofWriteandWriteLinefor reducing boxing and array creations (similar to thestring.Formatoverloads). - The
OnWaitmethod of theILoggerinterface has changed fromOnWait(MachineId machineId, string currStateName, string eventNames)toOnWait(MachineId machineId, string currStateName, Type eventType)andOnWait(MachineId machineId, string currStateName, params Type[] eventTypes). - Setting verbosity in the
PSharp.Configurationhas changed to a booleanIsVerboseproperty. Similarly, from command line (e.g. usingPSharpTester) you have to pass/vinstead of/v:N. - Removed deprecated timer API, which was replaced by a redesigned timer API in
1.5.0.
P# 1.5.1
P# 1.5.0
This release contains the 1.5.0 version of the P# framework.
Changes:
- Redesigned the built-in timer APIs to make them easier to use and more efficient (see documentation here)
- Previous timer APIs are now deprecated and moved under the
Microsoft.PSharp.Deprecated.Timersnamespace - The
FairRandomAPI is exposed by the runtime - Fixed a bug where the
SharedObjectslibrary was not included for .NET Core targets - Removed support for net45