Bug 665 - unbounded int parameter creates unreasonably large structures
Summary: unbounded int parameter creates unreasonably large structures
Status: ASSIGNED
Alias: None
Product: UPPAAL
Classification: Unclassified
Component: Engine (show other bugs)
Version: 4.1.22
Hardware: All All
: P5 enhancement
Assignee: Marius Mikučionis
URL:
Depends on:
Blocks:
 
Reported: 2019-09-04 11:18 CEST by Marius Mikučionis
Modified: 2019-09-12 13:14 CEST (History)
1 user (show)

See Also:
Architecture:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.