Converting from tango.Atomic to D2 core.atomic

eris jvburnes at gmail.com
Wed Jul 6 08:45:53 PDT 2011


Hi,

I've been converting 'qtd' (the qt lib interface for D) to ldc / D2 version.
Apparently some areas of the phobos and druntime library are still a little
green for D2 or LDC2 because I'm jumping through some hoops to make it work.

Minor Issues:

1. core.thread is still using 'volatile' instead of 'synchronized'.  Volatile
has been deprecated and you need to tell the compiler to ignore it or the
compile fails.  I'm thinking that a core D2 library should not cause a compile
abort by default.   I got passed it by disabling deprecated checks.

Major Issues:

2. One file in the qtd implementation (QList.d) is using some sort of
lock-free shared list.  Their implementation uses the old tango.core.Atomic
semantics of Atomic! (load, store, increment, decrement).   I've tried
converting these to the equivalent phobos core.atomic and running into some
dead ends.

a) core.atomic implements nearly all binary ops as well as nearly all
assignment / increment ops.  But it doesn't implement the simplest of the ops:
load, store.  Are these assumed to "just work" for ints and doubles?  If so,
fine, but there are platform-dependent gotchas lurking along that path.



More information about the Digitalmars-d mailing list