ETSI's Bug Tracker - Ext Pack: Config & Deployment Support (ES 202 781)
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0006451 | Ext Pack: Config & Deployment Support (ES 202 781) | Clarification | public | 22-03-2013 12:23 | 07-01-2015 09:37

Reporter | Tomas Urban |
Assigned To | Jens Grabowski |
Priority | normal | Severity | minor | Reproducibility | have not tried
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version | v1.2.1 (published 2013-06) |
Target Version | v1.4.1 (published 2015-06) | Fixed in Version | v1.4.1 (published 2015-06) |
Clause Reference(s) | 5.5, 5.6
Source (company - Author) | Elvior
TS version |

Summary | 0006451: Invalid notes in static create, map and connect

Description

The static create, map and connect operations contain notes saying that a static component, mapping or connection can be created or established even in cases when the static keyword is missing according to the context from which they are executed (note 2 in 5.5, note in 5.6).
However, there's no rule describing this behaviour in the specification (the note itself doesn't constitute a rule.) On contrary, the specification clearly stipulates that the static keyword is mandatory for creating stating components, mappings and connections:
"The creation of static test components shall be indicated by the additional keyword static in the create operation." (5.5)
"The establishment of static connections and static mappings shall be indicated by the additional keyword static in connect and the map operations." (5.6)
Yet another indication is hidden in 5.2: there's a rule saying that non-static create, map or connect is not allowed in configuration functions. This rule would make no sense if it was possible to interpret create, map or connect operations without the static keyword as static according to the execution context.
Proposal:
The notes shall be removed. Static create, map and connect operation shall always contain the keyword static. If the keyword is not present, the operations use the rules from the core language specification (i.e. creating non-static components, mappings and connections).

Steps To Reproduce |
Additional Information |
Tags | No tags attached.
Relationships |
Attached Files | CR6451_v1.docx (50,068) 08-10-2014 16:28 http://oldforge.etsi.org/mantis/file_download.php?file_id=3121&type=bug

Issue History
Date Modified | Username | Field | Change
22-03-2013 12:23 | Tomas Urban | New Issue |
22-03-2013 12:23 | Tomas Urban | Clause Reference(s) | => 5.5, 5.6
22-03-2013 12:23 | Tomas Urban | Source (company - Author) | => Elvior
22-03-2013 12:23 | Tomas Urban | TS version | =>
08-07-2013 15:11 | Jens Grabowski | Status | new => assigned
08-07-2013 15:11 | Jens Grabowski | Assigned To | => Jens Grabowski
08-07-2013 18:04 | Gyorgy Rethy | Target Version | => v1.3.1 (published 2014-06)
29-11-2013 13:21 | Jacob Wieland - Spirent | Note Added: 0011872 |
29-11-2013 13:21 | Jacob Wieland - Spirent | Status | assigned => confirmed
29-11-2013 15:04 | Tomas Urban | Note Added: 0011881 |
02-12-2013 12:52 | Jacob Wieland - Spirent | Note Added: 0011882 |
02-12-2013 13:58 | Tomas Urban | Note Added: 0011883 |
26-12-2013 13:24 | Jens Grabowski | Note Added: 0011896 |
26-12-2013 13:25 | Jens Grabowski | Status | confirmed => assigned
08-04-2014 12:07 | Jens Grabowski | Assigned To | Jens Grabowski => Tomas Urban
08-04-2014 17:34 | Gyorgy Rethy | Product Version | => v1.2.1 (published 2013-06)
08-04-2014 17:34 | Gyorgy Rethy | Target Version | v1.3.1 (published 2014-06) => v1.4.1 (published 2015-06)
08-10-2014 16:28 | Tomas Urban | File Added: CR6451_v1.docx |
08-10-2014 16:29 | Tomas Urban | Note Added: 0012300 |
08-10-2014 16:29 | Tomas Urban | Status | assigned => resolved
08-10-2014 16:29 | Tomas Urban | Resolution | open => fixed
08-10-2014 16:29 | Tomas Urban | Assigned To | Tomas Urban => Jens Grabowski
07-01-2015 09:37 | Jens Grabowski | Note Added: 0012665 |
07-01-2015 09:37 | Jens Grabowski | Status | resolved => closed
07-01-2015 09:37 | Jens Grabowski | Fixed in Version | => v1.4.1 (published 2015-06)

Notes

(0011872)
Jacob Wieland - Spirent
29-11-2013 13:21

I think this CR is invalid. The intention of the standard is clear that all components, connections and mappings done by a configuration or functions called from a configuration are static. The static keyword is optional to make this explicit.
That way, a function can be written that establishes a (part of a) configuration which can be used either from a static configuration or from a testcase. Using the static keyword restricts this to be usable only from a configuration.
Basically, this is what NOTE 2 in 5.5 and the NOTE in 5.6. try to clarify.

(0011881)
Tomas Urban
29-11-2013 15:04

I am afraid that you missed my point. I actually have nothing against context-specific meaning of the map/connect statement. The problem is that the current specification technically doesn't allow that. The first rule of 5.6 makes the use of the "static" keyword mandatory, because there's no other rule allowing creation of static mapping/connection without this keyword. Note as such doesn't constitute a rule.
Since I generally support explicit syntax, because it makes easier to discover errors in compilation time, my original proposal went in that direction. However, I think the scenario you described is completely justified, so if the STF decides in favour of optional use of the static keyword, I won't have any major objections (the only one I can think of is that one cannot explicitly mark a mapping/connection statement as non-static). Nevertheless, even in this case, it is required to change the specification so that:
1. The first sententence of 5.6 mentions that the static keyword is optional
2. There's a binding rule (not a note) saying that the map/connect operation without the "static" keyword is context-dependent
3. The same changes should be applied to 5.5
(4. As an option for explicit marking of non-static map/connect/create, it would be possible to use two keywords: "not static")

(0011882)
Jacob Wieland - Spirent
02-12-2013 12:52

Actually, I think marking a thing as non-static does not make sense as it is forbidden to do so semantically in the configurations and automatically true in all other places (where static is forbidden). So, in my opinion, the static keyword is pretty much superfluous anyway. If there is a rule demanding it (which I have not seen, yet), then the example which uses both statements with and without static keyword needs to be amended as well, if it shall remain mandatory.

(0011883)
Tomas Urban
02-12-2013 13:58

The following rules make the use of the static keyword mandatory:
5.5: The creation of static test components shall be indicated by the additional keyword static in the create operation.
5.6: The establishment of static connections and static mappings shall be indicated by the additional keyword static in connect and the map operations.
The standard doesn't contain any explicit exceptions (if notes are ignored), so my in opinion, these rules clearly say that the keyword must be present to create a static component/mapping/connection.

(0011896)
Jens Grabowski
26-12-2013 13:24

Discussion needs to be continued in 2014

(0012300)
Tomas Urban
08-10-2014 16:29

Static keyword changed to optional according to Jacob's proposal. Please check.

(0012665)
Jens Grabowski
07-01-2015 09:37

Implemented as proposed by Tomas.