I doubt this is an expected result for Pypy3. But what if you use: result[i] = float(x) if x else 0.0
...to make result be of homogeneous type? On Tue, Feb 15, 2022 at 3:36 AM Ioannis Foufoulas <johnf...@gmail.com> wrote: > Hi, > I have an embedded function: > > @ffi.def_extern() > def toint(input,insize,result): > for i in range(insize): > x = ffi.string(input[i]) > result[i] = float(x) if x else 0 > return 1 > > It seems that this runs around 30-40% percent slower in PyPy3 than in 2. > > Input is a char** c array and result is a float c array. The difference is > not in ffi.string > If having `result[i] = 1 if x else 0` it runs same in both versions. Any > ideas? > > _______________________________________________ > pypy-dev mailing list > pypy-dev@python.org > https://mail.python.org/mailman/listinfo/pypy-dev >
_______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev