On 08/06/13 18:51, Jonathan M Davis wrote:
On Saturday, June 08, 2013 10:30:52 Stephan Schiffels wrote:
Hi,
I know it has been discussed previously to deprecate the builtin
sort. I don't know the status of this, but I observed the
following problem.
With dmd, druntime and phobos all on 2.063, this program runs
successfully on a mac:
#!/usr/bin/env rdmd
import std.stdio;
void main() {
int[] a = [5, 4, 3, 2, 1];
a.sort;
writeln(a);
}
But it fails on linux, with the line:
/nfs/users/nfs_s/ss27/Software/dlang/phobos/generated/linux/release/64/libph
obos2.a(qsort_4c4_2cc.o): In function `_adSort':
src/rt/qsort.d:(.text._adSort+0x47): undefined reference to
`qsort_r'
collect2: ld returned 1 exit status
--- errorlevel 1
When I change "a.sort" -> "a.sort()" and add import std.algorithm
everything works fine.
Does this mean that the builtin sort on Linux is broken with
2.063?
Hmm, it works just fine on my system (64-bit Linux), so I don't know why you're
seeing the problem that you're seeing.
However, we really, really need to deprecate the built-in sort - especially
when a pair of parens can make the difference between whether you call the
built-in sort or std.algorithm's sort - and it's particularly broken with
regards to Unicode.
- Jonathan M Davis
Rather than deprecate it why not fix it? Shouldn't have to import
std.algorithm just to sort an array.
Peter