<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<link rel="stylesheet" type="text/css" href="http://oldforge.etsi.org/mantis/css/default.css" />
	<script type="text/javascript"><!--
		if(document.layers) {document.write("<style>td{padding:0px;}<\/style>")}
	// --></script>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Cache-Control" content="no-cache" />
	<meta http-equiv="Pragma-directive" content="no-cache" />
	<meta http-equiv="Cache-Directive" content="no-cache" />
	<meta http-equiv="Expires" content="Tue, 17 Dec 2024 09:16:38 GMT" />
	<link rel="shortcut icon" href="/mantis/images/favicon.ico" type="image/x-icon" />
	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Text Search" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=text" />	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Issue Id" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=id" />	<title>0006934: Unnecessary restriction on match operation - ETSI's Bug Tracker</title>
<script type="text/javascript" src="/mantis/javascript/min/common.js"></script>
<script type="text/javascript">var loading_lang = "Loading...";</script><script type="text/javascript" src="/mantis/javascript/min/ajax.js"></script>
</head>
<body>
<br /><table class="width100" cellspacing="1"><tr><td class="form-title" colspan="6"><div class="center">ETSI's Bug Tracker - Part 01: TTCN-3 Core Language</div></td></tr><tr><td class="form-title" colspan="6">View Issue Details</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="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="print"><td class="print">0006934</td><td class="print">Part 01: TTCN-3 Core Language</td><td class="print">Clarification</td><td class="print">public</td><td class="print">11-03-2015 14:20</td><td class="print">07-08-2015 13:50</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Reporter</td><td class="print">Wolfgang Seka</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Assigned To</td><td class="print">Gyorgy Rethy</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Priority</td><td class="print">high</td><td class="print-category">Severity</td><td class="print">minor</td><td class="print-category">Reproducibility</td><td class="print">have not tried</td></tr><tr class="print"><td class="print-category">Status</td><td class="print">closed</td><td class="print-category">Resolution</td><td class="print">fixed</td><td class="print" colspan="2">&#160;</td></tr><tr class="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="print"><td class="print-category">Product Version</td><td class="print">v4.6.1 (published 2014-06)</td><td class="print" colspan="4">&#160;</td></tr><tr><td class="print-category">Target Version</td><td class="print">v4.8.1 (published 2016-07)</td><td class="print-category">Fixed in Version</td><td class="print">v4.8.1 (published 2016-07)</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Clause Reference(s)</td><td class="print" colspan="4">15.9, B.1.2.8</td></tr><tr class="print"><td class="print-category">Source  (company  - Author)</td><td class="print" colspan="4">MCC160 - Wolfgang</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Summary</td><td class="print" colspan="5">0006934: Unnecessary restriction on match operation</td></tr><tr class="print"><td class="print-category">Description</td><td class="print" colspan="5">By applying restrictions of B.1.2.8 on match operation a runtime error may be generated by tools when the second parameter of &quot;match&quot; is omit.</td></tr><tr class="print"><td class="print-category">Steps To Reproduce</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Additional Information</td><td class="print" colspan="5">Recently for some compiler an additional runtime check has been introduced causing runtime errors for match operations where never has been any issue before.<br />
Apart from the general question what these kinds of checks shall be good for, a correction/clarification in the core language seems to be required to prevent tool vendors from introducing this kind of checks. <br />
<br />
Clause 15.9 is describing the match operation as such and defines 2 additional restrictions:<br />
a) first parameter shall not evaluate to a template<br />
b) parameters shall be fully initialised.<br />
<br />
Nevertheless there are further restrictions in B.1.2.8 - now being used as argument to generate a runtime error:<br />
On one hand the title of B.1.2.8 is &quot;Omitting optional fields&quot; and the description is talking about omitting optional fields only. On the other hand restriction a) somehow includes templates to be omitted as such (this could be interpreted as a hint that this clause is applicable for templates and template variables too).<br />
Restriction b) says &quot;At the time of matching, it shall be applied to optional fields of record and set templates only&quot; i.e. it does not say anything about templates as such what now is used as argument to raise a runtime error.<br />
<br />
<br />
In the current case the above interpretation results in a runtime error e.g. for<br />
&#160;&#160;function f_MyMatch(integer i, template (omit) integer p_Template) { return match(i, p_Template); }<br />
when p_Template results in omit.<br />
<br />
<br />
From a user's point of view this interpretation does not provide any benefit and therefore is useless.<br />
In addition it could be argued whether the interpretation is applicable at all.<br />
<br />
<br />
=&gt; Clarification for 15.9 and/or B.1.2.8 is needed to allow operations like &quot;match(someValue, omit)&quot; (resulting in false).<br />
<br />
<br />
Furthermore there are other cases for potential problems:<br />
Assuming <br />
&#160;&#160;type record MyRecord_Type { integer a, integer b optional };<br />
<br />
&#160;&#160;var MyRecord_Type v_MyRecord := { 0, omit };<br />
<br />
=&gt;<br />
<br />
&#160;&#160;match(v_MyRecord.b, 42);     // shall not cause an error but result in false<br />
&#160;&#160;match(v_MyRecord.b, omit);   // shall not cause an error but result in true<br />
<br />
<br />
<br />
In general there is the question whether &quot;match&quot; shall cause any runtime error at all (similar changes in the core language have been done e.g. for &quot;ispresent&quot; some years ago):<br />
In case of any &quot;error&quot; match may simply return false and it is up to tool implementations to provide a user with additional information (if needed) about the mismatch by means of logging.</td></tr><tr class="print"><td class="print-category">Tags</td><td class="print" colspan="5">No tags attached.</td></tr><tr class="print"><td class="print-category">Relationships</td><td class="print" colspan="5"><table border="0" width="100%" cellpadding="0" cellspacing="1"><tr><td class="print"><span class="nowrap">related to</span>&#160;</td><td class="print">0007085</td><td class="print">closed&#160;</td><td class="print"><span class="nowrap"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></span>&#160;</td><td class="print">Placeholder for the draft of V4.8.1&#160;</td></tr></table></td></tr><tr class="print"><td class="print-category">Attached Files</td><td class="print" colspan="5"></td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr><td class="form-title">Issue History</td></tr><tr class="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></tr><tr class="print"><td class="print">11-03-2015 14:20</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=455">Wolfgang Seka</a></td><td class="print">New Issue</td><td class="print"></td></tr><tr class="print"><td class="print">12-03-2015 10:04</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0012832</td><td class="print"></td></tr><tr class="print"><td class="print">13-03-2015 12:48</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=455">Wolfgang Seka</a></td><td class="print">Note Added: 0012833</td><td class="print"></td></tr><tr class="print"><td class="print">13-03-2015 13:06</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0012834</td><td class="print"></td></tr><tr class="print"><td class="print">13-05-2015 10:45</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Project</td><td class="print">TTCN-3 Change Requests =&gt; Part 01: TTCN-3 Core Language</td></tr><tr class="print"><td class="print">13-05-2015 10:45</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Product Version</td><td class="print"> =&gt; v4.6.1 (published 2014-06)</td></tr><tr class="print"><td class="print">13-05-2015 10:45</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Target Version</td><td class="print"> =&gt; v4.8.1 (published 2016-07)</td></tr><tr class="print"><td class="print">03-08-2015 14:19</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013036</td><td class="print"></td></tr><tr class="print"><td class="print">03-08-2015 14:19</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Assigned To</td><td class="print"> =&gt; Gyorgy Rethy</td></tr><tr class="print"><td class="print">03-08-2015 14:19</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">new =&gt; assigned</td></tr><tr class="print"><td class="print">03-08-2015 14:21</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Edited: 0013036</td><td class="print">bug_revision_view_page.php?bugnote_id=13036#r134</td></tr><tr class="print"><td class="print">04-08-2015 09:41</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013046</td><td class="print"></td></tr><tr class="print"><td class="print">04-08-2015 09:47</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Resolution</td><td class="print">open =&gt; fixed</td></tr><tr class="print"><td class="print">04-08-2015 09:50</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Assigned To</td><td class="print">Gyorgy Rethy =&gt; Jacob Wieland - Spirent</td></tr><tr class="print"><td class="print">04-08-2015 09:50</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">assigned =&gt; confirmed</td></tr><tr class="print"><td class="print">04-08-2015 10:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Assigned To</td><td class="print">Jacob Wieland - Spirent =&gt; Gyorgy Rethy</td></tr><tr class="print"><td class="print">04-08-2015 10:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Status</td><td class="print">confirmed =&gt; assigned</td></tr><tr class="print"><td class="print">04-08-2015 10:57</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0013051</td><td class="print"></td></tr><tr class="print"><td class="print">04-08-2015 10:59</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0013052</td><td class="print"></td></tr><tr class="print"><td class="print">04-08-2015 13:34</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013058</td><td class="print"></td></tr><tr class="print"><td class="print">04-08-2015 13:35</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Edited: 0013058</td><td class="print">bug_revision_view_page.php?bugnote_id=13058#r143</td></tr><tr class="print"><td class="print">04-08-2015 13:55</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013059</td><td class="print"></td></tr><tr class="print"><td class="print">04-08-2015 13:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Assigned To</td><td class="print">Gyorgy Rethy =&gt; Jacob Wieland - Spirent</td></tr><tr class="print"><td class="print">04-08-2015 13:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">assigned =&gt; confirmed</td></tr><tr class="print"><td class="print">04-08-2015 14:07</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0013060</td><td class="print"></td></tr><tr class="print"><td class="print">04-08-2015 14:07</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Assigned To</td><td class="print">Jacob Wieland - Spirent =&gt; Gyorgy Rethy</td></tr><tr class="print"><td class="print">04-08-2015 14:07</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Status</td><td class="print">confirmed =&gt; assigned</td></tr><tr class="print"><td class="print">04-08-2015 17:24</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013073</td><td class="print"></td></tr><tr class="print"><td class="print">04-08-2015 17:24</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Relationship added</td><td class="print">related to 0007085</td></tr><tr class="print"><td class="print">04-08-2015 17:25</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013074</td><td class="print"></td></tr><tr class="print"><td class="print">04-08-2015 17:26</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Assigned To</td><td class="print">Gyorgy Rethy =&gt; Jacob Wieland - Spirent</td></tr><tr class="print"><td class="print">04-08-2015 17:26</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">assigned =&gt; confirmed</td></tr><tr class="print"><td class="print">05-08-2015 10:50</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0013082</td><td class="print"></td></tr><tr class="print"><td class="print">05-08-2015 10:50</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Assigned To</td><td class="print">Jacob Wieland - Spirent =&gt; Gyorgy Rethy</td></tr><tr class="print"><td class="print">05-08-2015 10:50</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Status</td><td class="print">confirmed =&gt; assigned</td></tr><tr class="print"><td class="print">06-08-2015 09:48</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013105</td><td class="print"></td></tr><tr class="print"><td class="print">06-08-2015 09:48</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Assigned To</td><td class="print">Gyorgy Rethy =&gt; Jacob Wieland - Spirent</td></tr><tr class="print"><td class="print">06-08-2015 11:23</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0013111</td><td class="print"></td></tr><tr class="print"><td class="print">06-08-2015 11:25</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Assigned To</td><td class="print">Jacob Wieland - Spirent =&gt; Gyorgy Rethy</td></tr><tr class="print"><td class="print">06-08-2015 13:07</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Edited: 0013111</td><td class="print">bug_revision_view_page.php?bugnote_id=13111#r147</td></tr><tr class="print"><td class="print">07-08-2015 10:32</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">File Added: es_20187301v040702_e.docx</td><td class="print"></td></tr><tr class="print"><td class="print">07-08-2015 10:35</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0013132</td><td class="print"></td></tr><tr class="print"><td class="print">07-08-2015 10:35</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">File Deleted: es_20187301v040702_e.docx</td><td class="print"></td></tr><tr class="print"><td class="print">07-08-2015 10:35</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">File Added: es_20187301v040702_e.docx</td><td class="print"></td></tr><tr class="print"><td class="print">07-08-2015 10:37</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0013133</td><td class="print"></td></tr><tr class="print"><td class="print">07-08-2015 10:37</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Status</td><td class="print">assigned =&gt; confirmed</td></tr><tr class="print"><td class="print">07-08-2015 13:37</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">File Deleted: es_20187301v040702_e.docx</td><td class="print"></td></tr><tr class="print"><td class="print">07-08-2015 13:40</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013146</td><td class="print"></td></tr><tr class="print"><td class="print">07-08-2015 13:40</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">confirmed =&gt; closed</td></tr><tr class="print"><td class="print">07-08-2015 13:40</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Fixed in Version</td><td class="print"> =&gt; v4.8.1 (published 2016-07)</td></tr><tr class="print"><td class="print">07-08-2015 13:50</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Edited: 0013146</td><td class="print">bug_revision_view_page.php?bugnote_id=13146#r149</td></tr></table>
<br />
<table class="width100" cellspacing="1">
<tr>
	<td class="form-title" colspan="2">
		Notes	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0012832)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				12-03-2015 10:04&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				I disagree with the analysis that the standard is ambiguous or unclear:<br />
