220 26417 <20160626215314.4898895.14852.12884@gmail.com> article
Path: news.gmane.org!not-for-mail
From: Tony V E <tvaneerd@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: iswalpha and locales
Date: Sun, 26 Jun 2016 17:53:14 -0400
Lines: 128
Approved: news@gmane.org
Message-ID: <20160626215314.4898895.14852.12884@gmail.com>
References: <5057e854-b2ea-4c39-81c7-367bc3e54080@isocpp.org>
 <84d2b9e6-a29b-4c79-8646-2f00dbc5087b@isocpp.org>
 <f8ce2288-8e06-41ad-8e58-0082d9d9982a@isocpp.org>
 <1550791.ovymrLsGO4@tjmaciei-mobl1>
 <CANh-dXmGSdNaEZZ2qY9-L6VkR52sNfVOKHMtkgDpOMgcWtO6Gw@mail.gmail.com>
 <e9664260-5d43-4630-b2a5-1c9baea57cbd@isocpp.org>
 <ad31eadd-08a3-4968-9fa9-a957106a2472@isocpp.org>
 <fa11402d-1401-4175-8b7e-7998917fbd95@isocpp.org>
 <020f6a36-3632-4793-9622-96a41ff40aeb@isocpp.org>
 <bfbe5f6a-00f7-4d74-a08a-b7cd13994090@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Trace: ger.gmane.org 1467007925 28791 80.91.229.3 (27 Jun 2016 06:12:05 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Mon, 27 Jun 2016 06:12:05 +0000 (UTC)
Cc: asorenji@gmail.com
To: "asorenji@gmail.com" <std-proposals@isocpp.org>, ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCUZ5QWKNQIMZHOBXMCRUBDOOO6VU@isocpp.org Sun Jun 26 23:53:18 2016
Return-path: <std-proposals+bncBCUZ5QWKNQIMZHOBXMCRUBDOOO6VU@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-io0-f197.google.com ([209.85.223.197])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBCUZ5QWKNQIMZHOBXMCRUBDOOO6VU@isocpp.org>)
	id 1bHHzS-0002xa-8A
	for gclcip-std-proposals@m.gmane.org; Sun, 26 Jun 2016 23:53:18 +0200
Original-Received: by mail-io0-f197.google.com with SMTP id x68sf329564313ioi.0
        for <gclcip-std-proposals@m.gmane.org>; Sun, 26 Jun 2016 14:53:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=mime-version:content-transfer-encoding:message-id:date:subject:from
         :in-reply-to:references:to:cc:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=7gBQKt8qaKiFrmQcLo6Q8lAUtBknWBqwd/Cfve2decI=;
        b=HquoKTn9CQ0nKFc0l4+KDqWacDeBgMuBPqtEguJzJGOjmq1Jh6bNMvnaWbibndS+jO
         RK/pQapgXP1PDs0DpK6klwfDKmnKQrt2NwFd2ueSdalwFsKMyet8rJM13LTeRv9Z+VGp
         5mdPWIuFBQ5UGa0n2K3NZCNXIDOtbLfVkgGJ5g/5ggG2y2SKcPRBy00RiF4OfzDpMsJQ
         eToTIiBsQSg7RZU7yl8+VPNDVUaQ/LwSHXiKyFVro6xBVT25HusTdEa4q39TrCNP+xKV
         +bIg/UeiRciYgeDXa4iiDFpTuHAscR1I0Acxqxw8b7WwmHP/arePL9CQSUkptsHPuVHA
         q3lA 
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:mime-version:content-transfer-encoding
         :message-id:date:subject:from:in-reply-to:references:to:cc
         :x-original-sender:x-original-authentication-results:reply-to
         :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post
         :list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=7gBQKt8qaKiFrmQcLo6Q8lAUtBknWBqwd/Cfve2decI=;
        b=fpE+3yXqwowy+RrdXmUhPZ11otGw8OdS8trXjSgbYgX5ty/aUqKGultmZl0hlwpPbM
         xq8VZ07MAVcMn5re9HdMB9wizp5iITpBEDSRP3x9FPydjwrQwWKEymRvSLDjEzel3ThA
         JmnIlsNLC5QL/s+2Y72rctuNnTnRtI5BQnR0aYgZfjtTHKyDOhMkfennIHf0uObb58xd
         kc70ZikpfX4y/WLr98RRnez3C8uBhawSjQ73cgIsTXi0XqXWWvEhAcvl4NaaSSDO+j+s
         WSGU8AIBgs4TuH9zsvPoLTWixJQitl14BLRRZTMeYk2O/YNsS5wDm+wRh7Qv7DmPAElI
          
X-Gm-Message-State: ALyK8tKzAxRl8sx8FWSX/IoHi6hejd8IzXawuwPCfj/JcyLnHrm91YWH7ZuoJ4zGirElkw==
X-Received: by 10.157.11.98 with SMTP id p31mr14570524otd.10.1466977997317;
        Sun, 26 Jun 2016 14:53:17 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.107.202.1 with SMTP id a1ls650270iog.49.gmail; Sun, 26 Jun
 2016 14:53:16 -0700 (PDT)
