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.