Re: Building druntime on MAC OS X

2013-11-16 Thread Jacob Carlborg
On 2013-11-16 04:19, Andrew Edwards wrote: I am having little problem building druntime on Mac OS X 10.9 (Mavericks) and am wondering if anyone has experienced with this and some guidance on how to fix it. Here is my command: make -f posix.mak install DMD=../install/bin/dmd And here is the resu

Re: std.allocator ready for some abuse

2013-11-16 Thread Jack Applegame
Passing -g flag to the linker causes a linker error on win32. Very simple program: import std.allocator; void main() {} Compilation commands: dmd.exe -g -debug -c std/allocator.d -ofallocator.obj dmd.exe -g -debug -c main.d -ofmain.obj dmd.exe out.exe -g allocator.obj main.obj Output: dmd.exe

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Ivan Kazmenko
On Friday, 15 November 2013 at 21:46:26 UTC, Vladimir Panteleev wrote: I've been investigating an instance that I ran into while processing some data, in which multiSort had apparently stalled whereas two successive sort calls processed the data quickly. After reducing the code and 20 million p

Re: First round of Facebook bounties funded - have at it!

2013-11-16 Thread bearophile
I remember a new tool to solve this problem, so perhaps this bug report should be closed. https://www.bountysource.com/issues/1326911-dtoh-utility-convert-d-files-to-c-header-files I think people have implemented a solution for this bug, but it caused problems: https://www.bountysource.com/

Re: Please don't rebase / ff the git master branches

2013-11-16 Thread Russel Winder
On Fri, 2013-11-15 at 23:51 +0100, qznc wrote: […] > Yay, another war about git workflows. :) […] I always thought it was de rigueur never to rebase a publicly published repository. -- Russel. = Dr Russel Winder t:

Re: Please don't rebase / ff the git master branches

2013-11-16 Thread Martin Nowak
On Friday, 15 November 2013 at 22:36:14 UTC, Vladimir Panteleev wrote: Currently, the merge commits provide important information: which commits belong in which pull request, who merged the pull request and when. I realize that merges visually clutter the history in most git clients, however IM

Re: (Linux) Which compilers should be working now with shared libraries?

2013-11-16 Thread Martin Nowak
On Friday, 15 November 2013 at 20:17:38 UTC, Marco Leise wrote: Oops, this was answered with "not ready yet" a few topics earlier. Ok, then static D libs only for now. That applies only to loading, linking shared libraries works.

Re: Combining decoding and matching

2013-11-16 Thread bearophile
Dmitry Olshansky: Pull & peek at preliminary results https://github.com/D-Programming-Language/phobos/pull/1685 Docs http://blackwhale.github.io/phobos/std_uni.html#MatcherConcept Good. Are those ideas usable for other Phobos functions, like group? http://forum.dlang.org/thread/snnmkdmhxou

Integer undefined behaviors in crypto libs

2013-11-16 Thread bearophile
Found on Reddit: http://blog.regehr.org/archives/1054/ Some quotations from the article and its comments: I proposed making signed left-shift work just like unsigned left-shift. In contrast, in C99, C11, and C++11, it is illegal to shift a 1 bit into, out of, or through the sign bit. Many dev

Re: Combining decoding and matching

