Re: Let's stop parser Hell

2012-07-11 Thread Jacob Carlborg
On 2012-07-10 22:53, Jonathan M Davis wrote: Well, giving an error, continuing to parse, and giving a partial result can be useful (and you give a prime example of that), but fixing the problem (e.g by inserting the semicolon) and not considering it to be an error would be a _huge_ mistake

Re: Let's stop parser Hell

2012-07-11 Thread Jonathan M Davis
On Wednesday, July 11, 2012 08:41:53 Jacob Carlborg wrote: On 2012-07-10 22:53, Jonathan M Davis wrote: Well, giving an error, continuing to parse, and giving a partial result can be useful (and you give a prime example of that), but fixing the problem (e.g by inserting the semicolon) and

Re: Range's opSlice(/**/) function

2012-07-11 Thread monarch_dodra
On Tuesday, 10 July 2012 at 21:51:44 UTC, Jonathan M Davis wrote: On Tuesday, July 10, 2012 23:35:02 monarch_dodra wrote: 1. In general, I wouldn't recommend not caring whether a variable is a container or a range. It matters a great deal to the semantics of what you're doing. 2. At this

Re: Direct access to struct construction, copying and destruction

2012-07-11 Thread Benjamin Thaut
Am 10.07.2012 07:13, schrieb Jonathan M Davis: On Tuesday, July 10, 2012 06:53:29 Benjamin Thaut wrote: Am 10.07.2012 00:53, schrieb Jonathan M Davis: On Monday, July 09, 2012 22:41:57 Benjamin Thaut wrote: Clear uses the TypeInfo. The proposed functions should not be library functions but

Re: Direct access to struct construction, copying and destruction

2012-07-11 Thread Jonathan M Davis
On Wednesday, July 11, 2012 09:28:15 Benjamin Thaut wrote: Am 10.07.2012 07:13, schrieb Jonathan M Davis: On Tuesday, July 10, 2012 06:53:29 Benjamin Thaut wrote: Am 10.07.2012 00:53, schrieb Jonathan M Davis: On Monday, July 09, 2012 22:41:57 Benjamin Thaut wrote: Clear uses the

Structs, the most buggiest language feature?

2012-07-11 Thread Benjamin Thaut
In the past few months working on my little hobby project I came across many bugs, and almost all of them are connected to structs in one or the other way. So I made a list of all the bugs that affected me and are connected to structs: Destruction of uninitialized temporary struct with assert

Re: Inherited const when you need to mutate

2012-07-11 Thread Don Clugston
On 10/07/12 19:13, H. S. Teoh wrote: On Tue, Jul 10, 2012 at 06:48:51PM +0200, Timon Gehr wrote: On 07/10/2012 06:45 PM, H. S. Teoh wrote: Yeah, this is logical const. Unfortunately, D doesn't have logical const. Then why on earth is druntime acting as if it does? Y'know, this brings up

Re: Structs, the most buggiest language feature?

2012-07-11 Thread Mehrdad
+1

Build DMD + druntime + phobos on Windows using MVCC

2012-07-11 Thread crashtua
I trying to build DMD + druntime + phobos. I builded DMD using Visual Studio solution file. But when i try to build druntime it says corruptet druntime.obj. How to build it on windows? Maybe it is possible to build it using mingw?

Re: Direct access to struct construction, copying and destruction

2012-07-11 Thread Benjamin Thaut
Am 11.07.2012 09:33, schrieb Jonathan M Davis: On Wednesday, July 11, 2012 09:28:15 Benjamin Thaut wrote: Am 10.07.2012 07:13, schrieb Jonathan M Davis: On Tuesday, July 10, 2012 06:53:29 Benjamin Thaut wrote: Am 10.07.2012 00:53, schrieb Jonathan M Davis: On Monday, July 09, 2012 22:41:57

Re: Let's stop parser Hell

2012-07-11 Thread Christophe Travert
Timon Gehr , dans le message (digitalmars.D:171814), a écrit : On 07/11/2012 01:16 AM, deadalnix wrote: On 09/07/2012 10:14, Christophe Travert wrote: deadalnix , dans le message (digitalmars.D:171330), a écrit : D isn't 100% CFG. But it is close. What makes D fail to be a CFG?

Re: Structs, the most buggiest language feature?

