On Fri, Sep 21, 2012 at 5:11 AM, Kazu Yamamoto <span dir="ltr">&lt;<a href="mailto:kazu@iij.ad.jp" target="_blank">kazu@iij.ad.jp</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<div class="im"><br>
&gt; Ignoring this, I think I can summarize:<br>
&gt;<br>
</div>&gt;    - Data.ByteString.Char8 has no performance penalty: &quot;w2c&quot; uses<br>
<div class="im">&gt;    &quot;unsafeChr&quot; which is a no-op, and GHC.Word has a RULES pragma making the<br>
&gt;    &quot;fromIntegral&quot; also free (it&#39;s a narrow8Word#)<br>
</div>&gt;    - for some reason GHC is generating worse code for the Word8 versions of<br>
<div class="im">&gt;    toLower than it is for the Char equivalents<br>
</div>&gt;    - consequently, there seems to be no reason to use the word8 library:<br>
<div class="im">&gt;    not only is it not faster, it&#39;s actually a pessimization.<br>
<br>
</div>My dictionary does not have the word &quot;pessimization&quot;. Would you explain<br>
what do you want to say with other words?<br></blockquote><div><br></div><div>It&#39;s a joke on &quot;optimization&quot; (see &quot;optimism&quot; vs &quot;pessimism&quot;), in other words making things slower rather than faster.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Anyway, my understanding from this thread is:<br>
<br>
- Data.ByteString.Char8 does not have performance penalty.  So, we can<br>
  use the character literal (e.g. &#39;H&#39;) with it for code readability.<br>
<br>
- But the utility functions in Data.Char is slow because it handles<br>
  Unicode. So, we need faster utility functions specialized to Char.<br>
<br>
Is this correct? Should I implement the char8 library (or include<br>
Data.Char8 in the word8 library)?<br>
<br>
I know that Greg dislikes to have extra libraries but I think that<br>
sharing utility functions is a good thing.<br>
<div class="HOEnZb"><div class="h5"></div></div></blockquote></div><div><br></div><div>Sounds correct to me. The only thing that&#39;s needed as far as I can tell is specialized-to-ascii toUpper and toLower.</div><div><br>
</div><div>G</div>-- <br>Gregory Collins &lt;<a href="mailto:greg@gregorycollins.net" target="_blank">greg@gregorycollins.net</a>&gt;<br>