  

<table class="width100" style="width:100%;" data-cellspacing="1">
<colgroup>
<col style="width: 16%" />
<col style="width: 16%" />
<col style="width: 16%" />
<col style="width: 16%" />
<col style="width: 16%" />
<col style="width: 16%" />
</colgroup>
<tbody>
<tr class="odd">
<td colspan="6" class="form-title"><div class="center">
ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
</div></td>
</tr>
<tr class="even">
<td colspan="6" class="form-title">View Issue Details</td>
</tr>
<tr class="odd">
<td colspan="6" class="print-spacer"><hr /></td>
</tr>
<tr class="even print-category">
<td class="print" width="16%">ID</td>
<td class="print" width="16%">Project</td>
<td class="print" width="16%">Category</td>
<td class="print" width="16%">View Status</td>
<td class="print" width="16%">Date Submitted</td>
<td class="print" width="16%">Last Update</td>
</tr>
<tr class="odd print">
<td class="print">0000370</td>
<td class="print">Part 01: TTCN-3 Core Language</td>
<td class="print">Technical</td>
<td class="print">public</td>
<td class="print">22-11-2006 15:55</td>
<td class="print">12-12-2008 11:56</td>
</tr>
<tr class="even">
<td colspan="6" class="print-spacer"><hr /></td>
</tr>
<tr class="odd print">
<td class="print-category">Reporter</td>
<td class="print">Stephan Schulz</td>
<td colspan="4" class="print"> </td>
</tr>
<tr class="even print">
<td class="print-category">Assigned To</td>
<td class="print"></td>
<td colspan="4" class="print"> </td>
</tr>
<tr class="odd print">
<td class="print-category">Priority</td>
<td class="print">high</td>
<td class="print-category">Severity</td>
<td class="print">major</td>
<td class="print-category">Reproducibility</td>
<td class="print">always</td>
</tr>
<tr class="even print">
<td class="print-category">Status</td>
<td class="print">closed</td>
<td class="print-category">Resolution</td>
<td class="print">won't fix</td>
<td colspan="2" class="print"> </td>
</tr>
<tr class="odd print">
<td class="print-category">Platform</td>
<td class="print"></td>
<td class="print-category">OS</td>
<td class="print"></td>
<td class="print-category">OS Version</td>
<td class="print"></td>
</tr>
<tr class="even print">
<td class="print-category">Product Version</td>
<td class="print">v3.1.1 (published 2005-06)</td>
<td colspan="4" class="print"> </td>
</tr>
<tr class="odd">
<td class="print-category">Target Version</td>
<td class="print">v3.2.1 (published 2007-02)</td>
<td class="print-category">Fixed in Version</td>
<td class="print"></td>
<td colspan="2" class="print"> </td>
</tr>
<tr class="even print">
<td class="print-category">Clause Reference(s)</td>
<td colspan="4" class="print">5.2.1.0</td>
<td></td>
</tr>
<tr class="odd print">
<td class="print-category">Source (company - Author)</td>
<td colspan="4" class="print">Ina Schieferdecker FOKUS</td>
<td></td>
</tr>
<tr class="even">
<td colspan="6" class="print-spacer"><hr /></td>
</tr>
<tr class="odd print">
<td class="print-category">Summary</td>
<td colspan="5" class="print">0000370: Component Parameters</td>
</tr>
<tr class="even print">
<td class="print-category">Description</td>
<td colspan="5" class="print">Component parameters are handled
differently than port and timer parameters. The
ï¿½architectural/configurationï¿½ objects should all be handled the
same. Either they are considered to be references (then, all should be
always in parameters) or they are considered to be objects (then, all
should be always inout parameters). One of the choices should be taken
but not a mix as it is currently done:<br />
5.2.1.0:<br />
By default, all actual parameters of basic types, basic string types,
user-defined structured types, address type and component type are
passed by value. This may optionally be denoted by the keyword in. To
pass parameters of the mentioned types by reference the keywords out or
inout shall be used.<br />
Timers and ports are always passed by reference and are identified by
the keywords timer and port. The keyword inout may optionally be used to
denote passing by reference<br />
</td>
</tr>
<tr class="odd print">
<td class="print-category">Steps To Reproduce</td>
<td colspan="5" class="print"></td>
</tr>
<tr class="even print">
<td class="print-category">Additional Information</td>
<td colspan="5" class="print">The smallest change to TTCN-3 is to make
component parameters also inout parameters:<br />
<br />
By default, all actual parameters of basic types, basic string types,
user-defined structured types, and address type and component type are
passed by value. This may optionally be denoted by the keyword in. To
pass parameters of the mentioned types by reference the keywords out or
inout shall be used.<br />
Timers Components, timers and ports are always passed by reference.
Timer parameters and are identified by the keywords timer and port. The
keyword inout may optionally be used to denote passing by
reference.<br />
</td>
</tr>
<tr class="odd print">
<td class="print-category">Tags</td>
<td colspan="5" class="print">No tags attached.</td>
</tr>
<tr class="even print">
<td class="print-category">Relationships</td>
<td colspan="5" class="print"></td>
</tr>
<tr class="odd print">
<td class="print-category">Attached Files</td>
<td colspan="5" class="print"></td>
</tr>
<tr class="even">
<td colspan="6" class="print-spacer"><hr /></td>
</tr>
<tr class="odd">
<td class="form-title">Issue History</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="even print-category">
<td class="row-category-history">Date Modified</td>
<td class="row-category-history">Username</td>
<td class="row-category-history">Field</td>
<td class="row-category-history">Change</td>
<td></td>
<td></td>
</tr>
<tr class="odd print">
<td class="print">22-11-2006 15:55</td>
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan
Schulz</a></td>
<td class="print">New Issue</td>
<td class="print"></td>
<td></td>
<td></td>
</tr>
<tr class="even print">
<td class="print">22-11-2006 15:55</td>
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan
Schulz</a></td>
<td class="print">Clause Reference(s)</td>
<td class="print">=&gt; 5.2.1.0</td>
<td></td>
<td></td>
</tr>
<tr class="odd print">
<td class="print">22-11-2006 15:55</td>
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan
Schulz</a></td>
<td class="print">Source (company - Author)</td>
<td class="print">=&gt; Ina Schieferdecker FOKUS</td>
<td></td>
<td></td>
</tr>
<tr class="even print">
<td class="print">22-11-2006 15:56</td>
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan
Schulz</a></td>
<td class="print">Status</td>
<td class="print">new =&gt; closed</td>
<td></td>
<td></td>
</tr>
<tr class="odd print">
<td class="print">22-11-2006 15:56</td>
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan
Schulz</a></td>
<td class="print">Note Added: 0000291</td>
<td class="print"></td>
<td></td>
<td></td>
</tr>
<tr class="even print">
<td class="print">22-11-2006 15:56</td>
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan
Schulz</a></td>
<td class="print">Resolution</td>
<td class="print">open =&gt; won't fix</td>
<td></td>
<td></td>
</tr>
<tr class="odd print">
<td class="print">12-12-2008 11:56</td>
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina
Schieferdecker</a></td>
<td class="print">Target Version</td>
<td class="print">=&gt; Edition 3.2.1</td>
<td></td>
<td></td>
</tr>
<tr class="even print">
<td class="print">12-12-2008 11:56</td>
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina
Schieferdecker</a></td>
<td class="print">Description Updated</td>
<td class="print"></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>

  

