On 1/5/11 4:06 PM, BCS wrote:
In conclusion (yes I know this normally goes at the bottom) I think
we are wanting different and contradictorily things from this
library.

I almost didn't read the rest thinking that that's all you inserted. All: there's more, scroll down!

One additional practical matter:

The way I would like that code to look would be:

void computeFiringSolution(Radians angle)
{
     auto s = angle.sin(); // only exist for Radians (and Scaler)
     ...
     auto newAngle = std.units.arcsin(s);  // returns Radians
     static assert(is(typeof(newAngle) : Radians));
}

This is nice in theory but would have you essentially wrap by hand an unbounded number of functions. And for what? So they write angle.sin() instead of sin(angle.value). I appreciate the additional theoretical safety, but I don't see how that benefit compensates the cost. I want a practical library that allows me to work with libraries designed outside of it.

Anyway, let's not forget that at the end of the day my opinion is one opinion and my vote is one vote. For the record, my vote is against the library in its current form for the following reasons:

(a) Poor documentation

(b) Limited expressiveness

(c) Numeric issues as I described (and no amount of rhetoric will set that straight; FWIW given the obvious question of scaling you need to prove it works, not me to prove it doesn't)

(d) Unrealized potential (if we approve this, backward compatibility will prevent more comprehensive libraries having the same aim but a different design). This argument is to be taken with a grain of salt as in general it can be easily abused. What I'm saying is that once this library is in we may as well forget about scaled units a la boost units (which are the kind I'd want to use).

Going from here I see a few possibilities.

1. Other people deem the library adequate as it is and it gets voted in;

2. You and somebody else agree to work together on this submission;

3. You agree to pass your work to someone who will continue to work towards a submission;

4. The library is not made part of Phobos but remains of course available as a third-party library.


Andrei

Reply via email to