Re: D's greatest mistakes

2010-11-29 Thread Bane
Lot of small things, details, that are not showstoppers but leave impression of unfinished business. First thing that come to my mind is lack of "bud" (build) building support where you point only to main.d file, and all other modules are imported. I think that is the ting required to bee in co

Re: C#'s greatest mistakes

2010-11-29 Thread Russel Winder
On Sun, 2010-11-28 at 15:57 -0500, Roman Ivanov wrote: [ . . . ] > AFAIK, LINQ is _not_ SQL embedded into C# or VB. It's a mechanism that > allows C# to examine expressions (written in C#, as strange as they > might look) and translate them to SQL (or whatever). I have no idea how LINQ is realized

Re: D's greatest mistakes

2010-11-29 Thread Don
Jack wrote: The post "C#'s greatest mistakes" prompts/begs this post. Have at it, pick up the ball and run with it, don't be shy. I expect Walter and Andrei to answer (if Walter and Andrei so dare!) after others' posts have stopped or stagnated into that cesspool of threaded discussion that is

Re: C#'s greatest mistakes

2010-11-29 Thread Russel Winder
On Sun, 2010-11-28 at 16:23 -0500, Roman Ivanov wrote: [ . . . ] > LINQ _is_ an object API. The query-like syntax is just a misfeature. or desirable and useful feature! > But it's not _just_ an object API, because it translates statement into > expression trees, which can be analyzed and used to

Re: D's greatest mistakes

2010-11-29 Thread Radu
On 11/29/2010 9:06 AM, Jack wrote: Andrei Alexandrescu wrote: On 11/28/10 10:19 PM, Jack wrote: The post "C#'s greatest mistakes" prompts/begs this post. Have at it, pick up the ball and run with it, don't be shy. I expect Walter and Andrei to answer (if Walter and Andrei so dare!) after others

Re: D's greatest mistakes

2010-11-29 Thread Manfred_Nowak
Andrei Alexandrescu wrote: > but some that come to mind are: `with' ? -manfred

Re: D's greatest mistakes

2010-11-29 Thread Daniel Gibson
Manfred_Nowak schrieb: Andrei Alexandrescu wrote: but some that come to mind are: `with' ? -manfred What's wrong with "with"?

Re: C#'s greatest mistakes

2010-11-29 Thread dennis luehring
Am 27.11.2010 04:27, schrieb Andrei Alexandrescu: http://oredev.org/2010/sessions/c-s-greatest-mistakes Andrei my 1+ rated mistake getting generics into the language BUT no alias or typedef likes

Re: D's greatest mistakes

2010-11-29 Thread Manfred_Nowak
Daniel Gibson wrote: > What's wrong with "with"? http://www.digitalmars.com/d/archives/digitalmars/D/with_should_be_deprecat ed_with_extreme_prejudice_90375.html#N90375 -manfred

Re: D's greatest mistakes

2010-11-29 Thread Andrej Mitrovic
The licensing issues with DMD. I get the feeling we would have many more contributors to the reference compiler and have bugs fixed at a much faster rate than right now. Walter is already working at 110% of his abilities, at least that's the impression I get. I think maybe D2 has grown beyond anyon

Re: D's greatest mistakes

2010-11-29 Thread bearophile
Manfred_Nowak: > Daniel Gibson wrote: > > > What's wrong with "with"? > > http://www.digitalmars.com/d/archives/digitalmars/D/with_should_be_deprecat > ed_with_extreme_prejudice_90375.html#N90375 Andrei said there: > I think "with" is a very dangerous feature due to the way it hides > symbols

Re: D's greatest mistakes

2010-11-29 Thread bearophile
Don: > D has been far too ambitious, given the available resources. My opinion is a bit different. The Haskell motto is: "Avoid success at all costs". This because the more complex a language is, the more time it needs to develop its features in a good way. If a language has too much early succ

Re: D's greatest mistakes

