<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<blockquote style="border-color: rgb(200, 200, 200); border-left: 3px solid rgb(200, 200, 200); padding-left: 1ex; margin-left: 0.8ex; color: rgb(102, 102, 102);" itemscope="" itemtype="https://schemas.microsoft.com/QuotedText">
<span>It depends on how much "C++ + OpenCL" is like a dialect of C++ and how much it's like a brand-new language.</span>
<div><br>
</div>
<div>Objective-C++ is maybe in a vaguely similar situation, and it does get its own extension (.mm). But Objective-C++ is also:</div>
<div>- explicitly a cross between two "equally first-class" languages Objective-C and C++, each of which already had its own extension (.m and .cpp/.cc)</div>
<br>
<div><span>- perhaps thankfully moribund and maybe this is our chance to do something different?</span><br>
</div>
</blockquote>
<div><br>
</div>
I think the comparison to Objective-C++ is probably the best way to position
<div>C++ for OpenCL. OpenCL C also had a distinct extension from C. But I somehow
</div>
<div>find it natural to add a separate one for C++ for OpenCL. I guess the advantage
</div>
<div>is even if the language might evolve and more versions will likely be added </div>
<div>we can still choose the default one that can work for most cases. For example,
</div>
<div>we can always reset it to the latest one or most used one. Although I </div>
<div>appreciate this doesn't always happen. For OpenCL C we still use the first </div>
<div>version as default. However, I do admit it has most of the common </div>
<div>functionality. </div>
<div><br>
</div>
<div>There are also other useful aspects that are not compiler related though like
</div>
<div>build system or syntax highlight that can use the file extensions. It makes </div>
<div>sense if they work with the same standardized extension rather than using </div>
different ones.<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Arthur O'Dwyer <arthur.j.odwyer@gmail.com><br>
<b>Sent:</b> 17 February 2021 20:43<br>
<b>To:</b> Anastasia Stulova <Anastasia.Stulova@arm.com><br>
<b>Cc:</b> clang developer list <cfe-dev@lists.llvm.org>; nd <nd@arm.com>; Andrzej Warzynski <Andrzej.Warzynski@arm.com><br>
<b>Subject:</b> Re: [cfe-dev] [RFC] New file extension for compiling C++ for OpenCL sources</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">On Wed, Feb 17, 2021 at 1:56 PM Anastasia Stulova <<a href="mailto:Anastasia.Stulova@arm.com">Anastasia.Stulova@arm.com</a>> wrote:<br>
</div>
<div class="x_gmail_quote">
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-size:12pt">> Is C++-with-OpenCL really so different from the situation with C++ today?</span><br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
[...]</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Do I understand it correctly that you suggest the filename suffixes are not that useful and we should abandon the idea?</div>
</div>
</blockquote>
<div><br>
</div>
<div>If I ran the world, yes, definitely that is my opinion.</div>
<div>However, mine is quite likely to be an <i>ill-informed</i> opinion, because I don't know basically anything about the OpenCL ecosystem or even OpenCL itself.</div>
<div>So you shouldn't let me run the world. :)</div>
<div> <br>
</div>
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-size:12pt">Then should this apply to all or some languages?</span></div>
</div>
</blockquote>
<div><br>
</div>
<div>It depends on how much "C++ + OpenCL" is like a dialect of C++ and how much it's like a brand-new language.</div>
<div><br>
</div>
<div>Objective-C++ is maybe in a vaguely similar situation, and it does get its own extension (.mm). But Objective-C++ is also:</div>
<div>- explicitly a cross between two "equally first-class" languages Objective-C and C++, each of which already had its own extension (.m and .cpp/.cc)</div>
<div>- perhaps thankfully moribund and maybe this is our chance to do something different?</div>
<div><br>
</div>
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-size:12pt">> Is there any appetite to create a driver alias such as "clangcl", analogous to what we do today with "clang++"?</span><br>
</div>
</div>
</blockquote>
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span><br>
</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span>We had no plans for this yet.</span></div>
</div>
</blockquote>
<div><br>
</div>
<div>I guess the typical reason to create a new driver is if you need it to do something special at link-time, when the original filenames won't be available. E.g.</div>
<div>    clang x.o y.o -o program.exe</div>
<div>and</div>
<div>    clang++ x.o y.o -o program.exe</div>
<div>pass different flags to the linker. I don't know if this situation applies to OpenCL.</div>
<div><br>
</div>
<div>–Arthur</div>
</div>
</div>
</div>
</body>
</html>