On 2/4/11 3:27 AM, Brad Roberts wrote:
On 2/1/2011 9:12 AM, Andrei Alexandrescu wrote:
On 2/1/11 10:51 AM, Michel Fortin wrote:
On 2011-02-01 11:31:54 -0500, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> said:
TypeInfo holds a pointer to the toString function, so if the compiler
passes the two operands as D-style variadic arguments to the assert
handler, the assert handler can use toString to print them. The operator
should be passed as a string.
In that case problem solved. Don, if you arrange things such that this
user-level code:
int a = 42;
double b = 3.14;
assert(a<= b, "Something odd happened");
ultimately calls this runtime function:
assertCmpFailed("<=", "42", "3.14", "Something odd happened");
I promise I'll discuss with Sean and implement what it takes in druntime to get
that completed.
We need to finalize that before Feb 7 though because on that date the vote for
Jonathan's library closes. If you do
implement that, probably we'll need to reject the library in the current form
and propose back an amended version.
Andrei
I agree with Don. The proposed set of functions are great from an output
perspective, but awful from a crisp syntax
standpoint. They're a work around for the underlying problem: assert needs a
UI face lift (though I remember when
assert didn't even support a text output -- adding that was my first
contribution to the compiler/language). There are
certainly complexities in pulling apart the bool expression though, and I'm not
sure what a good solution is for that.
If there's any sort of consensus around focusing on assert instead (and I
recognize that there isn't yet), some pre-set
arbitrary deadline isn't terribly relevant. Having one by the 7th is kinda
unlikely.
As a further point against the assertPred!op model, consider why the use of
postfix/rpn calculators is restricted to a
very small subset of advanced calculators. It's just now how most people think
about expressions.
Later,
Brad
We need to have at least a definite decision by Feb 7 from Don and
Walter that work will be put or not into improving assert as discussed.
Andrei