2012-07-11 Thread monarch_dodra
On Wednesday, 11 July 2012 at 07:52:40 UTC, Benjamin Thaut wrote: Structs are a really important language feature that also often is supposed to be used as a replacement for deperecated features (scope, typedef, ...) Scope is deprecated? I didn't see that in the Changelog...

Re: Congratulations to the D Team!

2012-07-11 Thread Jacob Carlborg
On 2012-07-11 02:03, Walter Bright wrote: So do I. But all language design involves tradeoffs. I believe the advantages of const toHash etc. outweigh the disadvantage of less straightforward memoization. Can't there be non-const versions of these methods as well? -- /Jacob Carlborg

Re: Structs, the most buggiest language feature?

2012-07-11 Thread Jonathan M Davis
On Wednesday, July 11, 2012 10:40:29 monarch_dodra wrote: On Wednesday, 11 July 2012 at 07:52:40 UTC, Benjamin Thaut wrote: Structs are a really important language feature that also often is supposed to be used as a replacement for deperecated features (scope, typedef, ...) Scope is

Re: Build DMD + druntime + phobos on Windows using MVCC

2012-07-11 Thread crashtua
So, i have builded druntime with dmc, but why it isn't builds with cl?

Re: Build DMD + druntime + phobos on Windows using MVCC

2012-07-11 Thread Benjamin Thaut
Am 11.07.2012 11:11, schrieb crashtua: So, i have builded druntime with dmc, but why it isn't builds with cl? Certain parts of druntime are written in C and must be build with dmc. Also I don't know if building with Visual Studio is supported yet as the Visual Studio compiler can not do 84

Re: Inherited const when you need to mutate

2012-07-11 Thread Jacob Carlborg
On 2012-07-11 02:20, Timon Gehr wrote: I for one would be satisfied if inheriting from object became optional: // object.di class RawObject /+ this is the root of the class hierarchy +/{ } class SynchronizableObject : RawObject { void* monitor; } class Object : SynchronizableObject { const {

Re: Let's stop parser Hell

2012-07-11 Thread Jacob Carlborg
On 2012-07-11 08:52, Jonathan M Davis wrote: ??? I guess that I wasn't clear. I mean that with HTML, it ignores errors. The browser doesn't spit out errors. It just guesses at what you really meant and displays that. It fixes the error for you, which is a horrible design IMHO. Obviously, we're

opApply not called for foeach(container)

2012-07-11 Thread monarch_dodra
If you create a class/struct that can give you a (forward) range via opSlice(), and that range gives you access to opApply, then you get two different behaviors: MyClass arr = ...; foreach(a; arr) ... foreach(a; arr[]) ... In the first case, foreach will call opSlice(), and

Re: foreach ref very broken: fails to call front(val)

2012-07-11 Thread monarch_dodra
Giving Array an opApply operator fixes both problems: 1) It allows modifying the elements when accessed with ref. 2) It allows writing ++a even though ++front isn't supported. I implemented this and made a pull request: https://github.com/D-Programming-Language/phobos/pull/683 I implemented

just an idea (!! operator)

2012-07-11 Thread akaz
if needed, the operator !! (double exclamation mark) could be defined. it is just an idea, i do not have any specific use in mind. i encountered the operator in RT operating systems book: c!!e sends the message e along channel c c?x assigns to variable x the value from c maybe this could be

Re: just an idea (!! operator)

2012-07-11 Thread Alex Rønne Petersen
On 11-07-2012 13:18, akaz wrote: if needed, the operator !! (double exclamation mark) could be defined. it is just an idea, i do not have any specific use in mind. i encountered the operator in RT operating systems book: c!!e sends the message e along channel c c?x assigns to variable x the

Re: just an idea (!! operator)

2012-07-11 Thread monarch_dodra
On Wednesday, 11 July 2012 at 11:18:21 UTC, akaz wrote: if needed, the operator !! (double exclamation mark) could be defined. Problem is that operator!! is already used asa twin operator!. This is shorthand for is valid as bool: When a type can be casted to bool, it is quicker to write

Re: Inherited const when you need to mutate

2012-07-11 Thread Christophe Travert
Andrei Alexandrescu , dans le message (digitalmars.D:171828), a écrit : On 7/10/12 5:19 PM, H. S. Teoh wrote: There is value in immutable objects that has been well discussed, which is incompatible with logical constness. We can change the language such as: a given type X has the option to

Re: just an idea (!! operator)

