Path to this page:
Subject: CVS commit: pkgsrc/devel/py-cffi
From: Adam Ciarcinski
Date: 2019-02-17 00:37:23
Message id: 20190216233724.04DC9FB16@cvs.NetBSD.org
Log Message:
py-cffi: updated to 1.12.1
v1.12.1
CPython 3 on Windows: we again no longer compile with Py_LIMITED_API by default \
because such modules still cannot be used with virtualenv. The problem is that \
it doesn’t work in CPython <= 3.4, and for technical reason we can’t \
enable this flag automatically based on the version of Python.
Like before, Issue 350 mentions a workaround if you still want the \
Py_LIMITED_API flag and either you are not concerned about virtualenv or you are \
sure your module will not be used on CPython <= 3.4: pass \
define_macros=[("Py_LIMITED_API", None)] to the \
ffibuilder.set_source() call.
v1.12
Direct support for pkg-config.
ffi.from_buffer() takes a new optional first argument that gives the array type \
of the result. It also takes an optional keyword argument require_writable to \
refuse read-only Python buffers.
ffi.new(), ffi.gc() or ffi.from_buffer() cdata objects can now be released at \
known times, either by using the with keyword or by calling the new \
ffi.release().
Windows, CPython 3.x: cffi modules are linked with python3.dll again. This makes \
them independant on the exact CPython version, like they are on other platforms. \
It requires virtualenv 16.0.0.
Accept an expression like ffi.new("int[4]", p) if p is itself another \
cdata int[4].
CPython 2.x: ffi.dlopen() failed with non-ascii file names on Posix
CPython: if a thread is started from C and then runs Python code (with callbacks \
or with the embedding solution), then previous versions of cffi would contain \
possible crashes and/or memory leaks. Hopefully, this has been fixed.
Support for ffi.cdef(..., pack=N) where N is a power of two. Means to emulate \
#pragma pack(N) on MSVC. Also, the default on Windows is now pack=8, like on \
MSVC. This might make a difference in corner cases, although I can’t think of \
one in the context of CFFI. The old way ffi.cdef(..., packed=True) remains and \
is equivalent to pack=1 (saying e.g. that fields like int should be aligned to 1 \
byte instead of 4).
Files: