[ghc-steering-committee] Proposal: Accept proposal 37, Hex Float literals

Manuel M T Chakravarty chak at justtesting.org
Tue Feb 28 00:43:44 UTC 2017


Looks good to me.

> Iavor Diatchki <iavor.diatchki at gmail.com>:
> 
> Hello,
> 
> I was assigned to be the shepherd for the Hex Float proposal  (https://github.com/ghc-proposals/ghc-proposals/pull/37 <https://github.com/ghc-proposals/ghc-proposals/pull/37>), so I would like to propose that we accept it for implementation in GHC.
> 
> This is a small change, which can be summarized as follows:
>     - allow floating point numbers to be written using hex digits.
> 
> The format is exactly the same as decimal floating point numbers, except for:
>     - the literals start with 0x
>     - the digits are in hex
>     - the exponent symbol is `p` or `P`, instead of `e` or `E`
>     - the exponent is in base 2, rather than base 10
> 
> 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.
> 
> The following points were discussed:
>    - 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
>    - 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)
>     - there is an odd interaction between floating point (both decimal and hex) and -XNegativeLiterals, related to negative 0, see ticket #13211
>      - changing the Read instances for Float and Double to recognize hex floats could break some programs, although that does not seem all that likely
>      - 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.
> 
> I also had a stab at implementing the basic notation here: https://phabricator.haskell.org/D3066 <https://phabricator.haskell.org/D3066>
> I haven't done the changes to the libraries yet.
> 
> Please let me know if you have any objections or suggestions on what might needs to be changed.
> 
> Cheers,
> -Iavor
> 
> 
> 
> 
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20170228/3440e8b3/attachment.html>


More information about the ghc-steering-committee mailing list