<div dir="ltr">One tricky bit that occurred to me: we can't really change the behavior of the Read instance depending on the extensions enabled.<div><br><div>Thus, we would either have to always parse hex floats, even when the extension is not on, or never parse them.</div></div><div><br></div><div>I am leaning towards parsing them always, even without the extension.  What do others think?</div><div><br></div><div>-Iavor</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 28, 2017 at 5:36 AM, Simon Marlow <span dir="ltr"><<a href="mailto:marlowsd@gmail.com" target="_blank">marlowsd@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">No objections from me.  Looks useful and not too costly in terms of extra complexity.</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On 27 February 2017 at 21:34, Iavor Diatchki <span dir="ltr"><<a href="mailto:iavor.diatchki@gmail.com" target="_blank">iavor.diatchki@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Hello,<div><br></div><div>I was assigned to be the shepherd for the Hex Float proposal  (<a href="https://github.com/ghc-proposals/ghc-proposals/pull/37" target="_blank">https://github.com/ghc-propo<wbr>sals/ghc-proposals/pull/37</a>), so I would like to propose that we accept it for implementation in GHC.</div><div><br></div><div>This is a small change, which can be summarized as follows:</div><div>    - allow floating point numbers to be written using hex digits.</div><div><br></div><div>The format is exactly the same as decimal floating point numbers, except for:</div><div>    - the literals start with 0x</div><div>    - the digits are in hex</div><div>    - the exponent symbol is `p` or `P`, instead of `e` or `E`</div><div>    - the exponent is in base 2, rather than base 10</div><div><br></div><div>This notation has become popular among people working with floating point numbers, as the numbers you write can be represented exactly, which is not the case for base 10 numbers.</div><div><br></div><div>The following points were discussed:</div><div>   - the exact format to use, compared to what's allowed by other languages: we decided to just follow Haskell's decimal float notation, for least surprise</div><div>   - should overflow (which becomes `Inf`) result in a warning?   We decided that this is an orthogonal issue, also relevant to decimal floating point and made a GHC ticket (#13232)</div><div>    - there is an odd interaction between floating point (both decimal and hex) and -XNegativeLiterals, related to negative 0, see ticket #13211</div><div>     - changing the Read instances for Float and Double to recognize hex floats could break some programs, although that does not seem all that likely</div><div>     - there is a question of how many extra pretty printing functions to add to `Numeric`: the current thinking is that maybe just one `showHFloat` is sufficient;  the alternative is to add 5, mirroring the `show[E,F,G]Float` functions for decimals.</div><div><br></div><div>I also had a stab at implementing the basic notation here: <a href="https://phabricator.haskell.org/D3066" target="_blank">https://phabricator.hask<wbr>ell.org/D3066</a></div><div>I haven't done the changes to the libraries yet.</div><div><br></div><div>Please let me know if you have any objections or suggestions on what might needs to be changed.</div><div><br></div><div>Cheers,</div><div>-Iavor</div><div><br></div><div><br></div><div><br></div><div><br></div></div>
<br></div></div><span class="">______________________________<wbr>_________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell<wbr>.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-b<wbr>in/mailman/listinfo/ghc-steeri<wbr>ng-committee</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div>