2012-07-11 Thread Don Clugston
On 11/07/12 13:47, monarch_dodra wrote: On Wednesday, 11 July 2012 at 11:18:21 UTC, akaz wrote: if needed, the operator !! (double exclamation mark) could be defined. Problem is that operator!! is already used asa twin operator!. This is shorthand for is valid as bool: I wouldn't be

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/10/12 10:22 PM, Walter Bright wrote: On 7/10/2012 6:53 PM, Andrei Alexandrescu wrote: On 7/10/12 9:14 PM, Walter Bright wrote: Anyhow, the point of @trusted is to notify the maintainer that here be dragons. I think that's not representing @trusted quite accurately. There's no dragon

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/10/12 10:33 PM, Jonathan M Davis wrote: Yeah. It seems to me that a reasonable approach would be to give Object two versions of opEquals, opCmp, toString, and toHash - a const and non-const version of each. The non-const version then calls the const version. So, the normal thing to do is

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 12:59 AM, H. S. Teoh wrote: On Wed, Jul 11, 2012 at 04:59:28AM +0200, Jakob Ovrum wrote: On Wednesday, 11 July 2012 at 02:02:52 UTC, Andrei Alexandrescu wrote: On 7/10/12 9:45 PM, Timon Gehr wrote: I do not desire logical const as a language feature. But conservative type systems

Re: Build DMD + druntime + phobos on Windows using MVCC

2012-07-11 Thread crashtua
When i try to build latest druntime i get such errors: src\core\simd.d(53): Error: template instance core.simd.Vector!(double[4u]) erro r instantiating src\core\simd.d(35): Error: base type of __vector must be a 16 byte static array , not float[8u] src\core\simd.d(54): Error: template

Re: Inherited const when you need to mutate

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 3:58 AM, Don Clugston wrote: Something I wonder about, though, is how many different use cases are we dealing with? Suppose we had a caching solution (you could think of it as @cached, but it could be done in a library). The user would need to provide a const, pure function which

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
I don't think that is a big issue. Either the value isn't accessed often, and then it make no sense to cache it, or it is accessed often and it make sense to precalculate the cached value when building the object. Doing the calculation at that point avoid synchronization cost involved

Re: Inherited const when you need to mutate

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 8:55 AM, Andrei Alexandrescu wrote: The cost of getting to the stash is proportional to the number of objects within the thread that make use of that stash. Oops, that would be with linear search :o). Andrei

Re: Inherited const when you need to mutate

2012-07-11 Thread Roman D. Boiko
On Wednesday, 11 July 2012 at 12:55:39 UTC, Andrei Alexandrescu wrote: Any takers for Cached? It would be good to assess its level of usefulness first. As for me, lazy computation (with caching) would likely be the last feature I really miss in D.

Re: just an idea (!! operator)

2012-07-11 Thread Timon Gehr
On 07/11/2012 01:33 PM, Alex Rønne Petersen wrote: On 11-07-2012 13:18, akaz wrote: if needed, the operator !! (double exclamation mark) could be defined. it is just an idea, i do not have any specific use in mind. i encountered the operator in RT operating systems book: c!!e sends the

Re: just an idea (!! operator)

2012-07-11 Thread Alex Rønne Petersen
On 11-07-2012 15:42, Timon Gehr wrote: On 07/11/2012 01:33 PM, Alex Rønne Petersen wrote: On 11-07-2012 13:18, akaz wrote: if needed, the operator !! (double exclamation mark) could be defined. it is just an idea, i do not have any specific use in mind. i encountered the operator in RT

Re: Let's stop parser Hell

2012-07-11 Thread Timon Gehr
On 07/11/2012 10:23 AM, Christophe Travert wrote: Timon Gehr , dans le message (digitalmars.D:171814), a écrit : On 07/11/2012 01:16 AM, deadalnix wrote: On 09/07/2012 10:14, Christophe Travert wrote: deadalnix , dans le message (digitalmars.D:171330), a écrit : D isn't 100% CFG. But it is

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
On 11/07/2012 03:30, Jakob Ovrum wrote: On Wednesday, 11 July 2012 at 01:19:16 UTC, Andrei Alexandrescu wrote: On 7/10/12 6:05 PM, Walter Bright wrote: A straightforward workaround is to use PIMPL to encapsulate the logical const stuff, and then cast the reference to const to use inside the

Re: Inherited const when you need to mutate

