Comments (5)
OK, so it seems if I add an infinite cycle in the state-space then an error is found.
I would like to trigger an error at any terminal state if some condition does not hold. Is that possible?
from p.
Hi Paul,
The deadlock property is encoded as a safety assertion in P. If you want to
check an eventually or finally property on a finite trace it is implemented
as an assertion that at the end of execution when all the process are
terminated or blocked the system should not be in a hot state. For checking
such properties you must compile P program without liveness flag and run
normal zinger search. This error will then be caught as a safety assertion
violation. You dont need to add a infinite looping process in this case.
Note that by adding infinite looping process you made the trace infinite.
On Thu, Feb 4, 2016 at 1:32 PM Paul Thomson [email protected]
wrote:
OK, so it seems if I add an infinite cycle in the state-space then an
error is found.I would like to trigger an error at any terminal state if some
condition does not hold. Is that possible?—
Reply to this email directly or view it on GitHub
#20 (comment).
from p.
Awesome! So doing the following makes it work:
>> load TestMasterHot.p
2s
>> test
Writing TestMasterHot.zing ...
Compiling TestMasterHot.zing to TestMasterHot.dll ...
7s
>>
The error message is not very clear though:
Error:
P Assertion failed:
Expression: assert(sizeof(SM_HANDLE.enabled) != 0 || sizeof(SM_HANDLE.hot) == 0)
Comment: Deadlock
Does it make sense to have both liveness and deadlock safety checks? So a program has infinite paths but also has some terminal states? E.g. A program might be able to get stuck in an infinite failure loop without making progress but might also be able to terminate in a hot state. If so, would it make sense for the safety check be added even when using the /liveness
flag?
from p.
Excellent point Paul !
I had exact same conversation with Shaz today morning but with the way
liveness checking and deadlock detection is implemented right now both the
checks cannot be enabled simultaneously.
But I agree with you that it would be nice to merge these two checks. I
will think about it.
On Thu, Feb 4, 2016 at 2:28 PM Paul Thomson [email protected]
wrote:
Awesome! So doing the following makes it work:
load TestMasterHot.p
2s
test
Writing TestMasterHot.zing ...
Compiling TestMasterHot.zing to TestMasterHot.dll ...
7sThe error message is not very clear though:
Error:
P Assertion failed:
Expression: assert(sizeof(SM_HANDLE.enabled) != 0 || sizeof(SM_HANDLE.hot) == 0)
Comment: DeadlockDoes it make sense to have both liveness and deadlock safety checks? So a
program has infinite paths but also has some terminal states? E.g. A
program might be able to get stuck in an infinite failure loop without
making progress but might also be able to terminate in a hot state. If so,
would it make sense for the safety check be added even when using the
/liveness flag?—
Reply to this email directly or view it on GitHub
#20 (comment).
from p.
I am not convinced yet that merging deadlock and livelock detection is a good idea. The current design requires the programmer to explicitly consider whether she is looking for a finite (assertions and deadlocks) or an infinite (livelocks) error trace. Different options should be passed to pc and zinger (consistently) depending on that choice. These options result in significantly different encodings and search techniques.
from p.
Related Issues (20)
- Emacs support for editing P files HOT 2
- VSCode extension syntax highlighting not working HOT 2
- Tutorial - Client/Server - Error: "'PMonitor' does not contain a definition for 'TryRandom'" HOT 2
- Tutorial - "Error: Failed to get test method '' from assembly 'ClientServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' " HOT 4
- Installation instructions should say you need nuget as a dotnet source HOT 1
- Grammar railroad diagram HOT 1
- [docs] compositional programming: docs and examples? HOT 1
- [docs] State machine event handler semantics: atomic execution? HOT 6
- `GuaranteedWithDrawProgress` in Tutorial 1 is inaccurate/misdocumented HOT 4
- Internal Error: No such file or directory HOT 1
- In trace logs enums are printed as integers and its annoying!
- Unable to compile due to "no viable alternative at input" HOT 9
- Infinite loop in Timer module HOT 3
- Case expressions HOT 1
- Assert's error message is eagerly evaluated HOT 2
- Upgrade to Newer .Net Version HOT 1
- T
- High quality P Icon HOT 2
- "defer" and "ignore" statements not documented HOT 1
- Feature request: machine-local types HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from p.