ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0006606 | Part 01: TTCN-3 Core Language | New Feature | public | 29-08-2013 17:02 | 27-11-2013 12:42

Reporter | Jacob Wieland - Spirent |
Assigned To | Gyorgy Rethy |
Priority | normal | Severity | minor | Reproducibility | have not tried
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version |  |
Target Version | v4.6.1 (published 2014-06) | Fixed in Version | v4.6.1 (published 2014-06) |
Clause Reference(s) | 16.4.1
Source (company - Author) | Testing Technologies - Jacob Wieland

Summary | 0006606: Allow usage of deterministic external functions in snapshot evaluation

Description

At the moment, all external function calls are disallowed during snapshot/alternative evaluation.
This is to ensure determinism of the alt-statement.
However, there are lots of functions, namely deterministic functions like conversion functions or data retrieval functions which some or other reason are not reasonable to implement in TTCN-3, which would not cause a problem for this determinism.
Therefore, I propose to lessen the restriction e) in section 16.4.1. to allow deterministic external functions, i.e. external functions which a) always produce the same output for the same input and b) also adhere to the same restrictions as non-external functions at the same place would have to follow.

Steps To Reproduce |

Additional Information

Using the modifier construction, external functions could be declared as being 'deterministic', as a hint for both the implementer of the external function as well as the tool which could opt for either optimizing such function calls with memoization or check them for determinism with the same technique (at least at development time) and produce runtime errors if non-determinism is detected.
Then, tools can choose to warn at compile time about usages of external functions which are not marked as deterministic when used in the special places (or dependent on user preference, disallow such uses altogether which would still be backward compatible).
Of course, normal functions should also be able to be tagged/modified as deterministic so that a tool can be forced to check the adherence to these restrictions for that function.

Tags | No tags attached.

Relationships

related to | 0006318 | closed | Ina Schieferdecker | Assignment of global templates and module parameters

Attached Files

CR6606.doc (236,544) 09-10-2013 10:38
http://oldforge.etsi.org/mantis/file_download.php?file_id=2906&type=bug
CR6606_v2.doc (239,104) 26-11-2013 17:33
http://oldforge.etsi.org/mantis/file_download.php?file_id=2942&type=bug
CR6606_v3.doc (239,616) 26-11-2013 17:49
http://oldforge.etsi.org/mantis/file_download.php?file_id=2944&type=bug
CR6606_v4.doc (240,640) 27-11-2013 12:41
http://oldforge.etsi.org/mantis/file_download.php?file_id=2946&type=bug

Issue History
Date Modified | Username | Field | Change
29-08-2013 17:02 | Jacob Wieland - Spirent | New Issue |
29-08-2013 17:02 | Jacob Wieland - Spirent | Clause Reference(s) | => 16.4.1
29-08-2013 17:02 | Jacob Wieland - Spirent | Source (company - Author) | => Testing Technologies - Jacob Wieland
30-08-2013 16:26 | Jacob Wieland - Spirent | Status | new => assigned
30-08-2013 16:26 | Jacob Wieland - Spirent | Assigned To | => Jacob Wieland - Spirent
09-10-2013 10:38 | Jacob Wieland - Spirent | File Added: CR6606.doc |
09-10-2013 10:39 | Jacob Wieland - Spirent | Note Added: 0011722 |
09-10-2013 10:39 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Ina Schieferdecker
09-10-2013 10:39 | Jacob Wieland - Spirent | Status | assigned => confirmed
09-10-2013 10:53 | Jacob Wieland - Spirent | Relationship added | related to 0006318
10-10-2013 19:23 | Ina Schieferdecker | Project | TTCN-3 Change Requests => Part 01: TTCN-3 Core Language
26-11-2013 17:33 | Ina Schieferdecker | Note Added: 0011840 |
26-11-2013 17:33 | Ina Schieferdecker | File Added: CR6606_v2.doc |
26-11-2013 17:33 | Ina Schieferdecker | Status | confirmed => assigned
26-11-2013 17:33 | Ina Schieferdecker | Assigned To | Ina Schieferdecker => Jacob Wieland - Spirent
26-11-2013 17:49 | Jacob Wieland - Spirent | File Added: CR6606_v3.doc |
26-11-2013 17:50 | Jacob Wieland - Spirent | Note Added: 0011842 |
26-11-2013 17:50 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Gyorgy Rethy
26-11-2013 17:50 | Jacob Wieland - Spirent | Status | assigned => confirmed
27-11-2013 12:41 | Ina Schieferdecker | File Added: CR6606_v4.doc |
27-11-2013 12:42 | Ina Schieferdecker | Note Added: 0011845 |
27-11-2013 12:42 | Ina Schieferdecker | Status | confirmed => resolved
27-11-2013 12:42 | Ina Schieferdecker | Resolution | open => fixed
27-11-2013 12:42 | Ina Schieferdecker | Fixed in Version | => v4.6.1 (published 2014-06)
27-11-2013 12:42 | Ina Schieferdecker | Target Version | => v4.6.1 (published 2014-06)
27-11-2013 12:42 | Ina Schieferdecker | Status | resolved => closed

Notes

(0011722)
Jacob Wieland - Spirent
09-10-2013 10:39

please review

(0011840)
Ina Schieferdecker
26-11-2013 17:33

small additions - please check

(0011842)
Jacob Wieland - Spirent
26-11-2013 17:50

changed BNF nonterminal to DeterministicModifier, also introduced that nomenclature in the main text.

(0011845)
Ina Schieferdecker
27-11-2013 12:42

as proposed with some editorial changes in v4