last state in ticket #390
- static deadlock detection switched off by default in the prl-script
- the export of the control deadlock control flow graph has some problems with some test cases (loops and other stuff)
- the static analyzer already works with multiple modules
- export of identifiers with separate namespaces not tested yet
next issues in export for static analyzer:
nodeadlockoperationsafter these changes, modify static analyzer:
it would be better for understanding if all task/proc/sema/... identifiers obtain a new tag
modulefor a unique identification cross over different modulesThe staticAnalyzer must become aware of the tag and must regard this when an object id referenced.
If we are certain that the IMC runs before the staticAnalyzer, we may rely on a correct application.
Attention: The name of the module is not regarded by the staticAnalyzer up to now
Last edit: Rainer Müller 2024-10-28
The difference of node-label and node-id is not clear. If several statements are in the same line, the column index must be used.
*to be extended and modified *
update:
open issues:
names of identifiers became simplified in error messages.
E.g.
pc_buffer.prl:7:9::freeonlyfreeis used if no other object with the same name exists.If there are other declarations with the same name the
pc_buffer.prl:7:9::freebecomes replaced byfree (defined at pc_buffer.prl:7:9)If the definition is located in an included file, the result looks like
free (defined at pc_buffer1.prl:7:./pc_buffer1.inc:2:9)which means that
freewas defined in line 2 and column 9. inpc_buffer1.inc, which was included frompc_buffer1.prlin line 7.still open issues:
Last edit: Rainer Müller 2025-09-15
The tests in the thesis of Jan showed that there were some misunderstandings of the usage of semaphore and bolt operations
This concerns the error messages in the static deadlock detection.
The runtime system is expected to emit a BoltStateSignal.
The OpenPEARL language report states that RESERVE b,b; will never succeed. Maybe this is wrong and should be changed towards the BoltStateSignal.
Te BOLT operations should lock and unlock in the same block level of the source code. Other usage should deliver a warning. This was accepted in the discussion from 2029-02-09
Last edit: Rainer Müller 2026-01-10