https://d.puremagic.com/issues/show_bug.cgi?id=12183
Summary: using std.algorithm.sort makes valgrind abort Product: D Version: D2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: pro.mathias.l...@gmail.com Depends on: 10054 --- Comment #0 from Mathias LANG <pro.mathias.l...@gmail.com> 2014-02-16 06:32:06 PST --- Hi, Valgrind currently doesn't support 80-bits x87 operation, and is unlikely to do so (http://www.valgrind.org/docs/manual/manual-core.html#manual-core.limits). So everytime it'll encounter one, it'll choke on it and abort. By default, std.algorithm.sort will use the unstable SwapStrategy to sort, which will emit an x87 80 bits instruction (there's a cast(real)r.lengh). So by default, we will by slightly more optimized, but one of the most popular debugging tool on linux will stop to work, and force users (possibly newbies) to look into valgrind's implementation details to understand why it's not working. That's why I think we should change the default from unstable to stable. I'll submit a PR soon. NB: Example of code: import std.algorithm, std.string; void main() { string names = "alex|jake|mat"; auto sn = names.split("|").sort(); } Result in: geod@Barsoom:~$ valgrind ./test ==19592== Memcheck, a memory error detector ==19592== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al. ==19592== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info ==19592== Command: ./test ==19592== Boom ? vex amd64->IR: unhandled instruction bytes: 0x48 0xDF 0x6D 0xF0 0xEB 0x1A 0x48 0xB9 vex amd64->IR: REX=1 REX.W=1 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==19592== valgrind: Unrecognised instruction at address 0x4326dd. ==19592== at 0x4326DD: _D3std9algorithm62__T4sortVAyaa5_61203c2062VE3std9algorithm12SwapStrategy0TAAyaZ4sortFAAyaZS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange (in /home/geod/test) [...] -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------