This issue tracker is closed. Please visit UPPAAL issue tracker at Github instead.

Bug 665

Summary: unbounded int parameter creates unreasonably large structures
Product: UPPAAL Reporter: Marius Mikučionis <marius>
Component: EngineAssignee: Marius Mikučionis <marius>
Status: ASSIGNED ---    
Severity: enhancement CC: adavid
Priority: P5    
Version: 4.1.22   
Hardware: All   
OS: All   
Architecture:

Description Marius Mikučionis 2019-09-04 11:18:15 CEST
Consider the following declaration:

typedef int switch_id;
template Proc(switch_id id) { ... }
system Proc;

Such declaration creates 64K processes. 
The engine can handle that easily, but the GUI freezes for a long while when switched to Simulator tab (it probably takes a long tim eto create 64K GUI elements). 
Eventually the simulator recovers displaying all 64K processes and is usable, but:

1) GUI becomes sluggish again when switched to another tab.
This asks for some newbie protection: the engine should issue an error when the indexed type is unbounded integer. Perhaps it is possible to track down the typedefs to the default int type with default range and then issue an error, otherwise it should just proceed when the range is user-specified.

2) The simulator displays processes with ids from 4294934528 to 4294967295 (32767 values), then from 0 to 32K. Looks like an uint32_t conversion bug: it should enumerate based on the type range, i.e. -32K to 32K.