2010-11-29 Thread Daniel Gibson
bearophile schrieb: Manfred_Nowak: Daniel Gibson wrote: What's wrong with "with"? http://www.digitalmars.com/d/archives/digitalmars/D/with_should_be_deprecat ed_with_extreme_prejudice_90375.html#N90375 I see Andrei said there: I think "with" is a very dangerous feature due to the way

Re: D's greatest mistakes

2010-11-29 Thread bearophile
Andrei: > * Not fixing switch Walter has vaguely accepted to somehow fix this, requiring a flow control for each case statement (but other people immediately have asked to special case this again). > * scope variables Fixed? > * delete (generally: an incompletely thought-out approach to ga

Re: D's greatest mistakes

2010-11-29 Thread Andrej Mitrovic
"with" is almost convenient in some cases, but I have to admit every time I'm inside a with block I'm never absolutely sure which variables I'm accessing. There's still that situation where I might think I'm accessing a member variable, but it turns out the member variable doesn't exist and there j

Re: D's greatest mistakes

2010-11-29 Thread Andrej Mitrovic
On 11/29/10, bearophile wrote: >> * Template pattern matching is incomplete > > I don't understand this, please explain better. But I think the syntax of > is() is awful and I'd like to shoot it. > +1. I'd prefer if we had a constraint block of some kind. I mean we already have in/out contracts w

Re: D's greatest mistakes

2010-11-29 Thread Andrej Mitrovic
On 11/29/10, bearophile wrote: >> * Template pattern matching is incomplete > > I don't understand this, please explain better. But I think the syntax of > is() is awful and I'd like to shoot it. > +1. I'd prefer if we had a constraint block of some kind. I mean we already have in/out contracts w

Re: D's greatest mistakes

2010-11-29 Thread Andrej Mitrovic
Sorry for the repost! On 11/29/10, Andrej Mitrovic wrote: > On 11/29/10, bearophile wrote: >>> * Template pattern matching is incomplete >> >> I don't understand this, please explain better. But I think the syntax of >> is() is awful and I'd like to shoot it. >> > > +1. I'd prefer if we had a co

Re: C#'s greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Sat, 27 Nov 2010 10:59:42 -0500, Torarin wrote: 2010/11/27 Andrei Alexandrescu : We use template constraints for that kind of stuff. Andrei Yes, and that's great, but is there a way to check whether a template argument matches a defined interface? We have stuff like isInputRange!R. I

Re: C#'s greatest mistakes

2010-11-29 Thread so
On Sat, 27 Nov 2010 21:49:03 +0200, BLS wrote: On 27/11/2010 04:27, Andrei Alexandrescu wrote: http://oredev.org/2010/sessions/c-s-greatest-mistakes Andrei Frankly said, I am a bit nagged by your overoptimistic D view. From my point of view it is opportune to encourage people to use D2 for

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Sun, 28 Nov 2010 23:19:44 -0500, Jack wrote: The post "C#'s greatest mistakes" prompts/begs this post. Have at it, pick up the ball and run with it, don't be shy. I expect Walter and Andrei to answer (if Walter and Andrei so dare!) after others' posts have stopped or stagnated into that cess

Re: D's greatest mistakes

2010-11-29 Thread so
What I can see now, mistakes are mostly syntactical like switch, auto, const, rebindable, array ops, full slice, arbitrary-code-contracts instead of single bool expression. Choice for round braces for templates leads to slightly unreadable template code: foo!(params params)(yet more params)

Re: Passing dynamic arrays

2010-11-29 Thread Steven Schveighoffer
On Fri, 26 Nov 2010 14:50:27 -0500, Bruno Medeiros wrote: On 09/11/2010 12:42, Steven Schveighoffer wrote: On Mon, 08 Nov 2010 21:29:42 -0500, Jesse Phillips wrote: Well, if you can come up with a good definition for what "increasing the size of a class" would do, then maybe it should be

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Sat, 20 Nov 2010 09:21:04 -0500, Peter Alexander wrote: D does not support logical const due to the weak guarantees that it provides. So, without logical const, how are D users supposed to provide lazy evaluation and memoization in their interfaces, given that the interface should *

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Sun, 28 Nov 2010 16:27:20 -0500, Walter Bright wrote: Peter Alexander wrote: Solves the problem, but now I've created a new one: getInverse now has complete write access to my matrix, so when I do something as harmless as: Matrix inv = getInverse(myMatrix); This innocent call has no

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 10:13:01 -0500, Steven Schveighoffer wrote: If you are going to argue this case, please do not use C++ as a straw man, it's not the same as D. Reading more of the posts in this thread, it appears many are using C++ as the straw man in their case *for* mutable, so I u

Re: Logical const

2010-11-29 Thread so
Surely I'm not the only person that finds something *incredibly* wrong with this!? Sorry but I see nothing but the misconception of const-correctness with the given example. I hope you are aware of what you are asking. For your particular example: First you started by class, you should use

Re: Logical const

2010-11-29 Thread so
I am technically worse off, just not from the compilers point of view. I see your point about C++ const being a convention, but that doesn't change the fact that it is still very useful, even if it useless for the compiler. If I give some const object to a function: void render(const GameOb

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 3:42 AM, Don wrote: Jack wrote: The post "C#'s greatest mistakes" prompts/begs this post. Have at it, pick up the ball and run with it, don't be shy. I expect Walter and Andrei to answer (if Walter and Andrei so dare!) after others' posts have stopped or stagnated into that cesspool

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 5:34 AM, Manfred_Nowak wrote: Daniel Gibson wrote: What's wrong with "with"? http://www.digitalmars.com/d/archives/digitalmars/D/with_should_be_deprecat ed_with_extreme_prejudice_90375.html#N90375 -manfred Walter and I came to an understanding regarding symbol visibility that

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 5:48 AM, Andrej Mitrovic wrote: The licensing issues with DMD. I get the feeling we would have many more contributors to the reference compiler and have bugs fixed at a much faster rate than right now. Walter is already working at 110% of his abilities, at least that's the impression

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 6:18 AM, bearophile wrote: Andrei: * Template pattern matching is incomplete I don't understand this, please explain better. But I think the syntax of is() is awful and I'd like to shoot it. is() should do full tree unification on the query type and the pattern. It currently do

Re: D's greatest mistakes

2010-11-29 Thread Nick Sabalausky
"Bane" wrote in message news:icvscq$1ep...@digitalmars.com... > Lot of small things, details, that are not showstoppers but leave > impression of unfinished business. > > First thing that come to my mind is lack of "bud" (build) building support > where you point only to main.d file, and all ot

Re: D's greatest mistakes

2010-11-29 Thread Nick Sabalausky
"Steven Schveighoffer" wrote in message news:op.vmxqi4kmeav...@steve-laptop... > On Sun, 28 Nov 2010 23:19:44 -0500, Jack wrote: > >> The post "C#'s greatest mistakes" prompts/begs this post. Have at it, >> pick up the ball and run with it, don't be shy. I expect Walter and >> Andrei to answer (

Re: std.container.BinaryHeap + refCounted = WTF???

2010-11-29 Thread dsimcha
== Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article > On Wed, 17 Nov 2010 12:09:11 -0500, dsimcha wrote: > > == Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article > >> The issue is that if you append to such an array and it adds more pages > >> in > >> place, the block

Re: Logical const

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 8:56 AM, Steven Schveighoffer wrote: On Sat, 20 Nov 2010 09:21:04 -0500, Peter Alexander wrote: D does not support logical const due to the weak guarantees that it provides. So, without logical const, how are D users supposed to provide lazy evaluation and memoization in their int

Re: [help]operator overloading with opEquals in a class

2010-11-29 Thread Bruno Medeiros
On 26/11/2010 16:56, Andrei Alexandrescu wrote: On 11/26/10 9:30 AM, Bruno Medeiros wrote: On 03/11/2010 20:33, Andrei Alexandrescu wrote: On 11/3/10 7:07 AM, zhang wrote: This code belown can be compiled with DMD 2.050. However, it throws an error message: core.exception.HiddenFuncError: Hidd

Re: std.container.BinaryHeap + refCounted = WTF???

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 10:58:05 -0500, dsimcha wrote: == Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article On Wed, 17 Nov 2010 12:09:11 -0500, dsimcha wrote: > == Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article >> The issue is that if you append to such an array and

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 10:54:04 -0500, Nick Sabalausky wrote: "Steven Schveighoffer" wrote in message news:op.vmxqi4kmeav...@steve-laptop... On Sun, 28 Nov 2010 23:19:44 -0500, Jack wrote: The post "C#'s greatest mistakes" prompts/begs this post. Have at it, pick up the ball and run with it,

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 10:12 AM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 10:54:04 -0500, Nick Sabalausky wrote: "Steven Schveighoffer" wrote in message news:op.vmxqi4kmeav...@steve-laptop... On Sun, 28 Nov 2010 23:19:44 -0500, Jack wrote: The post "C#'s greatest mistakes" prompts/begs this p

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 10:56:14 -0500, Andrei Alexandrescu wrote: On 11/29/10 8:56 AM, Steven Schveighoffer wrote: On Sat, 20 Nov 2010 09:21:04 -0500, Peter Alexander wrote: D does not support logical const due to the weak guarantees that it provides. So, without logical const, how are D us

Re: Spec#, nullables and more

2010-11-29 Thread Bruno Medeiros
On 26/11/2010 17:54, Bruno Medeiros wrote: On 26/11/2010 17:28, Bruno Medeiros wrote: And I agree with that, and because of that I'm suprised and curious to understand why Hoare mentioned (in the abstract on the link posted originally), that null pointers have caused "innumerable vulnerabilitie

Re: std.container.BinaryHeap + refCounted = WTF???

2010-11-29 Thread dsimcha
== Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article > On Mon, 29 Nov 2010 10:58:05 -0500, dsimcha wrote: > > == Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article > >> On Wed, 17 Nov 2010 12:09:11 -0500, dsimcha wrote: > >> > == Quote from Steven Schveighoffer (schvei.

Re: Spec#, nullables and more

2010-11-29 Thread Bruno Medeiros
On 26/11/2010 19:20, Daniel Gibson wrote: So, going back, is it correct to say that an NPE bug on its own is not enough to allow arbitrary code execution, but that other vulnerabilities are necessary? I don't think it's correct: You may have a "bad" user on your system (e.g. pseudo-public ser

Re: D's greatest mistakes

2010-11-29 Thread dsimcha
== Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article > Ultimately I believe we need to make Rebindable palatable. That would > have the nice side effect of enabling other proxy types. > Andrei I've asked before and I'll ask again, what's still wrong with Rebindable? A bun

Re: Logical const

2010-11-29 Thread Michel Fortin
On 2010-11-29 11:24:56 -0500, "Steven Schveighoffer" said: On Mon, 29 Nov 2010 10:56:14 -0500, Andrei Alexandrescu wrote: In fact it's possible to provide logical const with guarantees. You need a construct that keeps together a bool, a pure function/delegate/method, and a value, and w

Re: D's greatest mistakes

2010-11-29 Thread Michel Fortin
On 2010-11-29 11:19:29 -0500, Andrei Alexandrescu said: Syntax is the main issue in implementing this feature. Due to the implicit nature of reference semantics for classes, there was no syntax to distinguish between the head and the tail when qualifying. FWIW I just thought of this syntax.

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 11:19:29 -0500, Andrei Alexandrescu wrote: On 11/29/10 10:12 AM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 10:54:04 -0500, Nick Sabalausky wrote: "Steven Schveighoffer" wrote in message news:op.vmxqi4kmeav...@steve-laptop... On Sun, 28 Nov 2010 23:19:44 -0500,

Re: Spec#, nullables and more

2010-11-29 Thread Bruno Medeiros
On 27/11/2010 03:29, Rainer Deyke wrote: On 11/26/2010 10:28, Bruno Medeiros wrote: Yes, Walter's statement that it is impossible for a null pointer to cause a security vulnerability is (likely) incorrect. But his point at large, considering the discussion that preceded the comment, was that nul

Re: Passing dynamic arrays

2010-11-29 Thread Bruno Medeiros
On 29/11/2010 14:13, Steven Schveighoffer wrote: On Fri, 26 Nov 2010 14:50:27 -0500, Bruno Medeiros wrote: On 09/11/2010 12:42, Steven Schveighoffer wrote: On Mon, 08 Nov 2010 21:29:42 -0500, Jesse Phillips wrote: Well, if you can come up with a good definition for what "increasing the siz

Re: Should pure functions be prevented from reading changeable immutable static variables?

2010-11-29 Thread Bruno Medeiros
On 06/11/2010 01:32, Don wrote: Pure functions are allowed to read immutable global variables. Currently, this even includes globals which are initialized from inside 'static this()'. Here's an example of how this can be a problem: immutable int unstable; pure int buggy() { return unstable; }

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 10:54 AM, Michel Fortin wrote: On 2010-11-29 11:19:29 -0500, Andrei Alexandrescu said: Syntax is the main issue in implementing this feature. Due to the implicit nature of reference semantics for classes, there was no syntax to distinguish between the head and the tail when qualify

Re: Logical const

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 10:24 AM, Steven Schveighoffer wrote: This only solves the caching issue (which I agree is a large issue). There are other cases where you want a mutable pointer to other data that the object does not own. Such as a widget having a pointer to its window. Assuming that window draw rout

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 10:59 AM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 11:19:29 -0500, Andrei Alexandrescu wrote: Ultimately I believe we need to make Rebindable palatable. That would have the nice side effect of enabling other proxy types. I think if we get to that point, D will be much more

Re: why a part of D community do not want go to D2 ?

2010-11-29 Thread Bruno Medeiros
On 10/11/2010 02:53, Eric Poggel wrote: On 11/9/2010 5:27 AM, thank you oldtimer wrote: ankh, anonymous troll, another lurker, anton smith, arnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x, crap, darth tango, domino, ellis peters, foobar, gareth charnock, gcc-lurker, girlprogrammer

Re: why a part of D community do not want go to D2 ?

2010-11-29 Thread Bruno Medeiros
On 07/11/2010 20:48, Stewart Gordon wrote: On 06/11/2010 23:11, bioinfornatics wrote: hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answer Sick of waiting for D1 to be finished. So many differences

Re: std.container.BinaryHeap + refCounted = WTF???

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 11:44:23 -0500, dsimcha wrote: == Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article On Mon, 29 Nov 2010 10:58:05 -0500, dsimcha wrote: > == Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article >> On Wed, 17 Nov 2010 12:09:11 -0500, dsimcha wrote

Re: D's greatest mistakes

2010-11-29 Thread Michel Fortin
On 2010-11-29 13:08:54 -0500, Andrei Alexandrescu said: On 11/29/10 10:54 AM, Michel Fortin wrote: The biggest problem I see is with generic programming. Say I pass Rebindable!(const C) as a template argument, then the template wants to make it const: should it become const(Rebindable!(const

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 13:06:17 -0500, Andrei Alexandrescu wrote: On 11/29/10 10:24 AM, Steven Schveighoffer wrote: This only solves the caching issue (which I agree is a large issue). There are other cases where you want a mutable pointer to other data that the object does not own. Such as a w

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 12:56 PM, Michel Fortin wrote: On 2010-11-29 13:08:54 -0500, Andrei Alexandrescu said: On 11/29/10 10:54 AM, Michel Fortin wrote: The biggest problem I see is with generic programming. Say I pass Rebindable!(const C) as a template argument, then the template wants to make it const

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 11:53:27 -0500, Michel Fortin wrote: On 2010-11-29 11:24:56 -0500, "Steven Schveighoffer" said: On Mon, 29 Nov 2010 10:56:14 -0500, Andrei Alexandrescu wrote: In fact it's possible to provide logical const with guarantees. You need a construct that keeps toget

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 13:10:14 -0500, Andrei Alexandrescu wrote: On 11/29/10 10:59 AM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 11:19:29 -0500, Andrei Alexandrescu wrote: Ultimately I believe we need to make Rebindable palatable. That would have the nice side effect of enabling other

Re: std.container.BinaryHeap + refCounted = WTF???

2010-11-29 Thread dsimcha
== Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article > > 1. Due to obscure implementation details, it is **not** safe to append > > to a > > non-shared array even if you synchronize manually. > I think you meant __gshared, not non-shared. It's perfectly safe to > append to non-share

Re: Logical const

2010-11-29 Thread Walter Bright
Steven Schveighoffer wrote: In fact, "logical constness" is a fraud anyway because the underlying data isn't constant at all, one is completely relying on convention. There's nothing at all preventing a supposedly logical-const-correct function from returning a different value every time it is

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 1:09 PM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 13:10:14 -0500, Andrei Alexandrescu wrote: On 11/29/10 10:59 AM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 11:19:29 -0500, Andrei Alexandrescu wrote: Ultimately I believe we need to make Rebindable palatable. That wo

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 11:52:31 -0500, dsimcha wrote: == Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article Ultimately I believe we need to make Rebindable palatable. That would have the nice side effect of enabling other proxy types. Andrei I've asked before and I'll a

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 1:35 PM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 11:52:31 -0500, dsimcha wrote: == Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article Ultimately I believe we need to make Rebindable palatable. That would have the nice side effect of enabling other pr

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 14:33:48 -0500, Walter Bright wrote: Steven Schveighoffer wrote: In fact, "logical constness" is a fraud anyway because the underlying data isn't constant at all, one is completely relying on convention. There's nothing at all preventing a supposedly logical-const-corr

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 1:38 PM, Andrei Alexandrescu wrote: On 11/29/10 1:35 PM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 11:52:31 -0500, dsimcha wrote: == Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article Ultimately I believe we need to make Rebindable palatable. That wou

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 14:38:40 -0500, Andrei Alexandrescu wrote: On 11/29/10 1:35 PM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 11:52:31 -0500, dsimcha wrote: == Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article Ultimately I believe we need to make Rebindable

Re: Logical const

2010-11-29 Thread Walter Bright
Steven Schveighoffer wrote: But in any case, const (even the non-logical variety) does not guarantee purity. Only pure functions do that (always return the same value for the same input) Right, but C++ doesn't have purity either. I was trying to make the point that C++ does not have a "logic

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 1:49 PM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 14:38:40 -0500, Andrei Alexandrescu wrote: On 11/29/10 1:35 PM, Steven Schveighoffer wrote: On Mon, 29 Nov 2010 11:52:31 -0500, dsimcha wrote: == Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 14:52:54 -0500, Walter Bright wrote: Steven Schveighoffer wrote: But in any case, const (even the non-logical variety) does not guarantee purity. Only pure functions do that (always return the same value for the same input) Right, but C++ doesn't have purity either.

Re: D's greatest mistakes

2010-11-29 Thread Kagamin
so Wrote: > > What I can see now, mistakes are mostly syntactical like switch, auto, > > const, rebindable, array ops, full slice, arbitrary-code-contracts > > instead of single bool expression. Choice for round braces for templates > > leads to slightly unreadable template code: foo!(params

Re: C#'s greatest mistakes

2010-11-29 Thread Jonathan M Davis
On Sunday, November 28, 2010 04:43:47 Jérôme M. Berger wrote: > Jonathan M Davis wrote: > > A clearer way to create such template constraints would definitely be > > nice. But aside from the fact that I'd absolutely hate to see interfaces > > be conflated with template constraints in this manner, y

Re: D's greatest mistakes

2010-11-29 Thread Kagamin
Steven Schveighoffer Wrote: > lack of tail-const/immutable for classes. > > And no, Rebindable doesn't cut it. As I understand, it's primarily issue for collections?

Re: D's greatest mistakes

2010-11-29 Thread Jonathan M Davis
On Monday, November 29, 2010 11:03:27 Andrei Alexandrescu wrote: > On 11/29/10 12:56 PM, Michel Fortin wrote: > > On 2010-11-29 13:08:54 -0500, Andrei Alexandrescu > > > > said: > >> On 11/29/10 10:54 AM, Michel Fortin wrote: > >>> The biggest problem I see is with generic programming. Say I pass

Re: D's greatest mistakes

2010-11-29 Thread Jonathan M Davis
On Monday, November 29, 2010 12:48:45 Kagamin wrote: > Steven Schveighoffer Wrote: > > lack of tail-const/immutable for classes. > > > > And no, Rebindable doesn't cut it. > > As I understand, it's primarily issue for collections? The lack of tail-const is a particularly big problem for handling

Re: D's greatest mistakes

2010-11-29 Thread Kagamin
Steven Schveighoffer Wrote: > My favorite in recent times is: > > @tail const(C) tailconst; Tail const is a type constructor, but I don't think that annotations should evolve that far.

Re: C#'s greatest mistakes

2010-11-29 Thread bearophile
Jonathan M Davis: > D has the best of both worlds (or at least will, once bug > http://d.puremagic.com/issues/show_bug.cgi?id=4423 has been fixed). On enums I hope to see this this tidying enhancement request fulfilled, vote! :-) http://d.puremagic.com/issues/show_bug.cgi?id=3999 Bye, bearophi

Re: D's greatest mistakes

2010-11-29 Thread dolive
Andrej Mitrovic Wrote: > The licensing issues with DMD. I get the feeling we would have many > more contributors to the reference compiler and have bugs fixed at a > much faster rate than right now. Walter is already working at 110% of > his abilities, at least that's the impression I get. I think

Re: Logical const

2010-11-29 Thread Walter Bright
Steven Schveighoffer wrote: Having a logical const feature in D would not be a convention, it would be enforced, as much as const is enforced. I don't understand why issues with C++ const or C++'s mutable feature makes any correlations on how a D logical const system would fare. C++ const is

Re: D's greatest mistakes

2010-11-29 Thread Walter Bright
Andrei Alexandrescu wrote: Syntax is the main issue in implementing this feature. Due to the implicit nature of reference semantics for classes, there was no syntax to distinguish between the head and the tail when qualifying. FWIW I just thought of this syntax. It might work but it's not intu

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 16:02:18 -0500, Walter Bright wrote: Andrei Alexandrescu wrote: Syntax is the main issue in implementing this feature. Due to the implicit nature of reference semantics for classes, there was no syntax to distinguish between the head and the tail when qualifying. FWIW

Re: D's greatest mistakes

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 3:02 PM, Walter Bright wrote: Andrei Alexandrescu wrote: Syntax is the main issue in implementing this feature. Due to the implicit nature of reference semantics for classes, there was no syntax to distinguish between the head and the tail when qualifying. FWIW I just thought of thi

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 15:53:51 -0500, Jonathan M Davis wrote: On Monday, November 29, 2010 12:48:45 Kagamin wrote: Steven Schveighoffer Wrote: > lack of tail-const/immutable for classes. > > And no, Rebindable doesn't cut it. As I understand, it's primarily issue for collections? The lack o

Re: D's greatest mistakes

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 15:55:10 -0500, Kagamin wrote: Steven Schveighoffer Wrote: My favorite in recent times is: @tail const(C) tailconst; Tail const is a type constructor, but I don't think that annotations should evolve that far. What I liked about that is it is orthogonal to the const

Re: D's greatest mistakes

2010-11-29 Thread dolive
Andrei Alexandrescu Wrote: > On 11/29/10 5:48 AM, Andrej Mitrovic wrote: > > The licensing issues with DMD. I get the feeling we would have many > > more contributors to the reference compiler and have bugs fixed at a > > much faster rate than right now. Walter is already working at 110% of > > hi

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 15:58:10 -0500, Walter Bright wrote: Steven Schveighoffer wrote: Having a logical const feature in D would not be a convention, it would be enforced, as much as const is enforced. I don't understand why issues with C++ const or C++'s mutable feature makes any correlat

Re: D's greatest mistakes

2010-11-29 Thread Kagamin
Walter Bright Wrote: > Syntax was not the issue. Back when we tried hard to make this work, there > were > many syntaxes proposed for it. The issue is the semantic conflation between a > reference and what it refers to. O.o I don't believe, there's even single person in this thread, who will c

Tidy template instantiation syntax

2010-11-29 Thread bearophile
D has removed some cases of bug-prone C syntax, like: int main() { int* ptr1, ptr2; return 0; } But D needs to avoid introducing new ones. In D2 there is a shortcut to instantiate templates, but it must not cause ambiguity for the eyes of the programmer that reads the code (the point i

Re: D's greatest mistakes

2010-11-29 Thread Manfred_Nowak
Daniel Gibson wrote: > "with" shouldn't be much of a problem anymore. import std.stdio; struct X{ int a, b, c;} struct Y{ int a, b;} void main(){ X x; Y y; with( x){ c= 2; with( y){ c= 1; } } writeln( x.c); } Do you see the not "much of a problem"? -manfred

Re: Logical const

2010-11-29 Thread Max Samukha
On 11/29/2010 08:58 PM, Steven Schveighoffer wrote: Most likely not. How do you say that the 'draw' function switches the widget to a different parameterized type? With const, you can just slap a const on the end of the function. Here is some example of what I mean: class Widget { mutable

Re: Logical const

2010-11-29 Thread Peter Alexander
On 29/11/10 3:19 PM, so wrote: Second why do mark something const if it is not, this is a wrong approach even in C++ which provides explicit "mutable". It is logical const. It is the correct approach in C++. How are you going to do caching anyways, if static array is not the case? struct mat

Re: Logical const

2010-11-29 Thread Peter Alexander
On 29/11/10 8:58 PM, Walter Bright wrote: Because people coming from C++ ask "why not do it like C++'s?" No one is asking this.

Re: const a storage class or a type modifier?

2010-11-29 Thread Simen kjaeraas
Andrej Mitrovic wrote: D's slogan should be "There's a keyword for that." :p And here I thought we only needed 'static'... -- Simen

Re: Kill implicit joining of adjacent strings

2010-11-29 Thread Bruno Medeiros
On 20/11/2010 05:31, Walter Bright wrote: Stewart Gordon wrote: On 12/11/2010 09:53, Andrei Alexandrescu wrote: Well put me on board then. Walter, please don't forget to tweak the associativity rules: var ~ " literal " ~ " literal " concatenates literals first. You mean make ~ right-associat

Re: Logical const

2010-11-29 Thread Max Samukha
On 11/29/2010 11:22 PM, Max Samukha wrote: On 11/29/2010 08:58 PM, Steven Schveighoffer wrote: Most likely not. How do you say that the 'draw' function switches the widget to a different parameterized type? With const, you can just slap a const on the end of the function. Here is some example o

Re: Logical const

2010-11-29 Thread Steven Schveighoffer
On Mon, 29 Nov 2010 16:22:55 -0500, Max Samukha wrote: On 11/29/2010 08:58 PM, Steven Schveighoffer wrote: Most likely not. How do you say that the 'draw' function switches the widget to a different parameterized type? With const, you can just slap a const on the end of the function. Here

Re: Kill implicit joining of adjacent strings

2010-11-29 Thread Andrei Alexandrescu
On 11/29/10 3:38 PM, Bruno Medeiros wrote: On 20/11/2010 05:31, Walter Bright wrote: Stewart Gordon wrote: On 12/11/2010 09:53, Andrei Alexandrescu wrote: Well put me on board then. Walter, please don't forget to tweak the associativity rules: var ~ " literal " ~ " literal " concatenates lite

  1   2   >