Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread Marco Leise
Am Wed, 05 Jun 2013 22:35:59 -0400 schrieb "Jonathan M Davis" : > std.compress.zlib; > std.compress.lzw; > > At that point, it would be trivial to have a common module of some kind with > shared functionality which has package access level. > > - Jonathan M Davis +1 If package is ambiguous, m

Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread Jonathan M Davis
On Thursday, June 06, 2013 08:09:38 Max Samukha wrote: > On Thursday, 6 June 2013 at 02:36:12 UTC, Jonathan M Davis wrote: > > But I believe that package level access only works on the same > > level, so you > > couldn't have separate modules for compressing and > > decompressing as was being > > s

Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread Walter Bright
On 6/5/2013 5:13 PM, Walter Bright wrote: On 6/5/2013 3:31 PM, Andrei Alexandrescu wrote: https://github.com/D-Programming-Language/dmd/pull/2139 Well, I am destroyed. I need to do some more engineering. The problem is that packages and modules have become conflated with this change. Fixed

Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread Max Samukha
On Thursday, 6 June 2013 at 02:36:12 UTC, Jonathan M Davis wrote: But I believe that package level access only works on the same level, so you couldn't have separate modules for compressing and decompressing as was being suggested. 'package' should be fixed so that 'package' declarations are

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Max Samukha
On Wednesday, 5 June 2013 at 22:03:05 UTC, Walter Bright wrote: We can do an upgrade path as follows: 1. Introduce 'virtual' storage class. 'virtual' not only means a method is virtual, but it is an *introducing* virtual, i.e. it starts a new vtbl[] entry even if there's a virtual of the sam

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Jonathan M Davis
On Wednesday, June 05, 2013 22:17:49 H. S. Teoh wrote: > On Wed, Jun 05, 2013 at 09:14:08PM -0400, Jonathan M Davis wrote: > > On Wednesday, June 05, 2013 17:49:17 Walter Bright wrote: > > > I think we accomplish this in a simpler way: > > > > > > 1. 'virtual' means a method is an "introducing" on

Re: Monkey Patching in D

