220 14336 <74333631-4806-48a5-914a-0f186b8c8026@isocpp.org> article
Path: news.gmane.org!not-for-mail
From: gmisocpp@gmail.com
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: #pragma once
Date: Thu, 30 Oct 2014 16:54:11 -0700 (PDT)
Lines: 110
Approved: news@gmane.org
Message-ID: <74333631-4806-48a5-914a-0f186b8c8026@isocpp.org>
References: <3d0ab5b0-73d9-434a-9ae4-cd47d8275590@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_9_1051233432.1414713252041"
X-Trace: ger.gmane.org 1414713266 30958 80.91.229.3 (30 Oct 2014 23:54:26 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Thu, 30 Oct 2014 23:54:26 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBCM3TRNUXUDBBJM7ZORAKGQE34QJZ7Y@isocpp.org Fri Oct 31 00:54:20 2014
Return-path: <std-proposals+bncBCM3TRNUXUDBBJM7ZORAKGQE34QJZ7Y@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-pd0-f200.google.com ([209.85.192.200])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBCM3TRNUXUDBBJM7ZORAKGQE34QJZ7Y@isocpp.org>)
	id 1XjzXj-0000JR-B8
	for gclcip-std-proposals@m.gmane.org; Fri, 31 Oct 2014 00:54:15 +0100
Original-Received: by mail-pd0-f200.google.com with SMTP id r10sf30611708pdi.7
        for <gclcip-std-proposals@m.gmane.org>; Thu, 30 Oct 2014 16:54:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=date:from:to:message-id:in-reply-to:references:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe
         :content-type;
        bh=WC26I3qWeS0vcdWOwU1WOL1YvZL5O/9Mqu7sNK1pnu0=;
        b=wSWQKORPIRDVDtSRSxgTLl78rTYpAzQaTqfDaB8/K9K3bOIEjfeNqOATMpXa+WxwdA
         8fM3rA3WHHLJvZIZYgrA4NLG7ZTifxNh4WEv93jeG7fZudPsjT4jfNKQV+xCtBL+hcAq
         U00ecFhRv4ehKhO4md/A3hal5Z22fh65s0knnCUVmqNYSXqIWYF6xB5pPByU0DWK3sAH
         A06uFYioUBcApTqeLCabgMVEd9ivSFVwkZKYP//lq+tzui5ZzuVnx6mrH1shjMjCPR/5
         4wYN9/YwycDBgrpdxWJiGkeEogyOpFyDVkGTropu12P/BZoMPK7NTObUOiRzJs9bK42e
         Z2Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:date:from:to:message-id:in-reply-to:references
         :subject:mime-version:x-original-sender:reply-to:precedence
         :mailing-list:list-id:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe:content-type;
        bh=WC26I3qWeS0vcdWOwU1WOL1YvZL5O/9Mqu7sNK1pnu0=;
        b=ka/gL7mvssY7Qhy1p/J68LY0O4FfWHuNQ54XRfo0ZTsxNXIHao6XR/yO9lrm09Af8G
         4iEVUUiThBEUR9VkVN35gVuxcUbQbn0L24mmiuWAfB/f0fN74s/hodgHWImPoQKfTFfC
         SpLGsf9EA11lru2OhcQYdDE3kMGwh+42RH7RwzIwTCa20cqRXGsczONZ7nMdt/bRM7kR
         ccNAEKwlZjz9zaQptZW0v91QV5Ok+6PlKDpx25k1QLLK9V0t1A+ko4Y6LcPpGVbAMdIi
         scWCyP1RLiZA57I/f+SzXUzRrR3nieM5c5B4hAzuVz9eoAxyQBmvH6HqeDzkdm+UwkMR
         BGaQ==
X-Gm-Message-State: ALoCoQnQ0Bt1tutGhY8JVnXYSIW4EWzZHJvzPMrZCYqYiKfPxDNlx6zP0jKyY8VPJZST/K3OWkQW
X-Received: by 10.66.142.229 with SMTP id rz5mr14509585pab.36.1414713254110;
        Thu, 30 Oct 2014 16:54:14 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.107.154.212 with SMTP id c203ls1083128ioe.4.gmail; Thu, 30 Oct
 2014 16:54:13 -0700 (PDT)
X-Received: by 10.50.142.105 with SMTP id rv9mr1730igb.0.1414713253205;
        Thu, 30 Oct 2014 16:54:13 -0700 (PDT)
