digitalmars.D - Re: D2 status interim report ?
- Dan <murpsoft hotmail.com> Jun 26 2008
Koroskin Denis Wrote:On Mon, 23 Jun 2008 10:02:39 +0400, Extrawurst <spam extrawurst.org> wrote:Walter Bright schrieb:Extrawurst wrote:Hey Walter, this is just a list of changes which were originally planned to be integrated into D2.0 according to the slides you and Andrei presented on DConference '07. So please give us a comment on what perhaps has changed or when certain things are going to be addressed. A little insight on your roadmap would be great. (1) STRUCT opImplicitCastTo/From (p.21) --------------------------------- How do you want to solve the problem of overloading by return value which would be necessary to solve something like the example in the slides (p.21): struct S{ int opImplicitCastTo(){...} float opImplicitCastTo(){...} }
Still planning on it.
So does it mean we gonna get overloading on different return types ?
There was a suggestion to change a signature to something like this: struct S { void opImplicitCastTo(ref float result) { ... } void opImplicitCastTo(ref int result) { ... } } bacause overload on return value is basically unacceptable.
Yes, and the lack of orthogonality of the old/current system is annoying at best. The source code for Walnut was roughly 15% larger because of this. I abandoned the project mostly because the code that I thought was being generated was so vastly different from the code that was being generated. For example, passing a 16-byte struct was being done by rep movsd'ing the arguments while I was programming it envisioning xmm register usage for "arguments" and closure-like behavior for "self" and "context". I started reworking the whole project in fasm so I could write exactly what I thought, but then abandoned the scripting engine altogether to the next project about the time I finished writing the lexer because I became disinterested.
Jun 26 2008