Hello,
I am experimenting with arraymancer and when compiling with nimble install
--gc:arc while using arraymancer I encounters weird behaviour such as :
* code blocking on Matrix by scalar :code:* operation
* SIGSEGV: Illegal storage access. (Attempt to read from nil?) when doing
Matrix by Matrix :code:*. operation
I am using the devel nim :
Nim Compiler Version 1.1.1 [Linux: amd64]
Compiled at 2020-03-05
Copyright (c) 2006-2019 by Andreas Rumpf
I installed arraymancer with nimble install arraymancer@#head
For reference here is the code that reproduce :
import arraymancer
proc doubleMe(data : Tensor[float]): Tensor[float]=
result = data*2
proc squareMe(data : Tensor[float]): Tensor[float]=
result = data*.data
let A : seq[float] = @[0.11, 0.12, 0.13, 0.14]
echo A.type
echo A
var B : Tensor[float] = A.toTensor
echo B
# Blocking
var C = doubleMe(B)
echo C
#Segfault
var D = squareMe(C)
echo D
Run
If I remove the \--gc:arc flag it behaves normally.
Is this "normal" behaviour (meaning arraymancer does not support arc) or am I
miss something obvious ?