2012-07-11 Thread deadalnix
On 10/07/2012 22:11, Jonathan M Davis wrote: On Tuesday, July 10, 2012 12:00:59 H. S. Teoh wrote: I think hidden somewhere in this is an unconscious conflation of physical const with logical const. I completely disagree at least as far as classes go. opEquals, opCmp, toString, and toHash must

Re: Congratulations to the D Team!

2012-07-11 Thread Timon Gehr
On 07/11/2012 02:58 PM, deadalnix wrote: I don't think that is a big issue. Either the value isn't accessed often, and then it make no sense to cache it, or it is accessed often and it make sense to precalculate the cached value when building the object. And sometimes it is not known in

Re: just an idea (!! operator)

2012-07-11 Thread deadalnix
On 11/07/2012 13:18, akaz wrote: if needed, the operator !! (double exclamation mark) could be defined. it is just an idea, i do not have any specific use in mind. So why do you do a proposal if this is not needed ?

Re: Inherited const when you need to mutate

2012-07-11 Thread deadalnix
On 11/07/2012 02:20, Timon Gehr wrote: On 07/11/2012 01:57 AM, Walter Bright wrote: On 7/10/2012 4:16 PM, Timon Gehr wrote: Const is stronger than what is required to bridge the gap between mutable and immutable. It guarantees that a reference cannot be used to mutate the receiver regardless

Re: opApply not called for foeach(container)

2012-07-11 Thread Christophe Travert
monarch_dodra , dans le message (digitalmars.D:171868), a écrit : I'm wondering if this is the correct behavior? In particular, since foreach guarantees a call to opSlice(), so writing arr[] *should* be redundant, yet the final behavior is different. That said, the issue *could* be fixed

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
On 11/07/2012 16:16, deadalnix wrote: On 11/07/2012 16:04, Timon Gehr wrote: On 07/11/2012 02:58 PM, deadalnix wrote: I don't think that is a big issue. Either the value isn't accessed often, and then it make no sense to cache it, or it is accessed often and it make sense to precalculate the

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
On 11/07/2012 16:04, Timon Gehr wrote: On 07/11/2012 02:58 PM, deadalnix wrote: I don't think that is a big issue. Either the value isn't accessed often, and then it make no sense to cache it, or it is accessed often and it make sense to precalculate the cached value when building the object.

Re: just an idea (!! operator)

2012-07-11 Thread akaz
On Wednesday, 11 July 2012 at 14:08:55 UTC, deadalnix wrote: On 11/07/2012 13:18, akaz wrote: So why do you do a proposal if this is not needed ? I did not ask for it, I only reminded that it is possible to define it if needed. It's merely a suggestion. I was reading a book and told myself:

Re: Inherited const when you need to mutate

2012-07-11 Thread Sean Kelly
On Jul 11, 2012, at 12:58 AM, Don Clugston d...@nospam.com wrote: On 10/07/12 19:13, H. S. Teoh wrote: On Tue, Jul 10, 2012 at 06:48:51PM +0200, Timon Gehr wrote: On 07/10/2012 06:45 PM, H. S. Teoh wrote: Yeah, this is logical const. Unfortunately, D doesn't have logical const. Then why

Re: Inherited const when you need to mutate

2012-07-11 Thread Timon Gehr
On 07/11/2012 02:55 PM, Andrei Alexandrescu wrote: ... If this is a useful artifact, Walter had an idea a while ago that we can have the compiler help by using the per-object monitor pointer instead of the static hashtable. Right now the pointer points to a monitor object, but it could point to

Re: Congratulations to the D Team!

2012-07-11 Thread Timon Gehr
On 07/11/2012 02:39 PM, Andrei Alexandrescu wrote: On 7/10/12 10:59 PM, Jakob Ovrum wrote: On Wednesday, 11 July 2012 at 02:02:52 UTC, Andrei Alexandrescu wrote: On 7/10/12 9:45 PM, Timon Gehr wrote: I do not desire logical const as a language feature. But conservative type systems are not

Re: Congratulations to the D Team!

2012-07-11 Thread Timon Gehr
On 07/11/2012 02:40 PM, Andrei Alexandrescu wrote: On 7/11/12 12:59 AM, H. S. Teoh wrote: On Wed, Jul 11, 2012 at 04:59:28AM +0200, Jakob Ovrum wrote: On Wednesday, 11 July 2012 at 02:02:52 UTC, Andrei Alexandrescu wrote: On 7/10/12 9:45 PM, Timon Gehr wrote: I do not desire logical const as