In-Reply-To: <3d0ab5b0-73d9-434a-9ae4-cd47d8275590@isocpp.org>
X-Original-Sender: gmisocpp@gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Google-Group-Id: 399137483710
List-Post: <http://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:14336
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/14336>

------=_Part_9_1051233432.1414713252041
Content-Type: text/plain; charset=UTF-8

Hypothetical:

Ignoring compatibility problems....

imagine if #pragma once was the default and some other kind of 
statement existed to change the default where needed e.g. #pragma 
multiple or even #include multiple <x>....

Now imagine if something like this extension was implemented in clang...

First, what to people think would be the effort (in days) to implement that 
change in the clang compiler itself (i.e. to support the new semantics and 
keywords),?

then what do people think would be the effort (in days) to convert the 
project itself to use that extension... (i.e. add the keywords where the 
default #once doesn't work)?

then finally what do people think would be the speed up (in % build 
time), if clang (or any project like it) were compiled using that 
extensions?



On Wednesday, October 22, 2014 8:29:21 AM UTC+13, Myriachan wrote:

> I think that #pragma once should be standardized - at least 
> partially/optionally/conditionally-supported.  Every major compiler 
> implements it with identical or nearly-identical semantics.
>
> Defining what it means for a file to be a repeat is rather simple: On 
> platforms supporting symlinks and hard links, use unique inode numbers (+ 
> device if needed).  On other platforms, use the filename.  Compilers may 
> assume that files don't change while compiling (i.e. if the filename 
> matches, it can be assumed to be identical).  On platforms where there 
> exist special links to the same or parent directory, like "./" or "../" on 
> NT and POSIX, this assumption can be extended to collapse these.
>
> By the way, why don't _Pragma and #line support concatenating multiple 
> strings in their respective string parameters?
>
> Melissa
>

-- 

--- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

------=_Part_9_1051233432.1414713252041
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hypothetical:</div><div><br></div><div>Ignoring compa=
tibility problems....</div><div><br></div><div>imagine if #pragma once was =
the default and&nbsp;some other kind of statement&nbsp;existed to change th=
e default&nbsp;where needed e.g.&nbsp;#pragma multiple&nbsp;or even #includ=
e multiple &lt;x&gt;....</div><div><br></div><div>Now imagine&nbsp;if somet=
hing like this extension was implemented in clang...</div><div><br></div><d=
iv>First, what to people think would be the effort (in days) to implement t=
hat change&nbsp;in the clang compiler itself (i.e. to support the new seman=
tics and keywords),?</div><div><br></div><div>then what do people think wou=
ld be the effort (in days) to convert the project itself to use that extens=
ion... (i.e. add the keywords where the default #once doesn't work)?</div><=
div><br></div><div>then finally what do people think would be the&nbsp;spee=
d up&nbsp;(in % build time),&nbsp;if&nbsp;clang (or any project like it) we=
re&nbsp;compiled&nbsp;using that extensions?</div><div><br></div><div><br><=
/div><div><br>On Wednesday, October 22, 2014 8:29:21 AM UTC+13, Myriachan w=
rote:</div><blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0=
..8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left=
-width: 1px; border-left-style: solid;"><div dir=3D"ltr">I think that <span=
 style=3D"font-family: courier new,monospace;">#pragma once</span> should b=
e standardized - at least partially/optionally/<wbr>conditionally-supported=
..&nbsp; Every major compiler implements it with identical or nearly-identic=
al semantics.<br><br>Defining what it means for a file to be a repeat is ra=
ther simple: On platforms supporting symlinks and hard links, use unique in=
ode numbers (+ device if needed).&nbsp; On other platforms, use the filenam=
e.&nbsp; Compilers may assume that files don't change while compiling (i.e.=
 if the filename matches, it can be assumed to be identical).&nbsp; On plat=
forms where there exist special links to the same or parent directory, like=
 "./" or "../" on NT and POSIX, this assumption can be extended to collapse=
 these.<br><br>By the way, why don't <span style=3D"font-family: courier ne=
w,monospace;">_Pragma</span> and <span style=3D"font-family: courier new,mo=
nospace;">#line</span> support concatenating multiple strings in their resp=
ective string parameters?<br><br>Melissa<br></div></blockquote></div>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_9_1051233432.1414713252041--

.
