from symengine import Symbol, DenseMatrix
class MySymbol(Symbol):
def __getitem__(self, x):
pass
x = Symbol("x")
y = MySymbol("y")
DenseMatrix([x]) # works fine
DenseMatrix([y]) # SIGSEGV
In PyCalphad (https://github.com/pycalphad/pycalphad/issues/547), we have something where __getitem__ returns, effectively, a new MySymbol, and think ends up in some loop where MySymbol keeps getting created and eats all the system memory.
Here's a self-contained test
In PyCalphad (https://github.com/pycalphad/pycalphad/issues/547), we have something where
__getitem__
returns, effectively, a newMySymbol
, and think ends up in some loop whereMySymbol
keeps getting created and eats all the system memory.