--- - branch: MAIN date: Wed Mar 4 18:27:28 UTC 2020 files: - new: '1.42' old: '1.41' path: pkgsrc/devel/py-cffi/Makefile pathrev: pkgsrc/devel/py-cffi/Makefile@1.42 type: modified - new: '1.37' old: '1.36' path: pkgsrc/devel/py-cffi/distinfo pathrev: pkgsrc/devel/py-cffi/distinfo@1.37 type: modified id: 20200304T182728Z.364b678187faa26ebbb760a0932cab58b52b278c log: | py-cffi: updated to 1.14.0 v1.14 ffi.dlopen() can now be called with a handle (as a void *) to an already-opened C library. CPython only: fixed a stack overflow issue for calls like lib.myfunc([large list]). If the function is declared as taking a float * argument, for example, then the array is temporarily converted into a C array of floats窶派owever, the code used to use alloca() for this temporary storage, no matter how large. This is now fixed. The fix concerns all modes: in-line/out-of-line API/ABI. Also note that your API-mode C extension modules need to be regenerated with cffi 1.14 in order to get the fix; i.e. for API mode, the fix is in the generated C sources. (The C sources generated from cffi 1.14 should also work when running in a different environment in which we have an older version of cffi. Also, this change makes no difference on PyPy.) As a workaround that works on all versions of cffi, you can write lib.myfunc(ffi.new("float[]", [large list])), which is equivalent but explicity builds the intermediate array as a regular Python object on the heap. fixed a memory leak inside ffi.getwinerror() on CPython 3.x. module: pkgsrc subject: 'CVS commit: pkgsrc/devel/py-cffi' unixtime: '1583346448' user: adam