Re: How can I properly import functions from gcx in object.di?

2012-07-11 Thread Alex Rønne Petersen
Hi, On 11-07-2012 01:54, Antti-Ville Tuunainen wrote: I'm working on the precise gc patches. I now have a bunch of templates and all the other infrastructure, but what's holding me back is that I don't quite understand the .di files. DI files are exactly what header files are in C(++) (there

Re: Inherited const when you need to mutate

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 10:33 AM, Timon Gehr wrote: Any takers for Cached? It would be good to assess its level of usefulness first. Andrei Well, it is inefficient. The idea here is to assess functionality provided in order to decide whether to go down this route or not. Andrei

Re: opApply not called for foeach(container)

2012-07-11 Thread monarch_dodra
On Wednesday, 11 July 2012 at 14:10:35 UTC, trav...@phare.normalesup.org (Christophe Travert) wrote: I think foreach should never call opSlice. That's not in the online documentation (http://dlang.org/statement.html#ForeachStatement), unless I missed something. If you want to use foreach on a

Re: How can I properly import functions from gcx in object.di?

2012-07-11 Thread David Nadlinger
On Tuesday, 10 July 2012 at 23:54:49 UTC, Antti-Ville Tuunainen wrote: […] However, for any kind of efficiency, the templates also need to be able to directly call functions and/or access the state from src/gc/gcx.d. I cannot just import it, because it won't be available during (user code)

Re: Inherited const when you need to mutate

2012-07-11 Thread Roman D. Boiko
On Wednesday, 11 July 2012 at 14:42:43 UTC, Andrei Alexandrescu wrote: On 7/11/12 10:33 AM, Timon Gehr wrote: Any takers for Cached? It would be good to assess its level of usefulness first. Andrei Well, it is inefficient. The idea here is to assess functionality provided in order to

Re: Inherited const when you need to mutate

2012-07-11 Thread Roman D. Boiko
On Wednesday, 11 July 2012 at 14:42:43 UTC, Andrei Alexandrescu wrote: On 7/11/12 10:33 AM, Timon Gehr wrote: Any takers for Cached? It would be good to assess its level of usefulness first. Andrei Well, it is inefficient. The idea here is to assess functionality provided in order to

Re: How can I properly import functions from gcx in object.di?

2012-07-11 Thread David Nadlinger
On Tuesday, 10 July 2012 at 23:54:49 UTC, Antti-Ville Tuunainen wrote: […] However, for any kind of efficiency, the templates also need to be able to directly call functions and/or access the state from src/gc/gcx.d. I cannot just import it, because it won't be available during (user code)

Re: Congratulations to the D Team!

2012-07-11 Thread Jakob Ovrum
On Wednesday, 11 July 2012 at 13:55:30 UTC, deadalnix wrote: The cached value can in fact rely outside the object. For the umpteenth time, I am not talking about caching.

Re: Congratulations to the D Team!

2012-07-11 Thread Jakob Ovrum
On Wednesday, 11 July 2012 at 12:36:43 UTC, Andrei Alexandrescu wrote: I was a long-time proponent of this. It's less exciting than it may seem actually. (a) Classes that work with const just fine incur one extra virtual call. I think this can be avoided by having the compiler plant the same

Re: Congratulations to the D Team!

2012-07-11 Thread Timon Gehr
On 07/11/2012 04:16 PM, deadalnix wrote: On 11/07/2012 16:04, Timon Gehr wrote: On 07/11/2012 02:58 PM, deadalnix wrote: I don't think that is a big issue. Either the value isn't accessed often, and then it make no sense to cache it, or it is accessed often and it make sense to precalculate

Re: Congratulations to the D Team!

2012-07-11 Thread Timon Gehr
On 07/11/2012 04:16 PM, deadalnix wrote: On 11/07/2012 16:16, deadalnix wrote: On 11/07/2012 16:04, Timon Gehr wrote: On 07/11/2012 02:58 PM, deadalnix wrote: I don't think that is a big issue. Either the value isn't accessed often, and then it make no sense to cache it, or it is accessed

Re: opApply not called for foeach(container)