2013-06-05 Thread QAston
On Wednesday, 5 June 2013 at 13:19:33 UTC, Peter Lundgren wrote: On Wednesday, 5 June 2013 at 07:17:50 UTC, Jacob Carlborg wrote: I would suggestion using some kind of wrapper instead of doing true monkey patching. Example: class Wrapper { private Object o; this (Object o) { this.o = o;

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread deadalnix
On Thursday, 6 June 2013 at 05:31:21 UTC, Rob T wrote: Yes I agree that's much more intuitive. Also having ability for methods to individually opt out of a virtual: or final: block will be nice to have. eg virtual: void a(); final void b(); ... This should satisfy everyone since you

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Rob T
On Thursday, 6 June 2013 at 05:19:32 UTC, H. S. Teoh wrote: 1. 'virtual' means a method is an "introducing" one. 2. 'override' means override with a non-final function. 3. 'final override' means a method overrides a base virtual function with a final function. 4. 'final' by itself both mean fin

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Rob T
On Thursday, 6 June 2013 at 01:14:23 UTC, Jonathan M Davis wrote: I would have expected something more like 1. 'virtual' means a method is an "introducing" one. 2. 'override' means override with a non-final function. 3. 'final override' means a method overrides a base virtual function with a f

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread H. S. Teoh
On Wed, Jun 05, 2013 at 09:14:08PM -0400, Jonathan M Davis wrote: > On Wednesday, June 05, 2013 17:49:17 Walter Bright wrote: > > I think we accomplish this in a simpler way: > > > > 1. 'virtual' means a method is an "introducing" one. > > 2. 'override' means a method overrides a base virtual func

Re: Path as an object in std.path

2013-06-05 Thread Jesse Phillips
On Wednesday, 5 June 2013 at 22:06:52 UTC, Vladimir Panteleev wrote: * Tango's FilePath class: https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/io/FilePath.d Note that Tango code should not be used for code intended for Phobos unless all authors of that piece have stated they will l

Re: Path as an object in std.path

2013-06-05 Thread Jesse Phillips
On Wednesday, 5 June 2013 at 20:52:24 UTC, Dylan Knutson wrote: Dub is forced to define its own separate Path type because, as its author states, using a string to represent a path "more often than not results in hidden bugs." You're miss quoting here. "usually will be places where the path i

Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread SomeDude
On Thursday, 6 June 2013 at 02:36:12 UTC, Jonathan M Davis wrote: But I believe that package level access only works on the same level, so you couldn't have separate modules for compressing and decompressing as was being suggested. It would need to be more like std.compress.zlib; std.compres

Re: std.compress

2013-06-05 Thread SomeDude
On Wednesday, 5 June 2013 at 22:06:09 UTC, Adam D. Ruppe wrote: you know it might be a decent idea to change std.stdio to use scoped imports and have the writeln that specializes on string to not import anything else and see what happens on the hello world case. I think using scoped import sh

Re: The State of LDC on Windows

2013-06-05 Thread Marco Leise
Am Thu, 06 Jun 2013 03:47:58 +0200 schrieb "bearophile" : > When I want optimizations with this ldc I have used "-release > -profile-verifier-noassert -O5". Is this good enough? > I don't know why ldc2 doesn't have "-noboundscheck". As fas as I know O4/O5 is currently not implemented and often p

Re: std.compress

2013-06-05 Thread Marco Leise
Am Wed, 05 Jun 2013 13:36:06 -0400 schrieb Andrei Alexandrescu : > I think it's worth discussing the interface much more than the approach > to modularization. > > Walter's algo traffics in InputRange!ubyte and offers an > InputRange!ubyte. That makes sense in some situations, but often > traf

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Michel Fortin
On 2013-06-06 01:14:08 +, "Jonathan M Davis" said: On Wednesday, June 05, 2013 17:49:17 Walter Bright wrote: I think we accomplish this in a simpler way: 1. 'virtual' means a method is an "introducing" one. 2. 'override' means a method overrides a base virtual function with a final functi

Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread Jonathan M Davis
On Thursday, June 06, 2013 04:10:26 Marco Leise wrote: > Am Wed, 05 Jun 2013 18:31:22 -0400 > > schrieb Andrei Alexandrescu : > > https://github.com/D-Programming-Language/dmd/pull/2139 > > > > Andrei > > To those who don't want to see a < 1000 lines module: Please > consider that as soon as we'

Re: std.compress

2013-06-05 Thread Marco Leise
Am Thu, 06 Jun 2013 00:00:19 +0200 schrieb "Adam D. Ruppe" : > $ time make > dmd -version=withoaut_custom_runtime_reflection > -debug=allocations -m64 -debug -c object.d minimal.d invariant.d > memory.d -gc -defaultlib= -debuglib= > gcc minimal.o object.o invariant.o memory.o -o minimal -g -m64

Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread Marco Leise
Am Wed, 05 Jun 2013 18:31:22 -0400 schrieb Andrei Alexandrescu : > https://github.com/D-Programming-Language/dmd/pull/2139 > > Andrei To those who don't want to see a < 1000 lines module: Please consider that as soon as we'd merge multiple compression algorithms into one file for the sake of mak

Re: The State of LDC on Windows

2013-06-05 Thread bearophile
I have seen this code is about 6 times faster compiled with ldc2 compared to dmd: I run it with 1 command line argument. Bye, bearophile

Re: The State of LDC on Windows

2013-06-05 Thread bearophile
David Nadlinger: Alpha-quality binary packages are available as part of 0.11.0 Beta 3: http://forum.dlang.org/post/mailman.871.1370475122.13711.digitalmars-d-...@puremagic.com I have done few small tests: With no optimization dmd compiles about twice faster (or more) than ldc2. When I wan

Re: Why UTF-8/16 character encodings?

2013-06-05 Thread Brad Roberts
On 6/5/13 6:11 PM, Timothee Cour wrote: currently std.demangle.demangle doesn't work with unicode (see example below) If we decide to keep allowing unicode symbols (as opposed to just unicode strings/comments), we must address this issue. Will supporting this negatively impact performance (of b

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Jonathan M Davis
On Wednesday, June 05, 2013 17:49:17 Walter Bright wrote: > I think we accomplish this in a simpler way: > > 1. 'virtual' means a method is an "introducing" one. > 2. 'override' means a method overrides a base virtual function with a final > function. > 3. 'override virtual' means override with a

Re: Why UTF-8/16 character encodings?

2013-06-05 Thread Timothee Cour
On Thu, May 30, 2013 at 10:57 PM, Walter Bright wrote: > On 5/30/2013 5:00 PM, Peter Williams wrote: > >> On 31/05/13 05:07, Walter Bright wrote: >> >>> On 5/30/2013 4:24 AM, Manu wrote: >>> We don't all know English. Plenty of people don't. I've worked a lot with Sony and Nintendo code/

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread deadalnix
On Thursday, 6 June 2013 at 01:00:36 UTC, Steven Schveighoffer wrote: This was circa 2003. Look at the state of Java from then. And also consider that when the *decision* was made to make non-virtual the default, was considerably before then. -Steve This is why I wrote that this may have b

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Steven Schveighoffer
On Wed, 05 Jun 2013 20:49:00 -0400, deadalnix wrote: On Wednesday, 5 June 2013 at 20:01:06 UTC, Kapps wrote: Anders Hejlsberg talks about why they decided to use final by default in C# at http://www.artima.com/intv/nonvirtualP.html. See the Non-Virtual is the Default section. They do this *

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Adam D. Ruppe
On Thursday, 6 June 2013 at 00:49:55 UTC, Walter Bright wrote: 4. none means final and non-overriding. BTW be sure not to remove the final keyword, since having it to undo a "virtual:" will still be useful to at least of us.

Re: std.compress

2013-06-05 Thread Jonathan M Davis
On Wednesday, June 05, 2013 15:16:56 Walter Bright wrote: > On 6/5/2013 2:19 PM, Jonathan M Davis wrote: > > On Wednesday, June 05, 2013 13:48:40 Walter Bright wrote: > >> On 6/5/2013 11:36 AM, David Nadlinger wrote: > >>> It also doesn't utilize template constraints, reinvents > >>> isRandomAccess

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread deadalnix
On Wednesday, 5 June 2013 at 22:50:27 UTC, Simen Kjaeraas wrote: On 2013-06-06, 00:32, Adam D. Ruppe wrote: But I want to clearify this #1: class A { virtual void foo(); } class B : A { virtual void foo(); } With C# semantics (as has been suggested as a basis): class A { virtual void foo

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread deadalnix
On Wednesday, 5 June 2013 at 20:01:06 UTC, Kapps wrote: Anders Hejlsberg talks about why they decided to use final by default in C# at http://www.artima.com/intv/nonvirtualP.html. See the Non-Virtual is the Default section. They do this *because* they saw the drawbacks of Java's virtual by defa

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Walter Bright
On 6/5/2013 4:29 PM, Steven Schveighoffer wrote: On Wed, 05 Jun 2013 18:56:28 -0400, Walter Bright wrote: On 6/5/2013 3:37 PM, Steven Schveighoffer wrote: No, I think it introduces a new foo. Calling A.foo does not call B.foo. In other words, it hides the original implementation, there are

Re: The State of LDC on Windows

2013-06-05 Thread bearophile
David Nadlinger: Whoops, I absentmindedly updated the time stamp, without noticing that it actually caused the month to change. Should be fixed now. The page works now. I'll try this LDC2. For Windows I suggest to distribute a single 7zip that contains both ldc and the needed gcc libs (poss

Re: The State of LDC on Windows

2013-06-05 Thread David Nadlinger
On Thursday, 6 June 2013 at 00:05:03 UTC, bearophile wrote: It gives me a "page not found" Whoops, I absentmindedly updated the time stamp, without noticing that it actually caused the month to change. Should be fixed now. David

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Andrei Alexandrescu
On 6/5/13 7:39 PM, Manu wrote: Thank you! A hyperlink is always so much more substantial than a reasoned claim ;) It's a hyperlink to an extensive argument. And assuming you refer to yours as the reasoned claim, I'd have to raise a finger to parts of that :o). That being said, a gentleman m

Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread Walter Bright
On 6/5/2013 3:31 PM, Andrei Alexandrescu wrote: https://github.com/D-Programming-Language/dmd/pull/2139 Well, I am destroyed. I need to do some more engineering. The problem is that packages and modules have become conflated with this change.