2013-11-16 Thread Dmitry Olshansky
16-Nov-2013 17:02, bearophile пишет: Dmitry Olshansky: Pull & peek at preliminary results https://github.com/D-Programming-Language/phobos/pull/1685 Docs http://blackwhale.github.io/phobos/std_uni.html#MatcherConcept Good. Are those ideas usable for other Phobos functions, like group? http:

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Jean Christophe
On Friday, 15 November 2013 at 21:46:26 UTC, Vladimir Panteleev wrote: getPivot(0..10) 8,7,6,5,4,3,2,1,0,9 <- getPivot - before swap 9,7,6,5,4,8,2,1,0,3 <- getPivot - after swap 9,7,6,5,4,3,2,1,0,8 <- quickSortImpl - after swap 9,8,6,5,4,3,2,1,0,7 <- quickSortImpl - after partition getPivot(2..

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Vladimir Panteleev
On Saturday, 16 November 2013 at 14:20:32 UTC, Jean Christophe wrote: On Friday, 15 November 2013 at 21:46:26 UTC, Vladimir Panteleev wrote: getPivot(0..10) 8,7,6,5,4,3,2,1,0,9 <- getPivot - before swap 9,7,6,5,4,8,2,1,0,3 <- getPivot - after swap 9,7,6,5,4,3,2,1,0,8 <- quickSortImpl - after s

Re: First round of Facebook bounties funded - have at it!

2013-11-16 Thread Adam D. Ruppe
https://www.bountysource.com/issues/1326911-dtoh-utility-convert-d-files-to-c-header-files I'm pretty sure my little thing there actually works, and the only comment on it is stupid bullshit like spaces vs tabs. More capabilities are possible if dmd's json output improves, but what's there is

Re: DIP45: fixing the dllimport/dllexport issue

2013-11-16 Thread Martin Nowak
On 09/19/2013 01:55 PM, Benjamin Thaut wrote: B: You shouldn't mix static with dynamic linking, ODR issues are what you get in return. Well you should not. But it will happen. Espeically if you don't have any control over what others due. E.g. when using third party libraries. Let me put it diff

Re: DIP45: fixing the dllimport/dllexport issue

2013-11-16 Thread Martin Nowak
On 09/23/2013 08:30 AM, Rainer Schuetze wrote: I just checked the OMF and COFF docs: it should be possible to wipe out the export records without having to rewrite the object files, so it's not too involved. Don't know about ELF or mach-o, though. I tried this and implemented it by rewriting the

Re: DIP 45 - approval discussion

2013-11-16 Thread Martin Nowak
On 11/13/2013 09:45 PM, Benjamin Thaut wrote: Would you mind moving this discussion to another thread? Everytime I see a update I think its something relevant and usually its just about object.factory. Yes please, OT discussions ruin every focus.

Re: DIP 45 - approval discussion

2013-11-16 Thread Martin Nowak
On 11/14/2013 11:28 AM, Walter Bright wrote: One possibility is modules listed on the command line are regarded as export==dllexport, and other modules as export==dllimport. We've considered this and it doesn't work for separate compilation. This means I couldn't compile phobos dll with unitte

Re: DIP 45 - approval discussion

2013-11-16 Thread Martin Nowak
On 11/15/2013 08:32 AM, Walter Bright wrote: It's not that bad. Phobos can be built by specifying all the files on the command line. That's the essential trade-off we have to make. Either we come up with a clumsy way to list all DLL modules during compilation (separate compilation) or we add

Re: DIP 45 - approval discussion

2013-11-16 Thread Martin Nowak
On 11/12/2013 11:12 PM, Martin Nowak wrote: That's not an issue, you can't inline exported functions. This is because the actual implementation is only know at link-time (only at run-time on UNIX). One might chose to ignore this possibly incorrect behaviour and still inline in favour of speed,

Re: Building druntime on MAC OS X

2013-11-16 Thread Andrew Edwards
On 11/16/13, 4:57 AM, Jacob Carlborg wrote: On 2013-11-16 04:19, Andrew Edwards wrote: I am having little problem building druntime on Mac OS X 10.9 (Mavericks) and am wondering if anyone has experienced with this and some guidance on how to fix it. Here is my command: make -f posix.mak install

Re: Building druntime on MAC OS X

2013-11-16 Thread Andrew Edwards
On 11/16/13, 1:47 AM, Joakim wrote: I suggest you look at where this --export-dynamic flag is being added in the build scripts and try changing the number of dashes or removing the flag, after looking at the docs for the OS X linker to see what flags it takes. The correct flag is -export_dynami

Re: Building druntime on MAC OS X

2013-11-16 Thread Andrew Edwards
On 11/15/13, 11:14 PM, Nathan M. Swan wrote: Have you tried using this? https://github.com/carlor/dlang-workspace Sorry for the shameless plug. NMS I have not.

Re: std.allocator ready for some abuse

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 2:50 AM, Jack Applegame wrote: Passing -g flag to the linker causes a linker error on win32. [snip] Maybe this would help? http://community.rti.com/kb/why-does-visual-studio-complain-about-alignedmalloc-and-alignedfree Andrei

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 3:29 AM, Ivan Kazmenko wrote: On Friday, 15 November 2013 at 21:46:26 UTC, Vladimir Panteleev wrote: I've been investigating an instance that I ran into while processing some data, in which multiSort had apparently stalled whereas two successive sort calls processed the data quickly.

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 6:20 AM, Jean Christophe wrote: On Friday, 15 November 2013 at 21:46:26 UTC, Vladimir Panteleev wrote: getPivot(0..10) 8,7,6,5,4,3,2,1,0,9 <- getPivot - before swap 9,7,6,5,4,8,2,1,0,3 <- getPivot - after swap 9,7,6,5,4,3,2,1,0,8 <- quickSortImpl - after swap 9,8,6,5,4,3,2,1,0,7 <-

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 3:29 AM, Ivan Kazmenko wrote: On Friday, 15 November 2013 at 21:46:26 UTC, Vladimir Panteleev wrote: I've been investigating an instance that I ran into while processing some data, in which multiSort had apparently stalled whereas two successive sort calls processed the data quickly.

Re: Building druntime on MAC OS X

2013-11-16 Thread Jacob Carlborg
On 2013-11-16 16:39, Andrew Edwards wrote: You nailed it. It is in the dmd.conf file. Its content is this: [Environment] DFLAGS=-L--export-dynamic -I%@P%/../import -L-L%@P%/../lib -L-lrt It is generated automatically from src/dmd.conf.default while building dmd as such: make

Re: Ehem, ARM

2013-11-16 Thread Andrew
A few weeks ago I tried compiling gdc and ldc on my Debian arm system and they built Ok but the apps crashed when run. I think the error was something to do with fibres in Phobos and druntime. I tried quickly hacking in missing architecture macros for Arm but I didn't know what I was doing so

Re: Building druntime on MAC OS X

2013-11-16 Thread Martin Nowak
On 11/16/2013 04:39 PM, Andrew Edwards wrote: It is generated automatically from src/dmd.conf.default while building dmd as such: make -f posix.mak install The install target is work in progress. We want to use this to build releases, but it's not ready yet. Here is the explanation fr

Re: Ehem, ARM

2013-11-16 Thread Martin Nowak
On 11/16/2013 06:51 PM, Andrew wrote: I think the error was something to do with fibres in Phobos and druntime. Fibers probably won't work out of the box, but they aren't used anywhere in druntime/phobos so did you get a hello world to run?

Re: Ehem, ARM

2013-11-16 Thread Andrew
On Saturday, 16 November 2013 at 18:03:29 UTC, Martin Nowak wrote: On 11/16/2013 06:51 PM, Andrew wrote: I think the error was something to do with fibres in Phobos and druntime. Fibers probably won't work out of the box, but they aren't used anywhere in druntime/phobos so did you get a hello

Re: Ehem, ARM

2013-11-16 Thread Andrew
Just a thought but most ARM systems, Linux based, used EABI whereas iOS uses an Apple specific ABI so you'll probably need to target each separately. Also there are two variants of EABI hard-float (most common now) and soft-float.

Re: Ehem, ARM

2013-11-16 Thread Doodoo
1. Remove the stupid GC, it doesn't scale anyway 2. Compile to C or C++ DONE! WAHOOO

Re: (Linux) Which compilers should be working now with shared libraries?

2013-11-16 Thread Marco Leise
Am Sat, 16 Nov 2013 14:00:53 +0100 schrieb "Martin Nowak" : > On Friday, 15 November 2013 at 20:17:38 UTC, Marco Leise wrote: > > Oops, this was answered with "not ready yet" a few topics > > earlier. Ok, then static D libs only for now. > > That applies only to loading, linking shared libraries

Re: Ehem, ARM

2013-11-16 Thread David Nadlinger
On Friday, 15 November 2013 at 19:09:24 UTC, Johannes Pfau wrote: * The main program in Android should always be java code, native code loaded as shared libraries. This is implemented in DMD now, but not in GDC. (And IIRC not in LDC either?) On the 2.064 frontend branch, LDC already uses

Re: (Linux) Which compilers should be working now with shared libraries?

2013-11-16 Thread David Nadlinger
On Friday, 15 November 2013 at 19:38:10 UTC, Marco Leise wrote: What about LDC? As I just noted in another thread, the DMD 2.064 branch of LDC now uses the same module discovery/runtime startup scheme on Linux as DMD. So, thanks to Martin's awesome work, it is only a matter of working any re

Re: First round of Facebook bounties funded - have at it!

2013-11-16 Thread John J
On 11/16/2013 12:59 AM, Andrei Alexandrescu wrote: We've chosen a representative collection of 23 bugs https://bountysource.com/trackers/383571-d-programming-language Wow! This is cool! Besides getting the critical bugs fixed, it's a nice publicity for D language too, especially if it contin

Github: Any way we can figure out which pulls are closed and which ones are merged?

2013-11-16 Thread Andrej Mitrovic
I've e-mailed Github about this already (maybe a year ago), they said it would be great if we had this "feature" (this is basic functionality in my book..). But to no avail, they just keep adding useless features like embedded imagery, more smiley faces, automatic gravatar generation, while really

Re: Github: Any way we can figure out which pulls are closed and which ones are merged?

2013-11-16 Thread Brad Roberts
On 11/16/13 11:11 AM, Andrej Mitrovic wrote: I've e-mailed Github about this already (maybe a year ago), they said it would be great if we had this "feature" (this is basic functionality in my book..). But to no avail, they just keep adding useless features like embedded imagery, more smiley face

Re: Github: Any way we can figure out which pulls are closed and which ones are merged?

2013-11-16 Thread Andrej Mitrovic
On 11/16/13, Brad Roberts wrote: > https://api.github.com/repos/D-Programming-Language/dmd/pulls?state=open&per_page=10 > > note the merged_at and closed_at fields. Excellent, thanks!

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Xinok
On Friday, 15 November 2013 at 21:46:26 UTC, Vladimir Panteleev wrote: ... I'm a horrible procrastinator, I should have had this fixed over a year ago, lol. Anyways, I posted a bug report about this problem long ago and a working solution has been gathering dust waiting to be implemented in

Can't create dll

2013-11-16 Thread Yaroslav
I'm trying to create dll. It is template in mono-d plugin. module myclass; class MyClass { //TODO: Enter class code here } export: extern(D): MyClass createMyClass() { return new MyClass(); } // Build completed with errors. Compiler output: Building: dshared (D

Re: Building druntime on MAC OS X

2013-11-16 Thread deadalnix
On Saturday, 16 November 2013 at 06:47:39 UTC, Joakim wrote: The recent switch to clang on 10.9 as the reason seemed to make sense, as I've run into a similar issue with clang before. But after googling a little bit and looking at the error, maybe the problem is a new linker in OS X 10.9? Ass

Re: Can't create dll

2013-11-16 Thread Ary Borenszweig
On 11/16/13 5:11 PM, Yaroslav wrote: I'm trying to create dll. It is template in mono-d plugin. module myclass; class MyClass { //TODO: Enter class code here } export: extern(D): MyClass createMyClass() { return new MyClass(); } // Build completed with errors. Compi

Re: Building druntime on MAC OS X

2013-11-16 Thread Orvid King
On 11/16/13, deadalnix wrote: > On Saturday, 16 November 2013 at 06:47:39 UTC, Joakim wrote: >> The recent switch to clang on 10.9 as the reason seemed to make >> sense, as I've run into a similar issue with clang before. But >> after googling a little bit and looking at the error, maybe the >> p

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 11:46 AM, Xinok wrote: * Regardless of these improvements, I think Timsort should be the default sorting algorithm. It's the better choice in many (most?) cases and, well, it's stable. Quick sort would still be available for those cases in which it's faster and stable sorting isn't ne

Re: Building druntime on MAC OS X

2013-11-16 Thread Joakim
On Saturday, 16 November 2013 at 20:25:01 UTC, deadalnix wrote: On Saturday, 16 November 2013 at 06:47:39 UTC, Joakim wrote: The recent switch to clang on 10.9 as the reason seemed to make sense, as I've run into a similar issue with clang before. But after googling a little bit and looking at

Re: Can't create dll

2013-11-16 Thread Yaroslav
Yes, it works, thank you!

Re: Can't create dll

2013-11-16 Thread Ary Borenszweig
On 11/16/13 5:11 PM, Yaroslav wrote: I'm trying to create dll. It is template in mono-d plugin. By the way, someone should *really* rename this list to "D.dev" or something similar, and put it at the bottom (or just put digitalmars.D.learn at the top top).

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Xinok
On Saturday, 16 November 2013 at 20:35:21 UTC, Andrei Alexandrescu wrote: On 11/16/13 11:46 AM, Xinok wrote: * Regardless of these improvements, I think Timsort should be the default sorting algorithm. It's the better choice in many (most?) cases and, well, it's stable. Quick sort would still b

Re: Building druntime on MAC OS X

2013-11-16 Thread Andrew Edwards
On 11/16/13, 12:59 PM, Martin Nowak wrote: On 11/16/2013 04:39 PM, Andrew Edwards wrote: It is generated automatically from src/dmd.conf.default while building dmd as such: make -f posix.mak install The install target is work in progress. We want to use this to build releases, but it's

Re: (Linux) Which compilers should be working now with shared libraries?

2013-11-16 Thread qznc
On Saturday, 16 November 2013 at 13:00:54 UTC, Martin Nowak wrote: On Friday, 15 November 2013 at 20:17:38 UTC, Marco Leise wrote: Oops, this was answered with "not ready yet" a few topics earlier. Ok, then static D libs only for now. That applies only to loading, linking shared libraries work

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 2:11 PM, Xinok wrote: On Saturday, 16 November 2013 at 20:35:21 UTC, Andrei Alexandrescu wrote: On 11/16/13 11:46 AM, Xinok wrote: * Regardless of these improvements, I think Timsort should be the default sorting algorithm. It's the better choice in many (most?) cases and, well, it'

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Craig Dillabaugh
On Saturday, 16 November 2013 at 14:20:32 UTC, Jean Christophe wrote: clip BTW I'm very interested in finding a library which could Quicksort an array of pointers, where each pointer points to a class object (or a structure) address. The library would make possible, for example, to sort the `

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Chris Cain
On Saturday, 16 November 2013 at 23:40:39 UTC, Andrei Alexandrescu wrote: This is in response to what? Are you trying to talk me out of the pigeonhole principle? ... I understand and appreciate that Timsort is a nicely optimized algorithm. This has nothing to do with it doing more work than

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 4:18 PM, Chris Cain wrote: I think it's more complicated than that. Let's assume for a moment that you've proven that such an unstable sort must exist that is faster (I'm not convinced that it necessarily must take extra work to maintain stability). Very simple. Any sequence with a

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Ivan Kazmenko
On Sunday, 17 November 2013 at 00:18:24 UTC, Chris Cain wrote: I think it's more complicated than that. Let's assume for a moment that you've proven that such an unstable sort must exist that is faster (I'm not convinced that it necessarily must take extra work to maintain stability). You have

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Chris Cain
On Sunday, 17 November 2013 at 00:56:46 UTC, Andrei Alexandrescu wrote: Very simple. Any sequence with a large number of equivalent elements will cause timsort to work more than an unstable algorithm, because it would need to shift around those elements. (Consider e.g. 1, 0, 0, 0, ..., 0.) The

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Chris Cain
On Sunday, 17 November 2013 at 01:07:20 UTC, Ivan Kazmenko wrote: Regarding an ideal pivot choice for quicksort, I'd like to emphasize that it is simply non-existent. Here's why. Oh, of course. I did that in an algorithms class taught by a Professor who is into Cryptography. I agree that esse

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Ivan Kazmenko
On Sunday, 17 November 2013 at 01:07:20 UTC, Ivan Kazmenko wrote: Now, the assumption of picking a pivot in O(1) comparisons covers a broad variety of pivot choices, including first/last/middle/random element, median of three or five, median of medians, or any combination of these. The random

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Craig Dillabaugh
On Sunday, 17 November 2013 at 01:07:20 UTC, Ivan Kazmenko wrote: On Sunday, 17 November 2013 at 00:18:24 UTC, Chris Cain wrote: I think it's more complicated than that. Let's assume for a moment that you've proven that such an unstable sort must exist that is faster (I'm not convinced that it