<table class="width100" data-cellspacing="1">
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<tbody>
<tr class="odd">
<td colspan="2" class="form-title">Notes</td>
</tr>
<tr class="even">
<td colspan="2" class="print-spacer"><hr /></td>
</tr>
<tr class="odd">
<td class="nopad" data-valign="top" width="20%"><table class="hide"
data-cellspacing="1">
<tbody>
<tr class="odd">
<td class="print">(0000291)</td>
</tr>
<tr class="even">
<td class="print"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan
Schulz</a>   </td>
</tr>
<tr class="odd">
<td class="print">22-11-2006 15:56   </td>
</tr>
</tbody>
</table></td>
<td class="nopad" data-valign="top" width="85%"><table class="hide"
data-cellspacing="1">
<colgroup>
<col style="width: 100%" />
</colgroup>
<tbody>
<tr class="odd">
<td class="print">For the following reasons, I recommend rejecting this
CR:<br />
<br />
• The handling of component references is more comparable to the
handling of values data types than the handling of ports and timers. It
is allowed to have variables of component references, but it is not
allowed to have variables of ports and timers. Therefore, component
types should be handled more like data types than port types or
timers.<br />
• The statement ports and timers are passed by reference is not
completely correct. Correct is that names (= references) of ports and
timers are passed in by constant value, i.e., you are not allowed to
change the value (= references) of these names even within the called
function (Note: setting or resetting a timer changes the status of a
timer object but the name of the timer, which may be passed in, does not
change), which is possible when passing in a variable of a component
type or integer. In fact, timers and ports are more passed in like
values than like references.<br />
• The call by value mechanism is a programming mechanism, which supports
secure programming. I.e., it avoids the unwanted change of values as a
side effect within a function. Disallowing, this mechanism for component
references just because some people think that timers are closer to
components than integer is very strange.</td>
</tr>
</tbody>
</table></td>
</tr>
</tbody>
</table>