X-Received: by 10.107.30.139 with SMTP id e133mr5442535ioe.35.1466977996408;
        Sun, 26 Jun 2016 14:53:16 -0700 (PDT)
Original-Received: from mail-it0-x235.google.com (mail-it0-x235.google.com. [2607:f8b0:4001:c0b::235])
        by mx.google.com with ESMTPS id n64si1660110itb.52.2016.06.26.14.53.16
        for <std-proposals@isocpp.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sun, 26 Jun 2016 14:53:16 -0700 (PDT)
Received-SPF: pass (google.com: domain of tvaneerd@gmail.com designates 2607:f8b0:4001:c0b::235 as permitted sender) client-ip=2607:f8b0:4001:c0b::235;
Original-Received: by mail-it0-x235.google.com with SMTP id f6so13655678ith.0
        for <std-proposals@isocpp.org>; Sun, 26 Jun 2016 14:53:16 -0700 (PDT)
X-Received: by 10.36.3.145 with SMTP id e139mr6602389ite.40.1466977996217;
        Sun, 26 Jun 2016 14:53:16 -0700 (PDT)
Original-Received: from [127.0.0.1] ([24.114.73.64])
        by smtp.gmail.com with ESMTPSA id p21sm8206497iop.0.2016.06.26.14.53.14
        (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
        Sun, 26 Jun 2016 14:53:15 -0700 (PDT)
X-Mailer: BlackBerry Email (10.3.2.2876)
In-Reply-To: <bfbe5f6a-00f7-4d74-a08a-b7cd13994090@isocpp.org>
X-Original-Sender: tvaneerd@gmail.com
X-Original-Authentication-Results: mx.google.com;       dkim=pass
 header.i=@gmail.com;       spf=pass (google.com: domain of tvaneerd@gmail.com
 designates 2607:f8b0:4001:c0b::235 as permitted sender) smtp.mailfrom=tvaneerd@gmail.com;
       dmarc=pass (p=NONE dis=NONE) header.from=gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Spam-Checked-In-Group: std-proposals@isocpp.org
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://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>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:26417

<html><head></head><body lang=3D"en-US" style=3D"background-color: rgb(255,=
 255, 255); line-height: initial;">                                        =
                                              <div style=3D"width: 100%; fo=
nt-size: initial; font-family: Calibri, 'Slate Pro', sans-serif, sans-serif=
; color: rgb(31, 73, 125); text-align: initial; background-color: rgb(255, =
255, 255);">=E2=80=8E&gt;&nbsp;<span style=3D"line-height: initial;">If you=
 happy with minimal &nbsp;return (c&gt;=3D'a' &amp;&amp; c&lt;=3D'z') || (c=
&gt;=3D'A' &amp;&amp; c&lt;=3D'Z'); implementation,=E2=80=8E...</span></div=
><div style=3D"width: 100%; font-size: initial; font-family: Calibri, 'Slat=
e Pro', sans-serif, sans-serif; color: rgb(31, 73, 125); text-align: initia=
l; background-color: rgb(255, 255, 255);"><br></div><div style=3D"width: 10=
0%; font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif, sans=
-serif; color: rgb(31, 73, 125); text-align: initial; background-color: rgb=
(255, 255, 255);"><br></div><div style=3D"width: 100%; font-size: initial; =
font-family: Calibri, 'Slate Pro', sans-serif, sans-serif; color: rgb(31, 7=
3, 125); text-align: initial; background-color: rgb(255, 255, 255);">=E2=80=
=8EThat ("of course") doesn't work with EBCDIC. :-)</div><div style=3D"widt=
h: 100%; font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif,=
 sans-serif; color: rgb(31, 73, 125); text-align: initial; background-color=
: rgb(255, 255, 255);"><br></div><div style=3D"width: 100%; font-size: init=
ial; font-family: Calibri, 'Slate Pro', sans-serif, sans-serif; color: rgb(=
31, 73, 125); text-align: initial; background-color: rgb(255, 255, 255);">M=
y real point being that none of this stuff is as simple as it seems. And ev=
en when we know it's complicated, it is still more complicated than that.&n=
bsp;</div><div style=3D"width: 100%; font-size: initial; font-family: Calib=
ri, 'Slate Pro', sans-serif, sans-serif; color: rgb(31, 73, 125); text-alig=
n: initial; background-color: rgb(255, 255, 255);"><br></div><div style=3D"=
width: 100%; font-size: initial; font-family: Calibri, 'Slate Pro', sans-se=
rif, sans-serif; color: rgb(31, 73, 125); text-align: initial; background-c=
olor: rgb(255, 255, 255);">As suggested by others, if we layer or slice fun=
ctionality correctly, we can get close* to 'don't use what you don't pay fo=
r', but there is a ton of work to get there. </div><div style=3D"width: 100=
%; font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif, sans-=
serif; color: rgb(31, 73, 125); text-align: initial; background-color: rgb(=
255, 255, 255);"><br></div><div style=3D"width: 100%; font-size: initial; f=
ont-family: Calibri, 'Slate Pro', sans-serif, sans-serif; color: rgb(31, 73=
, 125); text-align: initial; background-color: rgb(255, 255, 255);">[*for s=
ufficiently large values of 'close']</div><div style=3D"width: 100%; font-s=
ize: initial; font-family: Calibri, 'Slate Pro', sans-serif, sans-serif; co=
lor: rgb(31, 73, 125); text-align: initial; background-color: rgb(255, 255,=
 255);"><br></div><div style=3D"width: 100%; font-size: initial; font-famil=
