digitalmars.D - D2 status interim report ?
- Extrawurst (46/46) Jun 22 2008 Hey Walter,
- Walter Bright (13/64) Jun 22 2008 Template constraints may have obsoleted it.
- Sean Kelly (7/14) Jun 22 2008 There are decades of research in SMP and a raft of established practice....
- Walter Bright (3/8) Jun 22 2008 None of them has caught on and established itself as the right way to do...
- Sean Kelly (10/18) Jun 22 2008 I don't think that looking at the history of mainstream programming is g...
- janderson (2/21) Jun 24 2008
- Extrawurst (2/21) Jun 22 2008 So does it mean we gonna get overloading on different return types ?
- Simen Kjaeraas (15/37) Jun 23 2008 I wouldn't bet on it. This is already possible:
- Koroskin Denis (7/29) Jun 23 2008 There was a suggestion to change a signature to something like this:
- BLS (17/17) Jun 26 2008 DTL ?
- Dan (5/38) Jun 26 2008 Yes, and the lack of orthogonality of the old/current system is annoying...
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(){...} } (2) STRUCT "inheritance" (p.27) --------------------------------- Is this still planned as it was meant to be some kind of template-concepts-replacement, now that there is the template-constraints implementation (D2.015) ? (3) ENUM Member Lookup Rules (p.34) --------------------------------- I hope this one did not fall under the table, though it is a small thing cause it would simplify many enum usages. enum OpenMode {READ, WRITE, READ_WRITE} void foo(OpenMode mode = READ){...} (4) return Storage Class (p.38) --------------------------------- No more doubled getter functions for const/not-const ! (5) final switch (p.41) --------------------------------- This one is such a great proposal, when will it be implemented? No more worry if on runtime a enum value leads to the safety "default: assert(false);" control path because perhaps i have forgotton to add new behaviour after adding a new enum member. (6) AST macros (p.45) --------------------------------- The wet dream of every D-coder but when is it going to become reality ? (7) static foreach (p.52) --------------------------------- My final bid is again, please let the community know what your roadmap is, so we can stop wonder how and if all this is still going to be part of D2.0 which was intended to become stable in this years fall. Regards for the awesome work on our all-favourite programming language ! ~Stephan
Jun 22 2008
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.(2) STRUCT "inheritance" (p.27) --------------------------------- Is this still planned as it was meant to be some kind of template-concepts-replacement, now that there is the template-constraints implementation (D2.015) ?Template constraints may have obsoleted it.(3) ENUM Member Lookup Rules (p.34) --------------------------------- I hope this one did not fall under the table, though it is a small thing cause it would simplify many enum usages. enum OpenMode {READ, WRITE, READ_WRITE} void foo(OpenMode mode = READ){...}This suffers from some large chicken-and-egg semantic issues. May not happen.(4) return Storage Class (p.38) --------------------------------- No more doubled getter functions for const/not-const !Actually, we've been looking for a better way to do this, as nobody really likes the syntax.(5) final switch (p.41) --------------------------------- This one is such a great proposal, when will it be implemented? No more worry if on runtime a enum value leads to the safety "default: assert(false);" control path because perhaps i have forgotton to add new behaviour after adding a new enum member.That's been kind of overlooked.(6) AST macros (p.45) --------------------------------- The wet dream of every D-coder but when is it going to become reality ?D 3.0.(7) static foreach (p.52) ---------------------------------Yes.My final bid is again, please let the community know what your roadmap is, so we can stop wonder how and if all this is still going to be part of D2.0 which was intended to become stable in this years fall.There was a shift in focus, we're working a lot on trying to figure out a better way to do multithreaded programming.Regards for the awesome work on our all-favourite programming language !Welcs!
Jun 22 2008
== Quote from Walter Bright (newshound1 digitalmars.com)'s articleExtrawurst wrote:There are decades of research in SMP and a raft of established practice... outside of the classic and frustrating explicit use of mutexes and the like. Why not agents, CSP, transactional memory, plain old parallel programming instructions as per languages like Cilk, etc? This is one area where I don't think D should necessarily try to re-invent the wheel. SeanMy final bid is again, please let the community know what your roadmap is, so we can stop wonder how and if all this is still going to be part of D2.0 which was intended to become stable in this years fall.There was a shift in focus, we're working a lot on trying to figure out a better way to do multithreaded programming.
Jun 22 2008
Sean Kelly wrote:There are decades of research in SMP and a raft of established practice... outside of the classic and frustrating explicit use of mutexes and the like. Why not agents, CSP, transactional memory, plain old parallel programming instructions as per languages like Cilk, etc? This is one area where I don't think D should necessarily try to re-invent the wheel.None of them has caught on and established itself as the right way to do parallel programming.
Jun 22 2008
== Quote from Walter Bright (newshound1 digitalmars.com)'s articleSean Kelly wrote:I don't think that looking at the history of mainstream programming is going to be of much use here. SMP didn't even matter until just a few years ago, as most of the world's programmers weren't targeting platforms where SMP was practical or desirable. But the research community hasn't been standing still, and some specialist circles have been doing SMP all along. I suppose what I'm saying is that I think it's wrongheaded to discount existing practice because none of them are mainstream, because this has nothing to do with how good they are. SeanThere are decades of research in SMP and a raft of established practice... outside of the classic and frustrating explicit use of mutexes and the like. Why not agents, CSP, transactional memory, plain old parallel programming instructions as per languages like Cilk, etc? This is one area where I don't think D should necessarily try to re-invent the wheel.None of them has caught on and established itself as the right way to do parallel programming.
Jun 22 2008
Sean Kelly wrote:== Quote from Walter Bright (newshound1 digitalmars.com)'s articleThat is so true. Look at D for instance.Sean Kelly wrote:I don't think that looking at the history of mainstream programming is going to be of much use here. SMP didn't even matter until just a few years ago, as most of the world's programmers weren't targeting platforms where SMP was practical or desirable. But the research community hasn't been standing still, and some specialist circles have been doing SMP all along. I suppose what I'm saying is that I think it's wrongheaded to discount existing practice because none of them are mainstream, because this has nothing to do with how good they are.There are decades of research in SMP and a raft of established practice... outside of the classic and frustrating explicit use of mutexes and the like. Why not agents, CSP, transactional memory, plain old parallel programming instructions as per languages like Cilk, etc? This is one area where I don't think D should necessarily try to re-invent the wheel.None of them has caught on and established itself as the right way to do parallel programming.Sean
Jun 24 2008
Walter Bright schrieb:Extrawurst wrote:So does it mean we gonna get overloading on different return types ?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.
Jun 22 2008
Extrawurst <spam extrawurst.org> wrote:Walter Bright schrieb:I wouldn't bet on it. This is already possible: struct S { void opCastTo(ref int result) {} void opCastTo(ref float result) {} } int i; float f; S s; s.opCastTo(i); s.opCastTo(f); Add syntactic sugar to taste, inform the compiler that opImplicitCastTo is a special function, and voilà! -- SimenExtrawurst wrote:So does it mean we gonna get overloading on different return types ?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.
Jun 23 2008
On Mon, 23 Jun 2008 10:02:39 +0400, Extrawurst <spam extrawurst.org> wrote:Walter Bright schrieb: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.Extrawurst wrote:So does it mean we gonna get overloading on different return types ?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.
Jun 23 2008
DTL ? D2 const/invariant/ pure functions/ new alias handling / doubts about synchronized ... Seems that Walter and Co are really willing to blow STL away by creating tools for the "After Free Lunch Time" - Software is concurrent – Interactive applications – Web services – Distributed software - Hardware is concurrent – Hyperthreading – Multicores, Manycores – Grid computing at least for me : ALL current D2 development steps are showing in that direction. bls
Jun 26 2008
Koroskin Denis Wrote:On Mon, 23 Jun 2008 10:02:39 +0400, Extrawurst <spam extrawurst.org> wrote: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.Walter Bright schrieb: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.Extrawurst wrote:So does it mean we gonna get overloading on different return types ?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.
Jun 26 2008