builtin sort

Peter Williams pwil3058 at bigpond.net.au
Sat Jun 8 15:25:00 PDT 2013


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



More information about the Digitalmars-d mailing list