<br />
The sentence &quot;At the time of matching, it shall be applied to optional fields of record and set templates only&quot; is clear (although we interpret this as meaning 'any entity which is allowed to be omit', i.e. also variables/parameters  with modifier template(omit)). It is not used to justify the restriction of the definition of templates, just the restriction of the use of the match operation in the same way as implicit match-operations during receive-operations to be language-consistent.<br />
<br />
The match operation is definitely &quot;a time of matching&quot;.<br />
<br />
I agree that, if the restriction is to be upheld, the same restriction should already be mentioned in the match operation restrictions section to be less &quot;distributed&quot; and confusing.<br />
<br />
In general, I, too find the restriction totally unnecessary, as using an omit, * or ifpresent template to match a non-optional entity can have no detrimental effect whatsoever (which is why our tool supported this behavior before, even though it has been non-standard-conform for a long time), even though for 'omit' it is basically just a complicated way of writing 'false', but so is 1 == 2 and that is not disallowed either.<br />
<br />
However, the conformance test suite introduced this problem by defining a testcase which checked this restriction which is why the runtime check has been introduced.<br />
<br />
The above example of function f_MyMatch to make your case is problematic as there does not seem to be any clear reason why not simply the second parameter is defined as template(value) as it is used to match a value parameter which can never be omit anyway. A more useful use case would probably be more convincing.<br />
<br />
Your example with the record type basically calls for an enlargement of the semantics of the match operation to also allow omit as the first actual parameter where at the moment only a value is allowed.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0012833)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=455">Wolfgang Seka</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				13-03-2015 12:48&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Regarding ambiguity of the core language: <br />
I don't care whether it is ambiguous, confusing, inconsistent or just useless - but it shall be corrected/changed.<br />
<br />
Regarding the example: <br />
f_MyMatch is given to illustrate the issue, not to convince anybody. But we have cases where some global variable can be omit (at the very beginning) or has a value and whenever it gets assigned a new value this shall be checked not to be the previous one (I know that this can done differently but that is not the point)<br />
<br />
Apart from the above can I interprete your feedback in that way that in general you agree to change/enhance the language to allow the given examples ??			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0012834)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				13-03-2015 13:06&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Yes, as I have stated, we interpreted it for years in the way you desire and it was only changed in the current way because of enforcing standard conformity. I think this restriction is unnecessary.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013036)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				03-08-2015 14:19&#160;&#160;&#160;
				<br />(edited on:&#32;03-08-2015 14:21)			</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				STF discussion 03-08-2015: change restriction b) from &quot;at the time of matching&quot; to &quot;at the time of matching during a receiving operation&quot;.<br />
<br />
			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013046)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-08-2015 09:41&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Proposed resolution is in the draft uploaded to CR 7085 (<a href="http://forge.etsi.org/mantis/view.php?id=7085">http://forge.etsi.org/mantis/view.php?id=7085</a> [<a href="http://forge.etsi.org/mantis/view.php?id=7085" target="_blank">^</a>]), es_20187301v040702.docx, please cross-check.<br />
<br />
One more restriction c) is added to close 15.9 that by intention is not putting new constraint to using match just saying explicitly what is agreed yesterday (omit and * can be used as template argument to match optional value fields). Please check if the text is unambiguous.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013051)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-08-2015 10:57&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Sorry, the new restriction contradicts exactly what we decided yesterday. The aim of the CR is to NOT have this restriction.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013052)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-08-2015 10:59&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				The same restriction also is mentioned for the AnyValueOrNone matching mechanism (at the time of matching).<br />
<br />
so, to be consistent, it should also be changed there (the 'at the time of matching' part is written there several times and there are even examples that need to be changed accordingly - same as for Omit)			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013058)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-08-2015 13:34&#160;&#160;&#160;
				<br />(edited on:&#32;04-08-2015 13:35)			</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Jacob, I don't understand your first comment. My understanding is that we agreed yesterday that we allow these:<br />
match(x.f, omit);//x is record/set, field f is optional<br />
match(x.f, *);<br />
[if you support them also for mandatory fields f, that's fine, but this is a TT extension]<br />
<br />
but this doesn't make sense:<br />
match(y, omit);//y is any type, not necessarily record/set<br />
match(y, *);<br />
and we haven't agreed to support them<br />
<br />
exactly this is what restriction c) says.<br />
<br />
			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013059)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-08-2015 13:55&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				es_20187301v040702_c.docx is uploaded to CR 7085. Please check it. If you don't agree, we will need a technical discussion.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013060)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-08-2015 14:07&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				yes, and it is exactly this restriction that the CR addresses. The proposal is to LIFT this restriction, i.e. to ALLOW match(x, &lt;something potentially being initialized to omit&gt;), even in case that x is not a reference to an optional field or non-present template parameter/variable.<br />
