CPAL Playground

x
 
1
/*
2
Licence Creative Commons CC0 - "No Rights Reserved"
3
@keywords time64.time(); time64, type; variable, initialisation; variable, static
4
*/
5
6
const time64: epsilon = 10ms;
7
8
/* Forbidden non constant initialization :
9
var time64: globalVar = time64.time();
10
*/
11
var time64: globalVar;
12
var duration64 : globalDuration;
13
14
init() {
15
  const duration64 : offset = -10ms;
16
  globalVar = time64.time();
17
  globalDuration = -offset;
18
}
19
20
21
processdef VarInitChecker() {
22
23
/*  static var time64: procLocalStaticVar = time64.time();  */
24
  var time64: procLocalVar = time64.time();
25
  static var time64: maxDelta = 0ms;
26
  
27
  state A {
28
    var time64: stateLocalVar = time64.time();
29
30
/*    IO.println("%t %t %t %t", globalVar, procLocalVar, stateLocalVar, stateLocalVar - procLocalVar); */
31
    var time64: curDelta = stateLocalVar - procLocalVar;
32
    if (curDelta > maxDelta) {
33
        IO.println("%t", curDelta);
34
        maxDelta = curDelta;
35
    }
36
    assert(stateLocalVar >= procLocalVar >= globalVar);
37
38
    assert(stateLocalVar - procLocalVar < epsilon);
39
    
40
  }
41
}
42
43
process VarInitChecker: p[100ms]();
44
45

for ms or try the desktop editor with advanced diagram views
Quiet mode disabled
[0.000000000000:ASSIGN] Assign cpal_system new value: Scheduling_Policy.FIFO
[0.000000000000:ASSIGN] Assign globalVar new value: 0
[0.000000000000:ASSIGN] Assign globalDuration new value: 10ms
[0.000000000000:var-time-init:STARTING_TASK] 'p'
[0.000000000000:STATE] process "VarInitChecker", instance "p", state "A"
[0.000000000000:var-time-init:TASK_FINISHED] 'p'
[0.100000000000:var-time-init:STARTING_TASK] 'p'
[0.100000000000:var-time-init:TASK_FINISHED] 'p'
[0.200000000000:var-time-init:STARTING_TASK] 'p'
[0.200000000000:var-time-init:TASK_FINISHED] 'p'
[0.300000000000:var-time-init:STARTING_TASK] 'p'
[0.300000000000:var-time-init:TASK_FINISHED] 'p'
[0.400000000000:var-time-init:STARTING_TASK] 'p'
[0.400000000000:var-time-init:TASK_FINISHED] 'p'
[0.500000000000:var-time-init:STARTING_TASK] 'p'
[0.500000000000:var-time-init:TASK_FINISHED] 'p'
[0.600000000000:var-time-init:STARTING_TASK] 'p'
[0.600000000000:var-time-init:TASK_FINISHED] 'p'
[0.700000000000:var-time-init:STARTING_TASK] 'p'
[0.700000000000:var-time-init:TASK_FINISHED] 'p'
[0.800000000000:var-time-init:STARTING_TASK] 'p'
[0.800000000000:var-time-init:TASK_FINISHED] 'p'
[0.900000000000:var-time-init:STARTING_TASK] 'p'
[0.900000000000:var-time-init:TASK_FINISHED] 'p'
[1.000000000000:var-time-init:STARTING_TASK] 'p'
[1.000000000000:var-time-init:TASK_FINISHED] 'p'
[1.100000000000:var-time-init:STARTING_TASK] 'p'
[1.100000000000:var-time-init:TASK_FINISHED] 'p'
[1.200000000000:var-time-init:STARTING_TASK] 'p'
[1.200000000000:var-time-init:TASK_FINISHED] 'p'
[1.300000000000:var-time-init:STARTING_TASK] 'p'
[1.300000000000:var-time-init:TASK_FINISHED] 'p'
[1.400000000000:var-time-init:STARTING_TASK] 'p'
[1.400000000000:var-time-init:TASK_FINISHED] 'p'
[1.500000000000:var-time-init:STARTING_TASK] 'p'
[1.500000000000:var-time-init:TASK_FINISHED] 'p'
[1.600000000000:var-time-init:STARTING_TASK] 'p'
[1.600000000000:var-time-init:TASK_FINISHED] 'p'
[1.700000000000:var-time-init:STARTING_TASK] 'p'
[1.700000000000:var-time-init:TASK_FINISHED] 'p'
[1.800000000000:var-time-init:STARTING_TASK] 'p'
[1.800000000000:var-time-init:TASK_FINISHED] 'p'
[1.900000000000:var-time-init:STARTING_TASK] 'p'
[1.900000000000:var-time-init:TASK_FINISHED] 'p'
[2.000000000000:var-time-init:STARTING_TASK] 'p'
[2.000000000000:var-time-init:TASK_FINISHED] 'p'
[2.100000000000:var-time-init:STARTING_TASK] 'p'
[2.100000000000:var-time-init:TASK_FINISHED] 'p'
[2.200000000000:var-time-init:STARTING_TASK] 'p'
[2.200000000000:var-time-init:TASK_FINISHED] 'p'
[2.300000000000:var-time-init:STARTING_TASK] 'p'
[2.300000000000:var-time-init:TASK_FINISHED] 'p'
[2.400000000000:var-time-init:STARTING_TASK] 'p'
[2.400000000000:var-time-init:TASK_FINISHED] 'p'
[2.500000000000:var-time-init:STARTING_TASK] 'p'
[2.500000000000:var-time-init:TASK_FINISHED] 'p'
[2.600000000000:var-time-init:STARTING_TASK] 'p'
[2.600000000000:var-time-init:TASK_FINISHED] 'p'
[2.700000000000:var-time-init:STARTING_TASK] 'p'
[2.700000000000:var-time-init:TASK_FINISHED] 'p'
[2.800000000000:var-time-init:STARTING_TASK] 'p'
[2.800000000000:var-time-init:TASK_FINISHED] 'p'
[2.900000000000:var-time-init:STARTING_TASK] 'p'
[2.900000000000:var-time-init:TASK_FINISHED] 'p'
[3.000000000000:var-time-init:STARTING_TASK] 'p'
[3.000000000000:var-time-init:TASK_FINISHED] 'p'
EXIT (SUCCESS) AT 3s (3000000000000)

pTasks