y: Calibri, 'Slate Pro', sans-serif, sans-serif; color: rgb(31, 73, 125); t=
ext-align: initial; background-color: rgb(255, 255, 255);">There is a reaso=
n ICU is huge. I hope no one is suggesting we could get all the functionali=
ty at 1/10 the price.&nbsp;</div><div style=3D"width: 100%; font-size: init=
ial; font-family: Calibri, 'Slate Pro', sans-serif, sans-serif; color: rgb(=
31, 73, 125); text-align: initial; background-color: rgb(255, 255, 255);"><=
br></div>                                                                  =
                                                                   <div sty=
le=3D"width: 100%; font-size: initial; font-family: Calibri, 'Slate Pro', s=
ans-serif, sans-serif; color: rgb(31, 73, 125); text-align: initial; backgr=
ound-color: rgb(255, 255, 255);"><br style=3D"display:initial"></div>      =
                                                                           =
                                                                           =
                                       <div style=3D"font-size: initial; fo=
nt-family: Calibri, 'Slate Pro', sans-serif, sans-serif; color: rgb(31, 73,=
 125); text-align: initial; background-color: rgb(255, 255, 255);">Sent&nbs=
p;from&nbsp;my&nbsp;BlackBerry&nbsp;portable&nbsp;Babbage&nbsp;Device</div>=
                                                                           =
                                                                           =
                            <table width=3D"100%" style=3D"background-color=
:white;border-spacing:0px;"> <tbody><tr><td colspan=3D"2" style=3D"font-siz=
e: initial; text-align: initial; background-color: rgb(255, 255, 255);">   =
                        <div style=3D"border-style: solid none none; border=
-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding: 3pt 0in 0in=
; font-family: Tahoma, 'BB Alpha Sans', 'Slate Pro'; font-size: 10pt;">  <d=
iv><b>From: </b>asorenji@gmail.com</div><div><b>Sent: </b>Sunday, June 26, =
2016 4:42 PM</div><div><b>To: </b>ISO C++ Standard - Future Proposals</div>=
<div><b>Reply To: </b>std-proposals@isocpp.org</div><div><b>Cc: </b>asorenj=
i@gmail.com</div><div><b>Subject: </b>Re: [std-proposals] iswalpha and loca=
les</div></div></td></tr></tbody></table><div style=3D"border-style: solid =
none none; border-top-color: rgb(186, 188, 209); border-top-width: 1pt; fon=
t-size: initial; text-align: initial; background-color: rgb(255, 255, 255);=
"></div><br><div id=3D"_originalContent" style=3D""><div dir=3D"ltr"><br><b=
r>=D0=B2=D0=BE=D1=81=D0=BA=D1=80=D0=B5=D1=81=D0=B5=D0=BD=D1=8C=D0=B5, 26 =
=D0=B8=D1=8E=D0=BD=D1=8F 2016 =D0=B3., 22:51:09 UTC+3 =D0=BF=D0=BE=D0=BB=D1=
=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Nicol Bolas =D0=BD=D0=
=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;"><div dir=3D"ltr"><br>Why divide it up by Unicode's arbitrary blocks t=
o begin with? That makes searching require a lot of conditional branching a=
nd cache misses.<br><br></div></blockquote><div>Because it's exclude unassi=
gned codepoints from table. After this - yes, we can use more complicated c=
ompression. But, be price of more complicated and slowly code.</div><blockq=
uote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-lef=
t: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div><br>OK, allow m=
e to say what I mean a different way. Having that information available at =
all is not worth 38KB to most users. The number of people who truly <i>need=
</i> to know if a codepoint is an alphabetic character or not is far less t=
han the number of people who need, for example, Unicode normalization. Or g=
rapheme cluster iteration. And so forth.<br></div></div></blockquote><div>I=
f you happy with minimal &nbsp;return (c&gt;=3D'a' &amp;&amp; c&lt;=3D'z') =
|| (c&gt;=3D'A' &amp;&amp; c&lt;=3D'Z'); implementation, then just use isal=
pha instead. If you need more, this have some price.<br></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" 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>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/bfbe5f6a-00f7-4d74-a08a-b7cd13994090%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter">https://groups.goo=
gle.com/a/isocpp.org/d/msgid/std-proposals/bfbe5f6a-00f7-4d74-a08a-b7cd1399=
4090%40isocpp.org</a>.<br>
<br><!--end of _originalContent --></div></body></html>

<p></p>

-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/20160626215314.4898895.14852.12884%40=
gmail.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.com=
/a/isocpp.org/d/msgid/std-proposals/20160626215314.4898895.14852.12884%40gm=
ail.com</a>.<br />

.