2012-07-11 Thread kenji hara
I think the online documentation (http://dlang.org/statement.html#ForeachStatement) is not sufficient. foreach (e; aggr) { ...body...} Current dmd translates above foreach statement like follows. 1. If aggr has opApply or opApplyReverse, it's used. 2. If aggr has empty/front/popFront: 2a. If

Re: Congratulations to the D Team!

2012-07-11 Thread Max Samukha
On Wednesday, 11 July 2012 at 12:39:03 UTC, Andrei Alexandrescu wrote: I gave evidence on a large, high quality C++ codebase that the use of mutable (which is the solution of choice for memoization, caching, and lazy computation) is extremely scarce. What evidence do you have for your

Re: Congratulations to the D Team!

2012-07-11 Thread Steven Schveighoffer
On Mon, 09 Jul 2012 07:44:24 -0400, Timon Gehr timon.g...@gmx.ch wrote: On 07/09/2012 08:37 AM, Adam Wilson wrote: Object is now const-correct throughout D. This has been a dream for many of you. Today it is a reality. PITA. Forced const can severely harm a code base that wants to be

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 11:03 AM, Jakob Ovrum wrote: On Wednesday, 11 July 2012 at 12:36:43 UTC, Andrei Alexandrescu wrote: I was a long-time proponent of this. It's less exciting than it may seem actually. (a) Classes that work with const just fine incur one extra virtual call. I think this can be avoided

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 11:11 AM, Max Samukha wrote: On Wednesday, 11 July 2012 at 12:39:03 UTC, Andrei Alexandrescu wrote: I gave evidence on a large, high quality C++ codebase that the use of mutable (which is the solution of choice for memoization, caching, and lazy computation) is extremely scarce.

Re: opApply not called for foeach(container)

2012-07-11 Thread Christophe Travert
monarch_dodra , dans le message (digitalmars.D:171902), a écrit : I just re-read the docs you linked to, and if that was my only source, I'd reach the same conclusion as you. I think the reference spec for D should be the community driven and widely available website, not a commercial book.

Re: Congratulations to the D Team!

2012-07-11 Thread Timon Gehr
On 07/11/2012 05:27 PM, deadalnix wrote: On 11/07/2012 17:03, Jakob Ovrum wrote: On Wednesday, 11 July 2012 at 12:36:43 UTC, Andrei Alexandrescu wrote: I was a long-time proponent of this. It's less exciting than it may seem actually. (a) Classes that work with const just fine incur one extra

Re: Congratulations to the D Team!

2012-07-11 Thread Max Samukha
On Wednesday, 11 July 2012 at 15:28:41 UTC, Andrei Alexandrescu wrote: On 7/11/12 11:11 AM, Max Samukha wrote: On Wednesday, 11 July 2012 at 12:39:03 UTC, Andrei Alexandrescu wrote: I gave evidence on a large, high quality C++ codebase that the use of mutable (which is the solution of

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 11:50 AM, Max Samukha wrote: On Wednesday, 11 July 2012 at 15:28:41 UTC, Andrei Alexandrescu wrote: On 7/11/12 11:11 AM, Max Samukha wrote: On Wednesday, 11 July 2012 at 12:39:03 UTC, Andrei Alexandrescu wrote: I gave evidence on a large, high quality C++ codebase that the use of

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
On 11/07/2012 17:49, Timon Gehr wrote: On 07/11/2012 05:27 PM, deadalnix wrote: On 11/07/2012 17:03, Jakob Ovrum wrote: On Wednesday, 11 July 2012 at 12:36:43 UTC, Andrei Alexandrescu wrote: I was a long-time proponent of this. It's less exciting than it may seem actually. (a) Classes that

Re: Congratulations to the D Team!

2012-07-11 Thread Caligo
About 2 million in C++. source: http://www.ohloh.net/p/qt/analyses/latest/languages_summary On Wed, Jul 11, 2012 at 10:28 AM, Andrei Alexandrescu seewebsiteforem...@erdani.org wrote: How many lines total? Andrei

Re: Congratulations to the D Team!

2012-07-11 Thread Max Samukha
On Wednesday, 11 July 2012 at 15:57:51 UTC, Andrei Alexandrescu wrote: On 7/11/12 11:50 AM, Max Samukha wrote: On Wednesday, 11 July 2012 at 15:28:41 UTC, Andrei Alexandrescu wrote: On 7/11/12 11:11 AM, Max Samukha wrote: On Wednesday, 11 July 2012 at 12:39:03 UTC, Andrei Alexandrescu wrote:

Re: Congratulations to the D Team!

2012-07-11 Thread Timon Gehr
On 07/11/2012 05:27 PM, Andrei Alexandrescu wrote: We can't really model every possible design. If it cannot be modelled, it is not a possible design.

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 11:33 AM, Caligo wrote: About 2 million in C++. source: http://www.ohloh.net/p/qt/analyses/latest/languages_summary I agree that 1500 occurrences of mutable in 2 million lines of C++ is quite large. Andrei

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 12:12 PM, Timon Gehr wrote: On 07/11/2012 05:27 PM, Andrei Alexandrescu wrote: We can't really model every possible design. If it cannot be modelled, it is not a possible design. There is if it can be modeled in a less constrained language. Andrei

Re: Congratulations to the D Team!

2012-07-11 Thread H. S. Teoh
On Wed, Jul 11, 2012 at 05:27:01PM +0200, deadalnix wrote: On 11/07/2012 17:03, Jakob Ovrum wrote: [...] This solution is not for allowing people to use lazy computation in their const overrides, it's for allowing people to still use opEquals, toString etc. even if their implementations cannot

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 12:14 PM, Max Samukha wrote: Sorry, I misunderstood the question. As I said earlier, the relative number of lines with 'mutable' is mostly irrelevant. What is more relevant is the ratio of types defining at least one mutable member to the total number of types. I understand that. I

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 12:30 PM, H. S. Teoh wrote: It *is* a problem when you're talking about abstractions. If I have million node binary trees and I'm testing for equality, I'd like to be able to cache the results. But being forced to use const means I can't cache anything. And this isn't just about

Re: Rust updates

2012-07-11 Thread David Piepgrass
Short keywords are only important with barebones editors like a default vi. Nobody would use this for real development. I started I long discussion on Reddit, because I complained that the goal of 5 letter keywords is primitive, and brings back memories of the time the compilers were memory

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 12:30 PM, H. S. Teoh wrote: It *is* a problem when you're talking about abstractions. If I have million node binary trees and I'm testing for equality, I'd like to be able to cache the results. But being forced to use const means I can't cache anything. And this isn't just about

Re: Rust updates

2012-07-11 Thread David Piepgrass
On Wednesday, 11 July 2012 at 16:45:17 UTC, David Piepgrass wrote: Anyway I think short vs long is much ado about nothing. No one complains that we have to type int instead of integer, after all. Most languages have only a few keywords, which people quickly learn. As long as all the standard

Re: Rust updates

2012-07-11 Thread David Piepgrass
On Sunday, 8 July 2012 at 19:28:11 UTC, Walter Bright wrote: On 7/8/2012 6:49 AM, bearophile wrote: I think in Go the function stack is segmented and growable as in Go. This saves RAM if you need a small stack, and avoids stack overflows where lot of stack is needed. The trouble with

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
On 11/07/2012 18:30, H. S. Teoh wrote: On Wed, Jul 11, 2012 at 05:27:01PM +0200, deadalnix wrote: On 11/07/2012 17:03, Jakob Ovrum wrote: [...] This solution is not for allowing people to use lazy computation in their const overrides, it's for allowing people to still use opEquals, toString

Re: Congratulations to the D Team!

2012-07-11 Thread Timon Gehr
On 07/11/2012 06:45 PM, Andrei Alexandrescu wrote: On 7/11/12 12:30 PM, H. S. Teoh wrote: It *is* a problem when you're talking about abstractions. If I have million node binary trees and I'm testing for equality, I'd like to be able to cache the results. But being forced to use const means I

Re: Rust updates

2012-07-11 Thread Timon Gehr
On 07/11/2012 06:45 PM, David Piepgrass wrote: ... These benefits (except 3) all exist for function as well as fn, but while many languages use fun, requiring function for all functions is almost unheard of (at least I haven't heard of it), why? It's too damn long! We write functions constantly,

Re: Rust updates

2012-07-11 Thread Max Samukha
On Wednesday, 11 July 2012 at 17:09:27 UTC, Timon Gehr wrote: On 07/11/2012 06:45 PM, David Piepgrass wrote: ... These benefits (except 3) all exist for function as well as fn, but while many languages use fun, requiring function for all functions is almost unheard of (at least I haven't

Re: Rust updates

2012-07-11 Thread Alex Rønne Petersen
On 11-07-2012 19:09, Timon Gehr wrote: On 07/11/2012 06:45 PM, David Piepgrass wrote: ... These benefits (except 3) all exist for function as well as fn, but while many languages use fun, requiring function for all functions is almost unheard of (at least I haven't heard of it), why? It's too

Re: Congratulations to the D Team!

2012-07-11 Thread Jakob Ovrum
On Wednesday, 11 July 2012 at 15:59:21 UTC, deadalnix wrote: If it cannot and should not be const, it isn't a comparison or an equality test, it is another operation altogether that is performed. That's bullshit. You've seen the example I raised. How can you tell me it's not an equality

Re: Congratulations to the D Team!

2012-07-11 Thread Jakob Ovrum
On Wednesday, 11 July 2012 at 15:27:55 UTC, Andrei Alexandrescu wrote: I think I'll find it rather difficult to get behind modeling arbitrary escapes from immutability. If you want classes, you buy into a certain contract with inherent rights and constraints (starting with using references).

Re: Build DMD + druntime + phobos on Windows using MVCC

2012-07-11 Thread crashtua
All problems was in path to dmd and dmc. Absolute path to them solved all problems. Thanks for reply.

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 1:04 PM, Timon Gehr wrote: On 07/11/2012 06:45 PM, Andrei Alexandrescu wrote: On 7/11/12 12:30 PM, H. S. Teoh wrote: It *is* a problem when you're talking about abstractions. If I have million node binary trees and I'm testing for equality, I'd like to be able to cache the results.

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 1:40 PM, Jakob Ovrum wrote: Some classes don't lend themselves to immutability. Let's take something obvious like a class object representing a dataset in a database. How is an immutable instance of such a class useful? This is a good point. It seems we're subjecting all classes to

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
On 11/07/2012 19:46, Andrei Alexandrescu wrote: On 7/11/12 1:04 PM, Timon Gehr wrote: On 07/11/2012 06:45 PM, Andrei Alexandrescu wrote: On 7/11/12 12:30 PM, H. S. Teoh wrote: It *is* a problem when you're talking about abstractions. If I have million node binary trees and I'm testing for

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
On 11/07/2012 19:32, Jakob Ovrum wrote: On Wednesday, 11 July 2012 at 15:59:21 UTC, deadalnix wrote: If it cannot and should not be const, it isn't a comparison or an equality test, it is another operation altogether that is performed. That's bullshit. You've seen the example I raised. How

Re: Rust updates

2012-07-11 Thread Paulo Pinto
On Sunday, 8 July 2012 at 21:04:05 UTC, jerro wrote: As someone that values readable code, I don't understand this desire to turn every programming language into APL. I would expect the abbreviations that rust uses to be perfectly readable once you know the langauge. I like a lot ML

Re: Congratulations to the D Team!

2012-07-11 Thread Andrei Alexandrescu
On 7/11/12 1:49 PM, deadalnix wrote: I think they should. Comparing the same object 2 time should definitively have the same result back, otherwise things will go horribly wrong soon enough. Yah, but e.g. a comparison may log something. Andrei

Re: Congratulations to the D Team!

2012-07-11 Thread Jakob Ovrum
On Wednesday, 11 July 2012 at 17:47:41 UTC, deadalnix wrote: To be fair, I know nothing about LUA. It's Lua. But you are talking here about discussing with another language, so, by definition, don't have the same semantic than D. This is irrelevant. The Lua API is a C library like any

Re: Congratulations to the D Team!

2012-07-11 Thread H. S. Teoh
On Wed, Jul 11, 2012 at 01:50:23PM -0400, Andrei Alexandrescu wrote: On 7/11/12 1:49 PM, deadalnix wrote: I think they should. Comparing the same object 2 time should definitively have the same result back, otherwise things will go horribly wrong soon enough. Yah, but e.g. a comparison may

Re: Congratulations to the D Team!

2012-07-11 Thread deadalnix
On 11/07/2012 19:49, Andrei Alexandrescu wrote: On 7/11/12 1:40 PM, Jakob Ovrum wrote: Some classes don't lend themselves to immutability. Let's take something obvious like a class object representing a dataset in a database. How is an immutable instance of such a class useful? This is a good

Re: Rust updates

2012-07-11 Thread David Piepgrass
Rust has type classes from Haskell (with some simplifications for higher kinds), uniqueness typing, and typestates. As nice as kinds, typestates, typeclasses and several pointer types may be, I was in the Rust mailing list and felt unable to participate because they kept using terminology

  1   2   3   >