Ok, ok. Here, I pasted the code, minimized as far as I could. There are 434 lines of code, sorry.
http://pastebin.com/UcZUc79g

The main is empty. This is intended. I still have the segmentation fault.

Maybe, I have another hint:
If I comment all the attributes in the
private HeadUnshared!(T) atomicFetchAdd(T, V1)( ref shared T val, V1 mod ) //pure nothrow @nogc @trusted
method in atomic.d, in line 657, away, and add something like
import std.stdio;
writeln("kuku");
at the first lines of the body
I get an error message on compiling:

/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/core/atomic.d(722,46): Error: pure 
function 'core.atomic.atomicOp!("+=", ulong, int).atomicOp' cannot call impure 
function 'core.atomic.atomicFetchAdd!(ulong, int).atomicFetchAdd'
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/core/atomic.d(722,46): Error: @nogc 
function 'core.atomic.atomicOp!("+=", ulong, int).atomicOp' cannot call 
non-@nogc function 'core.atomic.atomicFetchAdd!(ulong, int).atomicFetchAdd'
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/core/atomic.d(722,46): Error: 
function 'core.atomic.atomicFetchAdd!(ulong, int).atomicFetchAdd' is not nothrow
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/core/atomic.d(692,22): Error: nothrow 
function 'core.atomic.atomicOp!("+=", ulong, int).atomicOp' may throw
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/std/parallelism.d-mixin-3786(3812,50): 
Error: template instance core.atomic.atomicOp!("+=", ulong, int) error 
instantiating
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/std/parallelism.d(3309,1):      
  instantiated from here: ParallelForeach!(double[][])
source/app.d(143,41): instantiated from here: parallel!(double[][]) source/app.d(20,34): instantiated from here: crs2!(crs2Fun02, crs2Params!(OptInit))

Maybe, this doesn't say anything about the segmentation error. But the last two lines are, maybe a hint, which route is taken on compilation.

Reply via email to