Re: The State of LDC on Windows

2013-06-05 Thread bearophile
David Nadlinger: I just posted a small writeup describing the current situation to my blog: http://klickverbot.at/blog/2013/05/the-state-of-ldc-on-windows/ It gives me a "page not found" Bye, bearophile

The State of LDC on Windows

2013-06-05 Thread David Nadlinger
Hi all, As some of you might already know, LDC has come dangerously close to being usable on Win32/MinGW recently. I just posted a small writeup describing the current situation to my blog: http://klickverbot.at/blog/2013/05/the-state-of-ldc-on-windows/ Alpha-quality binary packages are av

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Manu
Thank you! A hyperlink is always so much more substantial than a reasoned claim ;) On 6 Jun 2013 06:05, "Kapps" wrote: > On Tuesday, 4 June 2013 at 04:07:10 UTC, Andrei Alexandrescu wrote: > >> Choosing virtual (or not) by default may be dubbed a mistake only in a >> context. With the notable exc

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Steven Schveighoffer
On Wed, 05 Jun 2013 18:56:28 -0400, Walter Bright wrote: On 6/5/2013 3:37 PM, Steven Schveighoffer wrote: No, I think it introduces a new foo. Calling A.foo does not call B.foo. In other words, it hides the original implementation, there are two vtable entries for foo. At least, that

Re: Time to destroy Walter: breaking modules into packages

2013-06-05 Thread bearophile
Andrei Alexandrescu: https://github.com/D-Programming-Language/dmd/pull/2139 Probably you already know the following things because they see, similar solutions. Python uses "__init__.py" instead of "package.d", it can also be empty: http://docs.python.org/2/tutorial/modules.html __init__

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Adam D. Ruppe
On Wednesday, 5 June 2013 at 22:53:36 UTC, Paulo Pinto wrote: Here it is described the C# semantics for virtual methods http://msdn.microsoft.com/en-us/library/6fawty39.aspx Ah thanks, I've done very little C# so this is all pretty new to me. This seems ok too, and actually now that I thin

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Walter Bright
On 6/5/2013 3:37 PM, Steven Schveighoffer wrote: No, I think it introduces a new foo. Calling A.foo does not call B.foo. In other words, it hides the original implementation, there are two vtable entries for foo. At least, that is how I understood the C# description from that post, and it seem

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Paulo Pinto
Am 06.06.2013 00:37, schrieb Steven Schveighoffer: On Wed, 05 Jun 2013 18:32:58 -0400, Adam D. Ruppe wrote: On Wednesday, 5 June 2013 at 22:03:05 UTC, Walter Bright wrote: 1. Introduce 'virtual' storage class. 'virtual' not only means a method is virtual, but it is an *introducing* virtual, i

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Simen Kjaeraas
On 2013-06-06, 00:32, Adam D. Ruppe wrote: But I want to clearify this #1: class A { virtual void foo(); } class B : A { virtual void foo(); } With C# semantics (as has been suggested as a basis): class A { virtual void foo() { writeln("A.foo"); } } class B : A { virtual vo

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Steven Schveighoffer
On Wed, 05 Jun 2013 18:32:58 -0400, Adam D. Ruppe wrote: On Wednesday, 5 June 2013 at 22:03:05 UTC, Walter Bright wrote: 1. Introduce 'virtual' storage class. 'virtual' not only means a method is virtual, but it is an *introducing* virtual, i.e. it starts a new vtbl[] entry even if there'

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Adam D. Ruppe
On Wednesday, 5 June 2013 at 22:03:05 UTC, Walter Bright wrote: 1. Introduce 'virtual' storage class. 'virtual' not only means a method is virtual, but it is an *introducing* virtual, i.e. it starts a new vtbl[] entry even if there's a virtual of the same name in the base classes. This means th

Time to destroy Walter: breaking modules into packages

2013-06-05 Thread Andrei Alexandrescu
https://github.com/D-Programming-Language/dmd/pull/2139 Andrei

Re: Path as an object in std.path

2013-06-05 Thread Dylan Knutson
I'd like to point out some of the pitfalls of using a raw string as a representation of a path, too. You've got to manually normalize strings before any comparison is done. Even a single directory delimer at the end of the string means that the paths won't compare correctly. This takes a good amo

Re: Path as an object in std.path

