# nim: et ## compiled with: nim -d:release c filename ## nim v 0.19.9 proc main() = const N = 20_000_000; #var data {.noinit.}: array[N,int32] var data {.noinit.} = newSeq[int32](N) # custom init for i in 0'i32 ..< N: data[i] = i # busy work for r in 1 .. 49: for i in 3 ..< N-1: data[i] = (data[i-1]+data[i+1]) div 2 echo "result: ",data[N-2] when isMainModule: main() Run $ time ./speed-nim result: 19999998 real 0m1.576s user 0m1.527s sys 0m0.035s $ time ./speed-cpp.exe result: 19999998 real 0m1.591s user 0m1.543s sys 0m0.035s Run
Does anyone know whether `{.noInit.}` applies to `newSeq()`? Just curious?