On Tue, Jan 16, 2018 at 00:32 Nevin Brackett-Rozinsky < nevin.brackettrozin...@gmail.com> wrote:
> On Mon, Jan 15, 2018 at 11:27 PM, Xiaodi Wu <xiaodi...@gmail.com> wrote: > >> On Mon, Jan 15, 2018 at 20:37 Nevin Brackett-Rozinsky < >> nevin.brackettrozin...@gmail.com> wrote: >> >>> >>> That protocol is spelled ExpressibleByFloatLiteral, which reflects the >>> meaning that we want and should have. The name is correct, the problem is >>> with the implementation. >>> >> >> I get that you want float literals to have semantics other than what they >> have. Again, that's a different conversation. >> > > It is the exact conversation I started this thread to have, so if there is > any other conversation going on here then *that* is the different one. :-) > There are two distinct questions here: - Your original questions to the list. Rephrased: Is it an implementation bug that FloatingPoint does not refine ExpressibleByFloatLiteral? Can FloatingPoint, with its current semantics, refine ExpressibleByFloatLiteral, with its current semantics? The answer is: no and no. - Can we change the semantics? Maybe, but I doubt ExpressibleByFloatLiteral can be outright replaced. You're not the first to wonder about how to design an alternative protocol. Dig through the archives and you'll find some existing ideas. My two cents: The main alternative base in question here is 10. However, decimal storage formats and binary storage formats share so little in common that any initializer common to both will be extremely unwieldy for one or both formats. Personally, somewhere down the road, I'd rather see Decimal64/128 become standard library types (already working on it), DecimalFloatingPoint become a standard library protocol, and `0.1` become a "decimal literal" (with Float, Double, Float80, and Decimal64/128 all conforming) as distinct from a "float literal" that we could then restrict to hexadecimal (?and binary) floating-point literals (and maybe rename accordingly).
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution