On Mon, 2011-02-28 at 09:39 -0500, dsimcha wrote: [ . . . ] > Done. This was actually much easier than I thought. I didn't > document/expose it, though, because I didn't put any thought into > creating an API for it. I just implemented the bare minimum to make > std.parallelism work properly. > > https://github.com/dsimcha/std.parallelism/commit/db7751ba436af3f7ffcaa1b65070f3981a75f98a
Cool. Updated, and tested on Ubuntu 10.10 64-bit and it seems to work
fine.
> This code is tested (at least on my hardware) on Windows 7 and Ubuntu
> 10.10 in both 32 and 64 mode. I did not test on Mac OS because I don't
> own any such hardware, though it **should** work because Mac OS is also
> POSIX. Someone please confirm.
std.parallelism.d fails to compile on Mac OS X 32-bit:
|> sh -x ./all.sh
+ root=parallelism
++ uname -s
+ platform=Darwin
+ dmd -m32 -lib std/parallelism.d
std/parallelism.d(83): Error: undefined identifier _SC_NPROCESSORS_ONLN
std/parallelism.d(100): Error: template core.atomic.cas(T,V1,V2) if
(is(NakedType!(V1) == NakedType!(T)) && is(NakedType!(V2) == NakedType!(T)))
does not match any function template declaration
std/parallelism.d(100): Error: template core.atomic.cas(T,V1,V2) if
(is(NakedType!(V1) == NakedType!(T)) && is(NakedType!(V2) == NakedType!(T)))
cannot deduce template function from argument types
!()(shared(ubyte*),ubyte,ubyte)
std/parallelism.d(129): Error: template core.atomic.cas(T,V1,V2) if
(is(NakedType!(V1) == NakedType!(T)) && is(NakedType!(V2) == NakedType!(T)))
does not match any function template declaration
std/parallelism.d(129): Error: template core.atomic.cas(T,V1,V2) if
(is(NakedType!(V1) == NakedType!(T)) && is(NakedType!(V2) == NakedType!(T)))
cannot deduce template function from argument types
!()(shared(ubyte*),ubyte,ubyte)
std/parallelism.d(133): Error: template core.atomic.atomicOp(string op,T,V1) if
(is(NakedType!(V1) == NakedType!(T))) does not match any function template
declaration
std/parallelism.d(133): Error: template core.atomic.atomicOp(string op,T,V1) if
(is(NakedType!(V1) == NakedType!(T))) cannot deduce template function from
argument types !("+=")(uint,uint)
std/parallelism.d(133): Error: template instance errors instantiating template
> BTW, I don't imagine we care about supporting ancient (pre-Windows 2000)
> Windows. The Windows code will only work for Win2k and up.
I don't care about Windows of any sort ;-) More widely though I would
guess saying "XP and above only" probably covers the field with the best
cost/benefit.
--
Russel.
=============================================================================
Dr Russel Winder t: +44 20 7585 2200 voip: sip:[email protected]
41 Buckmaster Road m: +44 7770 465 077 xmpp: [email protected]
London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
signature.asc
Description: This is a digitally signed message part
