The latter. Anyway, my vetoing abilities are largely overrated.

Andrei

On 9/10/10 13:16 CDT, David Simcha wrote:
Andrei,

Does my decision that std.parallelism should be a "here be dragons"
module and there's no reasonably way to make it safe make it a
non-starter for you, or have you just not gotten around to reviewing it?

--Dave

On Sun, Sep 5, 2010 at 11:05 AM, David Simcha <[email protected]
<mailto:[email protected]>> wrote:

    It doesn't use std.concurrency.  It just uses core.thread.  For now,
    core.thread doesn't take a shared delegate, meaning it bypasses the
    entire shared system.  Sean said a while back that eventually it
    would start taking a shared delegate.  When it does, I'll simply
    cast the workLoop delegate to shared, thus bypassing the entire
    shared system again.  As the warning at the top of the module
    states, it does subvert the type system to achieve completely
    unchecked sharing, though this doesn't require relying on
    implementation bugs, just unsafe casts.

    I've thought about this enough that I think trying to improve the
    type system to make this lib use something other than completely
    unchecked sharing, while still being useful for pedal-to-metal
    parallelism, is a lost cause at least for D2. *Maybe* it's do-able
    in D3.  Even if it's technically do-able, I think it would make the
    library so inefficient and/or the API so obtuse that for something
    like this I feel strongly that unsafe "here be dragons" + @system is
    the right answer.  Those that want a safe multithreading model can
    simply not use this module.

    I am completely in favor of std.parallelism coming w/ a huge warning
    on it, being @system as opposed to @trusted, and not being
    considered the "flagship" multhreading model.  However, even TDPL
    mentions the possibility of using casts to achieve unchecked
    sharing, which is exactly what this module will do when core.thread
    starts taking shared delegates.  If D is still supposed to be a
    systems language, I think dangerous, pedal-to-metal libraries like
    this have their place in Phobos, as long as it's clear that that's
    what they are.



_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to