<br />
If you still do not want to allow this, then the standard does not need to be changed as that is exactly what the standard at the moment (though hidden in that &quot;at the time of matching&quot;) already does. <br />
<br />
This, though, will not address the concerns of those who issued this CR.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013073)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-08-2015 17:24&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				STF discussion 04-08-2015: allow matching any value (i.e. not only optional fields of values) to omit, like match(x,omit)//x is a value of any type;<br />
this matching will always return false.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013074)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-08-2015 17:25&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				See resolution in es_20187301v040702_b.docx in CR 7085. Please review.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013082)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				05-08-2015 10:50&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Sorry, the sentence<br />
<br />
&quot;Matching the value to the omit matching mechanism directly or by a TemplateInstance, which evaluates to omit, shall return false.&quot; <br />
<br />
seems superfluous to me as that is already subsumed by the preceding sentence.<br />
<br />
Also, it should already be described in the semantic description that the first argument may also denote an option field. <br />
<br />
Also, to be consistent, what about a template(omit) parameter/variable/template?			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013105)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				06-08-2015 09:48&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				&quot;Matching the value to the omit matching ...&quot; this sentence was the point of the whole many-days discussion. You think that e.g. an integer value can match to omit (and is unseccessful) &quot;by default&quot;, others in the STF (including me) thinks that this comparision *in general* makes no sense. For this reason at the last discussion we have decided to create an explicit rule for this case to remove any ambiguity (and allow this kind of matching using match()). This sentence is exactly the explicit rule we have agreed to add.<br />
<br />
Denote a field: this is obvious, as actual parameters can be fields. <br />
<br />
Not only template(omit) can be compared to a (non-field) value, but any template to which the matching omit is assigned when passed to match()&quot;... or by a TemplateInstance, which evaluates to omit...&quot;; passing template(omit) is open to the users and it is a way to prevent possible runtime error - but shall not be mandatory.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013111)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				06-08-2015 11:23&#160;&#160;&#160;
				<br />(edited on:&#32;06-08-2015 13:07)			</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				If you allow omit explicitly, then, of course, the semantics shall be the same matching semantics for omit as everywhere else (i.e. omit does only match an omitted field). So, of course, this additional sentence is superfluous in the context where omit is allowed also to be applicable to values (by the match operation).<br />
<br />
Also, the semantic description for match operation at the moment still talks about a VALUE. As you cannot stop reiterating, an omitted field is not a value, therefore, a field-denotation referencing an optional field is also not a value in general, but can also be omit which would make it inapplicable to the match operation in its current description. Thus, the text needs to be changed to allow values and and optional field references also for the first argument. (If I have understood correctly that you want to allow this).<br />
<br />
In your last paragraph in your last note, I think you are still talking about the right (template) argument to match(), while I am talking about the left (formerly value) argument to match().<br />
<br />
			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013132)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				07-08-2015 10:35&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				further text changes reflecting our current understanding on how the match operation should work. For consistency's sake, I also allowed template(omit) expressions as the expression argument of match as it has the same semantics as an optional value field.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013133)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				07-08-2015 10:37&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				please review text on match operation. if approved, move proposal to CR 7085 			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013146)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				07-08-2015 13:40&#160;&#160;&#160;
				<br />(edited on:&#32;07-08-2015 13:50)			</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Final text agreed in person, which is implemented in interim draft V4.7.3 uploaded to MTS's drafts area (file es_20187301v040702_e.docx of CR 7085).<br />
<br />
			</td>
		</tr>
		</table>
	</td>
</tr>
</table>
</body>
</html>