Re: Github: Any way we can figure out which pulls are closed and which ones are merged?

2013-11-16 Thread Martin Nowak
On 11/16/2013 08:39 PM, Andrej Mitrovic wrote: Excellent, thanks! I remember that I wrote a small script for this once, but it's gone. Walter asked for this. The ugly thing about the API was that you had to iterate over each pull request which took pretty long for dmd.

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Chris Cain
On Sunday, 17 November 2013 at 01:39:43 UTC, Chris Cain wrote: (if a quicksort were designed wise to this sort of trick, but most, including D's quicksort, would actually shuffle everything around) Actually, not everything. It'd swap the pivot and the last element (4 and 7 for the first itera

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Vladimir Panteleev
On Sunday, 17 November 2013 at 01:48:14 UTC, Craig Dillabaugh wrote: 1. Find the median value in the array. This can be done deterministically in linear time, My understanding that for unordered data, there is no algorithm that runs in worst-case O(n): http://en.wikipedia.org/wiki/Selection_

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Vladimir Panteleev
On Saturday, 16 November 2013 at 22:11:46 UTC, Xinok wrote: And the results (last number is predicate calls): Current Unstable Sort 50ms 32783474 New Unstable Sort 69ms 21503542 Timsort35ms 3905887 For the record, I tried both SwapStragegy options with my data (the da

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Xinok
On Sunday, 17 November 2013 at 00:56:46 UTC, Andrei Alexandrescu wrote: On 11/16/13 4:18 PM, Chris Cain wrote: You have not shown how much faster it might be (it could be only 1% faster) nor how much work it would take to discover (even an ideal pivot choice for quicksort actually cannot be as

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Xinok
On Friday, 15 November 2013 at 22:56:58 UTC, Craig Dillabaugh wrote: What are the arguments against using a randomized algorithm? (1) Sort is capable of being marked pure, depending on the type being sorted and the predicate. But choosing random pivots means introducing side effects. (2) Ra

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Xinok
On Sunday, 17 November 2013 at 02:44:45 UTC, Vladimir Panteleev wrote: On Saturday, 16 November 2013 at 22:11:46 UTC, Xinok wrote: And the results (last number is predicate calls): Current Unstable Sort 50ms 32783474 New Unstable Sort 69ms 21503542 Timsort35ms 3905887

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 5:07 PM, Ivan Kazmenko wrote: The above is just my retelling of a great short article "A Killer Adversary for Quicksort" by M. D. McIlroy here: http://www.cs.dartmouth.edu/~doug/mdmspe.pdf Nice story, but the setup is a tad tenuous (albeit indeed theoretically interesting). For sta

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 6:42 PM, Xinok wrote: On Sunday, 17 November 2013 at 00:56:46 UTC, Andrei Alexandrescu wrote: On 11/16/13 4:18 PM, Chris Cain wrote: You have not shown how much faster it might be (it could be only 1% faster) nor how much work it would take to discover (even an ideal pivot choice fo

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 5:39 PM, Chris Cain wrote: Given [1,2,3,4,5,6,7] Picking the best pivot, 4 would result in scanning the entire array to assure that it is partitioned appropriately around the 4 (if a quicksort were designed wise to this sort of trick, but most, including D's quicksort, would actually

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Jean Christophe
On Saturday, 16 November 2013 at 16:10:56 UTC, Andrei Alexandrescu wrote: On 11/16/13 6:20 AM, Jean Christophe wrote: On Friday, 15 November 2013 at 21:46:26 UTC, Vladimir Panteleev wrote: getPivot(0..10) 8,7,6,5,4,3,2,1,0,9 <- getPivot - before swap 9,7,6,5,4,8,2,1,0,3 <- getPivot - after sw

Re: Can't create dll

2013-11-16 Thread John J
On 11/16/2013 05:05 PM, Ary Borenszweig wrote: On 11/16/13 5:11 PM, Yaroslav wrote: I'm trying to create dll. It is template in mono-d plugin. By the way, someone should *really* rename this list to "D.dev" or something similar, and put it at the bottom (or just put digitalmars.D.learn at the

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Chris Cain
On Sunday, 17 November 2013 at 04:14:22 UTC, Andrei Alexandrescu wrote: Probably a good step forward would be to hook a sort benchmarking corpus to our unittests. What are the consecrated corpora? I'll kick off the suggestions with this: File to provide "real" data: ftp://ftp.ncbi.nih.gov/gen

Re: Can't create dll

2013-11-16 Thread Nick
D.design seems like a clear and simple name to me, and the description should probably be changed from "General discussion of the D programming language." to "Discussion about the design and implementation of the D programming language." On Sunday, 17 November 2013 at 05:03:33 UTC, John J wrot

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Jean Christophe
BTW I'm very interested in finding a library which could Quicksort an array of pointers, where each pointer points to a class object (or a structure) address. The library would make possible, for example, to sort the `class objects` using one of their members as the key. Because the swaps are

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 9:30 PM, Jean Christophe wrote: An indirect sorting, assuming a and b to be ojects of class SomePotentialyLargeClass. Because the array to sort contains pointers only, all the data movement is essentially the same as if we were sorting integer. Maybe makeIndex may be of help. http

D Language Citation

2013-11-16 Thread Sumit Adhikari
Dear User Community, This mail is in particular to the citation of D. D is extremely poorly cited (Yes this comes from a R&D guy). I searched and searched (everywhere including IEEEXplore) and nothing comes in my hand! There are materials available on internet which are not peer reviewed an

D Language Citation

2013-11-16 Thread Sumit Adhikari
Dear User Community, This mail is in particular to the citation of D. D is extremely poorly cited (Yes this comes from a R&D guy). I searched and searched (everywhere including IEEEXplore) and nothing comes in my hand! There are materials available on internet which are not peer reviewed and hen

Re: Worst-case performance of quickSort / getPivot

2013-11-16 Thread Andrei Alexandrescu
On 11/16/13 9:21 PM, Chris Cain wrote: That said, it might also be reproduced "well enough" using a random generator to create similar strings to sort, but the basic idea is there. I just like using real genomes for performance testing things :) I am hoping for some more representative corpora,

Re: D Language Citation

2013-11-16 Thread Sumit Adhikari
On Sunday, 17 November 2013 at 07:03:53 UTC, Sumit Adhikari wrote: Dear User Community, This mail is in particular to the citation of D. D is extremely poorly cited (Yes this comes from a R&D guy). I searched and searched (everywhere including IEEEXplore) and nothing comes in my hand! There