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

ID | Project | Category | View Status | Date Submitted | Last Update
0005874 | Part 01: TTCN-3 Core Language | Clarification | public | 30-03-2011 14:15 | 01-07-2011 17:10

Reporter | Claude Desroches |
Assigned To | Ina Schieferdecker |
Priority | low | Severity | minor | Reproducibility | always
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version | v4.1.1 (published 2009-06) |
Target Version | v4.3.2 (interim 2011) | Fixed in Version | v4.3.2 (interim 2011) |
Clause Reference(s) | 8.1 Definition of a module and A.1.6.0 TTCN-3 module
Source (company - Author) | BluKaktus Communications

Summary | 0005874: language keyword in module definition allows multiple TTCN-3 version FreeText identifiers.

Description

TTCN-3 Version 4.2.1
In 8.1 Definition of a module
module ModuleIdentifier [ language FreeText { "," FreeText } ] "{"
[ ModuleDefinitionsPart ]
[ ModuleControlPart ]
"}"
nothing prevents a user frpm writing something like:
module myModule language "TTCN-3:2001", "TTCN-3:2010", "TTCN-3:2009"
{
}
Most tools would probably generate an error, however, it might be better to prevent such things.
Further if you have two modules, one using "TTCN-3:2001" and the other using
"TTCN-3:2010", what should happen if you import types from one module into the other? Will language syntax and semantics for the importing module be used or will the syntax and semantics from the imported module be adopted.
To my knowledge, I don't believe there is any tool on the market which supports multiple versions of TTCN-3 within the same project.
Is the following permitted?
module myModule language "TTCN-3:2010", "TTCN-3:2010", "TTCN-3:2010"
{
}
(from the grammar point of view it is permitted).
What should happen if one enters:
module myModule language "TTCN-3:2222" // or some other illegal value?
{
}
There is no information related to processing of the strings and verification of their validity.
What would that actually mean?
For a compiler this would likely be impossible to resolve because of possibly conflicts which lie in differing grammar defintions.
What should a compiler do? take the first FreeText string or the last one or ignore all of them and choose the current version?
"TTCN-3:2001" - to be used with modules complying with version 1.1.2 of the present document (see annex H).
"TTCN-3:2003" - to be used with modules complying with version 2.2.1 of the present document (see annex H).
"TTCN-3:2005" - to be used with modules complying with version 3.1.1 of the present document (see annex H).
"TTCN-3:2007" - to be used with modules complying with version 3.2.1 of the present document (see annex H).
"TTCN-3:2008" - to be used with modules complying with version 3.3.2 of the present document (see annex H).
"TTCN-3:2008 Amendment 1" - to be used with modules complying with version 3.4.1 of the present document
(see annex H).
"TTCN-3:2009" - to be used with modules complying with version 4.1.1 of the present document (see annex H).
"TTCN-3:2010" - to be used with modules complying with the present document.

Steps To Reproduce |

Additional Information

1) Clarify the text in section 8.1
2) Augment the grammar rules 1 - 8 with static semantic rule(s)
to only allow for one TTCN-3 version in a given module.
3) Modify the grammar to limit one to
a single TTCN-3 version for a given TTCN-3 module (excluding packages)
Actually, one could consider adding the keyword 'package' followed
by any valid package or proprietary packages.
Change:
module ModuleIdentifier [ language FreeText { "," FreeText } ] "{"
[ ModuleDefinitionsPart ]
[ ModuleControlPart ]
"}"
module ModuleIdentifier
[ language FreeText ";" ]
[ package FreeText "," { FreeText } ]
"{"
[ ModuleDefinitionsPart ]
[ ModuleControlPart ]
"}"

Tags | No tags attached.
Relationships |
Attached Files |

Issue History
Date Modified | Username | Field | Change
30-03-2011 14:15 | Claude Desroches | New Issue |
30-03-2011 14:15 | Claude Desroches | Clause Reference(s) | => 8.1 Definition of a module and A.1.6.0 TTCN-3 module
30-03-2011 14:15 | Claude Desroches | Source (company - Author) | => BluKaktus Communications
24-05-2011 14:30 | Gyorgy Rethy | Note Added: 0010014 |
24-05-2011 14:30 | Gyorgy Rethy | Status | new => assigned
24-05-2011 14:30 | Gyorgy Rethy | Assigned To | => Ina Schieferdecker
24-05-2011 19:07 | Gyorgy Rethy | Target Version | => Edition 4.3.2 (interim)
24-05-2011 19:16 | Gyorgy Rethy | Priority | normal => low
25-05-2011 15:40 | Ina Schieferdecker | Note Added: 0010059 |
25-05-2011 15:40 | Ina Schieferdecker | Note Added: 0010060 |
25-05-2011 15:41 | Ina Schieferdecker | Assigned To | Ina Schieferdecker => Gyorgy Rethy
25-05-2011 15:46 | Gyorgy Rethy | Note Added: 0010061 |
25-05-2011 15:47 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Ina Schieferdecker
25-05-2011 16:02 | Ina Schieferdecker | Note Added: 0010064 |
25-05-2011 16:02 | Ina Schieferdecker | Status | assigned => resolved
25-05-2011 16:02 | Ina Schieferdecker | Resolution | open => fixed
01-07-2011 17:09 | Ina Schieferdecker | Note Added: 0010195 |
01-07-2011 17:10 | Ina Schieferdecker | Status | resolved => closed
01-07-2011 17:10 | Ina Schieferdecker | Fixed in Version | => Edition 4.3.2 (interim)

Notes

(0010014)
Gyorgy Rethy
24-05-2011 14:30

Add an explicit restriction to clause 8.1, limiting language strings one per core standard version and package. The additional package keyword proposal is not supported.

(0010059)
Ina Schieferdecker
25-05-2011 15:40

Proposal to define in 8.1:
"Restrictions
In addition to the general static rules of TTCN 3 given in clause 5, the following restrictions apply:
a) At most one language string per module should be given to define the language version in which the module is defined.
b) Per extension package, at most one extension package string of that extension package should be used to define its version used by the module."

(0010060)
Ina Schieferdecker
25-05-2011 15:40

Please check.

(0010061)
Gyorgy Rethy
25-05-2011 15:46

Rule A should say "core" language; should -> shall:
a) At most one language string per module shall be given to define the core language version in which the module is defined.
b) Per extension package, at most one extension package string of that extension package shall be used by the module.
(package string do two things: require a given package be supported, defines/requires the version of that package; for this reason "to define its version used " is deleted as was limiting)

(0010064)
Ina Schieferdecker
25-05-2011 16:02

One more minor agreed change: "b) Per extension package, at most one extension package string of that extension package shall be used by a module."

(0010195)
Ina Schieferdecker
01-07-2011 17:09

Implemented as proposed. In addition, language tag for v4.3.1 and annex H extended as needed.