[phobos] CustomFloat
Lars Tandle Kyllingstad
lars at kyllingen.net
Wed Jun 9 23:52:39 PDT 2010
These are the steps to reproduce: First, create a file "test.d":
import customfloat;
alias CustomFloat!16 float16;
Then compile it together with customfloat.d like this:
dmd -c test customfloat
customfloat.d(430): Error: template instance ToBinary!(real)
does not match template declaration ToBinary(F) if
(is(CustomFloat!(F.sizeof * 8)))
customfloat.d(430): Error: ToBinary!(real) is used as a type
...
However, I'm starting to suspect it may be a compiler issue, because if
I change the order of the input files, I get a different message:
dmd -c customfloat test
customfloat.d(357): Error: template instance opUnary!("+") does
not match template declaration opUnary(string op) if
((__traits(compiles,mixin(op ~ "(get!real)"))) || op == "++" ||
op == "--")
I'm using DMD 2.046 on Linux.
-Lars
On Wed, 2010-06-09 at 22:29 -0400, David Simcha wrote:
> I can't reproduce this at all. At any rate, I'm going to check this in
> because there were no other issues, I want to get it in for 2.047, and
> it's a HUGE improvement over what was there before even if it's not
> perfect. If you can give some hints on how to reproduce this, please
> let me know.
>
> On 6/8/2010 4:04 AM, Lars Tandle Kyllingstad wrote:
> > On Sat, 2010-06-05 at 10:42 -0400, David Simcha wrote:
> >
> >> Robert Jacques (who I know offline and, in fact, was the person who
> >> introduced me to D) has massively improved/debugged CustomFloat and
> >> asked me to post it for review and commit it to Phobos. See the
> >> attached file. If everyone's happy with it, I'll replace the current
> >> impl in std.numeric and check it in.
> >>
> > It's awesome that someone's working on this -- I've seen people
> > complaining about the state of CustomFloat several times. (I think the
> > last time was when we discussed the possibility of using an 80-bit
> > CustomFloat in Masahiro's msgpack library, to wrap 80-bit reals on
> > systems that don't support them.)
> >
> > That said, I'm having some problems with it. Looking at the code and
> > documentation, the following should be correct usage:
> >
> > alias CustomFloat!16 float16;
> >
> > However, compiling it with DMD 2.046, I get the errors
> >
> > customfloat.d(430): Error: template instance ToBinary!(real)
> > does not match template declaration ToBinary(F) if
> > (is(CustomFloat!(F.sizeof * 8)))
> > customfloat.d(430): Error: ToBinary!(real) is used as a type
> > ...
> >
> > -Lars
> >
> > _______________________________________________
> > phobos mailing list
> > phobos at puremagic.com
> > http://lists.puremagic.com/mailman/listinfo/phobos
> >
> >
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
More information about the phobos
mailing list