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