2013-06-05 Thread Dylan Knutson
On Wednesday, 5 June 2013 at 22:06:52 UTC, Vladimir Panteleev wrote: On Wednesday, 5 June 2013 at 06:27:46 UTC, Dylan Knutson wrote: Hello, I'd like to open up the idea of Path being an object in std.path. I've submitted a pull (https://github.com/D-Programming-Language/phobos/pull/1333) that

Re: std.compress

2013-06-05 Thread Walter Bright
On 6/5/2013 2:23 PM, Jonathan M Davis wrote: That was pretty much the point of DIP 37. If it was only about being able to import packages, then you could just do foo/all.d and have all.d publicly import all of the foo package - many people do this now. But DIP 37 will allow us to do this in a way

Re: std.compress

2013-06-05 Thread Walter Bright
On 6/5/2013 2:42 PM, Dmitry Olshansky wrote: if you limit their hunger for std.stdio/std.format to unittests where appropriate. I agree that those two modules in particular need to be excised from being imported willy-nilly.

Re: std.compress

2013-06-05 Thread Walter Bright
On 6/5/2013 2:19 PM, Jonathan M Davis wrote: On Wednesday, June 05, 2013 13:48:40 Walter Bright wrote: On 6/5/2013 11:36 AM, David Nadlinger wrote: It also doesn't utilize template constraints, reinvents isRandomAccessRange && hasSlicing under a poor name, Didn't want to include all of Phobos

Re: Path as an object in std.path

2013-06-05 Thread Vladimir Panteleev
On Wednesday, 5 June 2013 at 06:27:46 UTC, Dylan Knutson wrote: Hello, I'd like to open up the idea of Path being an object in std.path. I've submitted a pull (https://github.com/D-Programming-Language/phobos/pull/1333) that adds a Path struct to std.path, "which exposes a much more palatable

Re: std.compress

2013-06-05 Thread Adam D. Ruppe
you know it might be a decent idea to change std.stdio to use scoped imports and have the writeln that specializes on string to not import anything else and see what happens on the hello world case.

Re: std.compress

2013-06-05 Thread Adam D. Ruppe
On Wednesday, 5 June 2013 at 21:15:06 UTC, Jonathan M Davis wrote: And since it's an example, it makes even less sense. Not if you want to show off D's compile speed! On my box, compiling Walter's module with -c took: ~$ time dmd -c compress real0m0.032s user0m0.023s sys 0m0.007

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Walter Bright
On 6/5/2013 2:55 PM, Walter Bright wrote: On 6/5/2013 1:13 PM, Andrei Alexandrescu wrote: On 6/5/13 4:01 PM, Kapps wrote: Anders Hejlsberg talks about why they decided to use final by default in C# at http://www.artima.com/intv/nonvirtualP.html. See the Non-Virtual is the Default section. They

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Walter Bright
On 6/5/2013 1:13 PM, Andrei Alexandrescu wrote: On 6/5/13 4:01 PM, Kapps wrote: Anders Hejlsberg talks about why they decided to use final by default in C# at http://www.artima.com/intv/nonvirtualP.html. See the Non-Virtual is the Default section. They do this *because* they saw the drawbacks of

Re: std.compress

2013-06-05 Thread Dmitry Olshansky
06-Jun-2013 01:36, Dmitry Olshansky пишет: 06-Jun-2013 01:14, Jonathan M Davis пишет: On Wednesday, June 05, 2013 20:56:12 SomeDude wrote: On Wednesday, 5 June 2013 at 18:36:34 UTC, David Nadlinger wrote: It also doesn't utilize template constraints, reinvents isRandomAccessRange && hasSlicing

Re: std.compress

2013-06-05 Thread Dmitry Olshansky
06-Jun-2013 01:19, Jonathan M Davis пишет: On Wednesday, June 05, 2013 13:48:40 Walter Bright wrote: On 6/5/2013 11:36 AM, David Nadlinger wrote: It also doesn't utilize template constraints, reinvents isRandomAccessRange && hasSlicing under a poor name, Didn't want to include all of Phobos,

Re: std.compress

2013-06-05 Thread Dmitry Olshansky
06-Jun-2013 01:14, Jonathan M Davis пишет: On Wednesday, June 05, 2013 20:56:12 SomeDude wrote: On Wednesday, 5 June 2013 at 18:36:34 UTC, David Nadlinger wrote: It also doesn't utilize template constraints, reinvents isRandomAccessRange && hasSlicing under a poor name, uses C printf (!) in the

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread bearophile
Kapps: C# chose final-by-default not simply because of performance issues but because of [...] One of the best posts of this thread, Kapps :-) And indeed, the care for versioning is one important part of C# design. Bye, bearophile

Re: std.compress

2013-06-05 Thread Jonathan M Davis
On Wednesday, June 05, 2013 20:25:44 w0rp wrote: > An the subject of std.algorithm being very large, I realised > something. Once the import change is in that makes it possible to > import sub-modules all at once, there will be some nice potential > for splitting up std.algorithm a bit into sub-mod

Re: std.compress

2013-06-05 Thread Walter Bright
On 6/5/2013 12:47 PM, Brad Roberts wrote: Well, both bundle and parcel can be both nouns and verbs. Then I propose we use the terms "dessertTopping" and "floorWax".

Re: std.compress

2013-06-05 Thread Jonathan M Davis
On Wednesday, June 05, 2013 13:48:40 Walter Bright wrote: > On 6/5/2013 11:36 AM, David Nadlinger wrote: > > It also doesn't utilize template constraints, reinvents > > isRandomAccessRange && hasSlicing under a poor name, > > Didn't want to include all of Phobos, which happens if you import std.ra

Re: std.compress

2013-06-05 Thread Walter Bright
On 6/5/2013 1:29 PM, Idan Arye wrote: We already have that function and it's called `chunks`: Well, we'll have to then change 'InputRange' to 'spew'.

Re: std.compress

2013-06-05 Thread Jonathan M Davis
On Wednesday, June 05, 2013 13:37:10 Timothee Cour wrote: > isn't that what DIP37 is supposed to address? Yes. It will make it so that you have package.d with in the package, and it'll have public imports for all of the stuff that you want to be imported when you import the package. It also then

Re: std.compress

2013-06-05 Thread Andrei Alexandrescu
On 6/5/13 4:29 PM, Idan Arye wrote: On Wednesday, 5 June 2013 at 19:47:57 UTC, Brad Roberts wrote: On 6/5/13 12:34 PM, Andrei Alexandrescu wrote: On 6/5/13 2:26 PM, Brad Anderson wrote: On Wednesday, 5 June 2013 at 17:36:05 UTC, Andrei Alexandrescu wrote: Right now we have joiner(), which giv

Re: std.compress

2013-06-05 Thread Jonathan M Davis
On Wednesday, June 05, 2013 20:56:12 SomeDude wrote: > On Wednesday, 5 June 2013 at 18:36:34 UTC, David Nadlinger wrote: > > It also doesn't utilize template constraints, reinvents > > isRandomAccessRange && hasSlicing under a poor name, uses C > > printf (!) in the examples, has random 2-3 letter

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Paulo Pinto
Am 05.06.2013 22:01, schrieb Kapps: On Tuesday, 4 June 2013 at 04:07:10 UTC, Andrei Alexandrescu wrote: Choosing virtual (or not) by default may be dubbed a mistake only in a context. With the notable exception of C#, modern languages aim for flexibility and then do their best to obtain performa

Re: Dynamic array of pointers to opaque structs

2013-06-05 Thread Namespace
Oh ok. I thought you suspect a bug in Derelict.

Re: Dynamic array of pointers to opaque structs

2013-06-05 Thread Johan F.
On Wednesday, 5 June 2013 at 20:51:03 UTC, Namespace wrote: It's not a bug: http://dblog.aldacron.net/forum/index.php?topic=820.0 Hmm, that thread seems to address something else? I'm talking about simply making an array of pointers to opaque structs, which seems to be broken in general (see

Re: std.compress

2013-06-05 Thread Walter Bright
On 6/5/2013 12:45 PM, H. S. Teoh wrote: This is a maintenance nightmare, though. A minor bit of tedium, yes. A nightmare, that's way overblowing things. Neglecting it or making a typo results in a compile time lookup error, not launching nuclear missiles. I'd vote against it unless doing

Re: Path as an object in std.path

2013-06-05 Thread Dylan Knutson
There's a significant difference between a type which has a value and units and one which is basically just a string or array of strings wrapped by another type. Not that a Path struct is without value, but I think that there's a very large difference in the amount of value that the two provide.

Re: Dynamic array of pointers to opaque structs

2013-06-05 Thread Namespace
It's not a bug: http://dblog.aldacron.net/forum/index.php?topic=820.0

Re: std.compress

2013-06-05 Thread Walter Bright
On 6/5/2013 11:36 AM, David Nadlinger wrote: It also doesn't utilize template constraints, reinvents isRandomAccessRange && hasSlicing under a poor name, Didn't want to include all of Phobos, which happens if you import std.range. uses C printf (!) in the examples, Again, trying to make it

Re: Dynamic array of pointers to opaque structs

2013-06-05 Thread Johan F.
On Wednesday, 5 June 2013 at 20:38:08 UTC, Adam D. Ruppe wrote: On Wednesday, 5 June 2013 at 20:34:17 UTC, Johan F. wrote: struct SDL_Texture; Just guessing here, what happens if you make that extern(C) struct SDL_Texture; ? It doesn't change anything. Also, is simply adding {} the rig

Re: Path as an object in std.path

2013-06-05 Thread Timothee Cour
On Wed, Jun 5, 2013 at 1:34 PM, Jonathan M Davis wrote: > On Wednesday, June 05, 2013 22:19:21 Dylan Knutson wrote: > > > I don't have a strong opinion regarding Path object vs. string > > > functions, and I agree both have advantages and disadvantages. > > > But I would be opposed to having both.

Re: std.compress

2013-06-05 Thread Steven Schveighoffer
On Wed, 05 Jun 2013 15:38:56 -0400, Andrei Alexandrescu wrote: On 6/5/13 2:42 PM, H. S. Teoh wrote: Is that even necessary? We could just do this: std/algorithm.d module std.algorithm; public import std.algorithm.search; public import std.algorithm.compare; public import std.algorit

Re: Dynamic array of pointers to opaque structs

2013-06-05 Thread Johan F.
On Wednesday, 5 June 2013 at 20:37:27 UTC, Timon Gehr wrote: On 06/05/2013 10:34 PM, Johan F. wrote: I'm fiddling around with SDL2 using Derelict3, and I'm trying to make an array of SDL_Texture pointers, like so: SDL_Texture*[] frames; ... make texture ... frames ~= texture; Howe

Re: Dynamic array of pointers to opaque structs

2013-06-05 Thread Adam D. Ruppe
On Wednesday, 5 June 2013 at 20:34:17 UTC, Johan F. wrote: struct SDL_Texture; Just guessing here, what happens if you make that extern(C) struct SDL_Texture; ? Also, is simply adding {} the right way of fixing it, or will that possibly break something else? This shouldn't break anyth

Re: Dynamic array of pointers to opaque structs

2013-06-05 Thread Timon Gehr
On 06/05/2013 10:34 PM, Johan F. wrote: I'm fiddling around with SDL2 using Derelict3, and I'm trying to make an array of SDL_Texture pointers, like so: SDL_Texture*[] frames; ... make texture ... frames ~= texture; However, this yields the following error: /Users/jaffe1/prog/De

Re: std.compress

2013-06-05 Thread Timothee Cour
isn't that what DIP37 is supposed to address? On Wed, Jun 5, 2013 at 12:47 PM, H. S. Teoh wrote: > On Wed, Jun 05, 2013 at 03:44:30PM -0400, Andrei Alexandrescu wrote: > > On 6/5/13 3:38 PM, Andrei Alexandrescu wrote: > > >On 6/5/13 2:42 PM, H. S. Teoh wrote: > > >>Is that even necessary? We cou

Dynamic array of pointers to opaque structs

2013-06-05 Thread Johan F.
I'm fiddling around with SDL2 using Derelict3, and I'm trying to make an array of SDL_Texture pointers, like so: SDL_Texture*[] frames; ... make texture ... frames ~= texture; However, this yields the following error: /Users/jaffe1/prog/Derelict3/import/derelict/sdl2/types.d(1865):

Re: Path as an object in std.path

2013-06-05 Thread Jonathan M Davis
On Wednesday, June 05, 2013 22:19:21 Dylan Knutson wrote: > > I don't have a strong opinion regarding Path object vs. string > > functions, and I agree both have advantages and disadvantages. > > But I would be opposed to having both. > > Personally, I'd prefer to just use the Path struct in std.p

Re: std.compress

2013-06-05 Thread Idan Arye
On Wednesday, 5 June 2013 at 19:47:57 UTC, Brad Roberts wrote: On 6/5/13 12:34 PM, Andrei Alexandrescu wrote: On 6/5/13 2:26 PM, Brad Anderson wrote: On Wednesday, 5 June 2013 at 17:36:05 UTC, Andrei Alexandrescu wrote: Right now we have joiner(), which given several ranges of T, offers a rang

Re: Path as an object in std.path

2013-06-05 Thread Timothee Cour
currently there's no way to perform cross-platform operations. what about: --- enum Platform{Posix,Windows} version(Posix) enum PlatformDefault=Platform.Posix; else enum PlatformDefault=Platform.Windows; struct Path(T=PlatformDefault){} void main(){ Path!(Platform.Posix) path="a\b"; auto path2=pa

Re: Path as an object in std.path

2013-06-05 Thread Dylan Knutson
I don't have a strong opinion regarding Path object vs. string functions, and I agree both have advantages and disadvantages. But I would be opposed to having both. Personally, I'd prefer to just use the Path struct in std.path. While a Path can be represented as a string, it's not the same c

Re: std.compress

2013-06-05 Thread Andrei Alexandrescu
On 6/5/13 3:47 PM, Brad Roberts wrote: Well, both bundle and parcel can be both nouns and verbs. Hrm, yah. Not even sure what the relative frequencies are. Andrei

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Andrei Alexandrescu
On 6/5/13 4:01 PM, Kapps wrote: Anders Hejlsberg talks about why they decided to use final by default in C# at http://www.artima.com/intv/nonvirtualP.html. See the Non-Virtual is the Default section. They do this *because* they saw the drawbacks of Java's virtual by default and were able to learn

Re: Slow performance compared to C++, ideas?

2013-06-05 Thread Kapps
On Tuesday, 4 June 2013 at 04:07:10 UTC, Andrei Alexandrescu wrote: Choosing virtual (or not) by default may be dubbed a mistake only in a context. With the notable exception of C#, modern languages aim for flexibility and then do their best to obtain performance. In the context of D in particu

Re: std.compress

2013-06-05 Thread H. S. Teoh
On Wed, Jun 05, 2013 at 03:44:30PM -0400, Andrei Alexandrescu wrote: > On 6/5/13 3:38 PM, Andrei Alexandrescu wrote: > >On 6/5/13 2:42 PM, H. S. Teoh wrote: > >>Is that even necessary? We could just do this: > >> > >>std/algorithm.d > >>module std.algorithm; > >>public import std.algorithm.

Re: std.compress

2013-06-05 Thread Adam D. Ruppe
On Wednesday, 5 June 2013 at 19:49:05 UTC, H. S. Teoh wrote: Oh? I thought the compiler would be smart enough to look for "std/algorithm.d" when you say "import std.algorithm", and to look for std/algorithm/*.d when there's trailing stuff following "std.algorithm". import testmod.test; import

Re: std.compress

2013-06-05 Thread H. S. Teoh
On Wed, Jun 05, 2013 at 12:47:44PM -0700, Brad Roberts wrote: > On 6/5/13 12:34 PM, Andrei Alexandrescu wrote: > >On 6/5/13 2:26 PM, Brad Anderson wrote: > >>On Wednesday, 5 June 2013 at 17:36:05 UTC, Andrei Alexandrescu wrote: > >>>Right now we have joiner(), which given several ranges of T, offer

Re: std.compress

2013-06-05 Thread Brad Roberts
On 6/5/13 12:34 PM, Andrei Alexandrescu wrote: On 6/5/13 2:26 PM, Brad Anderson wrote: On Wednesday, 5 June 2013 at 17:36:05 UTC, Andrei Alexandrescu wrote: Right now we have joiner(), which given several ranges of T, offers a range of T. Developing along that idea, we should have two opposite

Re: std.compress

2013-06-05 Thread H. S. Teoh
On Wed, Jun 05, 2013 at 03:38:56PM -0400, Andrei Alexandrescu wrote: > On 6/5/13 2:42 PM, H. S. Teoh wrote: > >Is that even necessary? We could just do this: > > > >std/algorithm.d > >module std.algorithm; > >public import std.algorithm.search; > >public import std.algorithm.compare; > >pub

Re: std.compress

2013-06-05 Thread Andrei Alexandrescu
On 6/5/13 3:38 PM, Andrei Alexandrescu wrote: On 6/5/13 2:42 PM, H. S. Teoh wrote: Is that even necessary? We could just do this: std/algorithm.d module std.algorithm; public import std.algorithm.search; public import std.algorithm.compare; public import std.algorithm.iteration; public

Re: std.compress

2013-06-05 Thread Andrei Alexandrescu
On 6/5/13 2:42 PM, H. S. Teoh wrote: Is that even necessary? We could just do this: std/algorithm.d module std.algorithm; public import std.algorithm.search; public import std.algorithm.compare; public import std.algorithm.iteration; public import std.algorithm.sort; public import std.al

Re: std.compress

2013-06-05 Thread Andrei Alexandrescu
On 6/5/13 2:36 PM, David Nadlinger wrote: On Wednesday, 5 June 2013 at 17:36:05 UTC, Andrei Alexandrescu wrote: itemize() takes a range of ranges of T and offers a range of T. For example, given a range of T[], offers a range of T. joiner? collect() takes a range of T and offers a range of T[

  1   2   >