<html><body>
<p><font size="2" face="sans-serif">It's interesting and ironic that one of the objections to attributes was that they would provide a portable syntax for non-portable semantics.</font><br>
<br>
<font size="2" face="sans-serif">First, the semantics we are proposing for exception handling </font><font size="2" face="sans-serif"><u>would</u></font><font size="2" face="sans-serif"> be portable (with the possibility of extensions where vendors have additional exception handling capabilities).</font><br>
<br>
<font size="2" face="sans-serif">Second, the main alternative we are considering is to use pragmas. They are the prime example of a portable syntax for non-portable semantics!</font><br>
<font size="2" face="sans-serif"> - Any compiler can add any pragmas it wants, with any intra-pragma syntax and any semantics it wants.</font><br>
<font size="2" face="sans-serif"> - Any compiler is allowed to ignore any pragmas it doesn't understand or even those it does, with no warning.</font><br>
<font size="2" face="sans-serif"> (That's one of my concerns about using them for exception handling, where it's important that they </font><font size="2" face="sans-serif"><u>not</u></font><font size="2" face="sans-serif"> be ignored.)</font><br>
<br>
<font size="2" face="sans-serif">- Ian McIntosh IBM Canada Lab Compiler Back End Support and Development<br>
</font><br>
<font size="1" color="#800080" face="sans-serif">----- Forwarded by Ian McIntosh/Toronto/IBM</font><font size="1" color="#800080" face="sans-serif"> on 2014-09-17 06:24 PM</font><font size="1" color="#800080" face="sans-serif"> -----</font><br>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">From:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">David Hough CFP <pcfp@oakapple.net></font></td></tr>
<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">To:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">cfp-interest@ucbtest.org, </font></td></tr>
<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">Date:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">2014-07-28 05:04 PM</font></td></tr>
<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">Subject:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">Re: [Cfp-interest] exploring __attribute__</font></td></tr>
<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">Sent by:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:1__=0ABBF7C5DFE88A748f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">cfp-interest-bounces@oakapple.net</font></td></tr>
</table>
<hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br>
<br>
<br>
<tt><font size="2"> <br>
> </font></tt><tt><font size="2"><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1422.pdf">http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1422.pdf</a></font></tt><tt><font size="2"><br>
<br>
It looks like some of the objection was to having a portable syntax for<br>
non-portable semantics. The things that we propose would either be<br>
semantics mandatory for all implementations (alt exception handling)<br>
or pragma-like permissions for optimizations and expression evaluations.<br>
<br>
Would we really want to have real keywords in the language for all<br>
the things we'd want to do? That seems to be a heavy burden unless<br>
the scope is restricted to a context like pragma or attribute.<br>
<br>
In the mandatory, as opposed to permission, category, there are<br>
<br>
on exception goto<br>
<br>
on exception substitute<br>
<br>
on underflow abrupt<br>
<br>
that we really need to support somehow. #pragma, __attribute__,<br>
and try/catch already seem to have an unhappy history with the C<br>
Committee.<br>
<br>
_______________________________________________<br>
Cfp-interest mailing list<br>
Cfp-interest@oakapple.net<br>
</font></tt><tt><font size="2"><a href="http://mailman.oakapple.net/mailman/listinfo/cfp-interest">http://mailman.oakapple.net/mailman/listinfo/cfp-interest</a></font></tt><tt><font size="2"><br>
<br>
</font></tt><br>
</body></html>