python-cffi/python-cffi.changes

250 lines
12 KiB
Plaintext
Raw Normal View History

-------------------------------------------------------------------
Mon Apr 11 14:45:11 UTC 2016 - jmatejek@suse.com
- update to 1.5.2
* support for cffi-based embedding
* more robustness for shutdown logic
-------------------------------------------------------------------
Sat Jan 9 17:18:52 UTC 2016 - michael@stroeder.com
- update to version 1.4.2:
* Nothing changed from v1.4.1.
- changes from version 1.4.1:
* Fix the compilation failure of cffi on CPython 3.5.0. (3.5.1
works; some detail changed that makes some underscore-starting
macros disappear from view of extension modules, and I worked
around it, thinking it changed in all 3.5 versions—but no: it was
only in 3.5.1.)
- changes from version 1.4.0:
* A better way to do callbacks has been added (faster and more
portable, and usually cleaner). It is a mechanism for the
out-of-line API mode that replaces the dynamic creation of
callback objects (i.e. C functions that invoke Python) with the
static declaration in cdef() of which callbacks are needed. This
is more C-like, in that you have to structure your code around the
idea that you get a fixed number of function pointers, instead of
creating them on-the-fly.
* ffi.compile() now takes an optional verbose argument. When True,
distutils prints the calls to the compiler.
* ffi.compile() used to fail if given sources with a path that
includes "..". Fixed.
* ffi.init_once() added. See docs.
* dir(lib) now works on libs returned by ffi.dlopen() too.
* Cleaned up and modernized the content of the demo subdirectory in
the sources (thanks matti!).
* ffi.new_handle() is now guaranteed to return unique void * values,
even if called twice on the same object. Previously, in that case,
CPython would return two cdata objects with the same void *
value. This change is useful to add and remove handles from a
global dict (or set) without worrying about duplicates. It already
used to work like that on PyPy. This change can break code that
used to work on CPython by relying on the object to be kept alive
by other means than keeping the result of ffi.new_handle()
alive. (The corresponding warning in the docs of ffi.new_handle()
has been here since v0.8!)
- changes from version 1.3.1:
* The optional typedefs (bool, FILE and all Windows types) were not
always available from out-of-line FFI objects.
* Opaque enums are phased out from the cdefs: they now give a
warning, instead of (possibly wrongly) being assumed equal to
unsigned int. Please report if you get a reasonable use case for
them.
* Some parsing details, notably volatile is passed along like const
and restrict. Also, older versions of pycparser mis-parse some
pointer-to-pointer types like char * const *: the “const” ends up
at the wrong place. Added a workaround.
- changes from version 1.3.0:
* Added ffi.memmove().
* Pull request #64: out-of-line API mode: we can now declare
floating-point types with typedef float... foo_t;. This only works
if foo_t is a float or a double, not long double.
* Issue #217: fix possible unaligned pointer manipulation, which
crashes on some architectures (64-bit, non-x86).
* Issues #64 and #126: when using set_source() or verify(), the
const and restrict keywords are copied from the cdef to the
generated C code; this fixes warnings by the C compiler. It also
fixes corner cases like typedef const int T; T a; which would
previously not consider a as a constant. (The cdata objects
themselves are never const.)
* Win32: support for __stdcall. For callbacks and function pointers;
regular C functions still dont need to have their calling
convention declared.
* Windows: CPython 2.7 distutils doesnt work with Microsofts
official Visual Studio for Python, and Im told this is not a
bug. For ffi.compile(), we removed a workaround that was inside
cffi but which had unwanted side-effects. Try saying import
setuptools first, which patches distutils...
-------------------------------------------------------------------
Thu Sep 17 11:28:00 UTC 2015 - p.drouand@gmail.com
- Update to version 1.2.1
* No changes entry for this version
- Changes from version 1.2.0
* Out-of-line mode: ``int a[][...];`` can be used to declare a structure
field or global variable which is, simultaneously, of total length
unknown to the C compiler (the ``a[]`` part) and each element is
itself an array of N integers, where the value of N *is * known to the
C compiler (the ``int`` and ``[...]`` parts around it). Similarly,
``int a[5][...];`` is supported (but probably less useful: remember
that in C it means ``int (a[5])[...];``).
* PyPy: the ``lib.some_function`` objects were missing the attributes
``__name__``, ``__module__`` and ``__doc__`` that are expected e.g. by
some decorators-management functions from ``functools``.
* Out-of-line API mode: you can now do ``from _example.lib import x``
to import the name ``x`` from ``_example.lib``, even though the
``lib`` object is not a standard module object. (Also works in ``from
_example.lib import *``, but this is even more of a hack and will fail
if ``lib`` happens to declare a name called ``__all__``. Note that
`` *`` excludes the global variables; only the functions and constants
make sense to import like this.)
* ``lib.__dict__`` works again and gives you a copy of the
dict---assuming that ``lib`` has got no symbol called precisely
``__dict__``. (In general, it is safer to use ``dir(lib)``.)
* Out-of-line API mode: global variables are now fetched on demand at
every access. It fixes issue #212 (Windows DLL variables), and also
allows variables that are defined as dynamic macros (like ``errno``)
or ``__thread`` -local variables. (This change might also tighten
the C compiler's check on the variables' type.)
* Issue #209: dereferencing NULL pointers now raises RuntimeError
instead of segfaulting. Meant as a debugging aid. The check is
only for NULL: if you dereference random or dead pointers you might
still get segfaults.
* Issue #152: callbacks__: added an argument ``ffi.callback(...,
onerror=...)``. If the main callback function raises an exception
and ``onerror`` is provided, then ``onerror(exception, exc_value,
traceback)`` is called. This is similar to writing a ``try:
except:`` in the main callback function, but in some cases (e.g. a
signal) an exception can occur at the very start of the callback
function---before it had time to enter the ``try: except:`` block.
* Issue #115: added ``ffi.new_allocator()``, which officializes
support for `alternative allocators`__.
.. __: using.html#callbacks
.. __: using.html#alternative-allocators
-------------------------------------------------------------------
Mon Jun 1 18:13:10 UTC 2015 - benoit.monin@gmx.fr
- update to version 1.1.0 (fate#318838):
* Out-of-line API mode: we can now declare integer types with
typedef int... foo_t;. The exact size and signedness of foo_t
is figured out by the compiler.
* Out-of-line API mode: we can now declare multidimensional
arrays (as fields or as globals) with int n[...][...]. Before,
only the outermost dimension would support the ... syntax.
* Out-of-line ABI mode: we now support any constant declaration,
instead of only integers whose value is given in the cdef. Such
“new” constants, i.e. either non-integers or without a value
given in the cdef, must correspond to actual symbols in the
lib. At runtime they are looked up the first time we access
them. This is useful if the library defines extern const
sometype somename;.
* ffi.addressof(lib, "func_name") now returns a regular cdata
object of type “pointer to function”. You can use it on any
function from a library in API mode (in ABI mode, all functions
are already regular cdata objects). To support this, you need
to recompile your cffi modules.
* Issue #198: in API mode, if you declare constants of a struct
type, what you saw from lib.CONSTANT was corrupted.
* Issue #196: ffi.set_source("package._ffi", None) would
incorrectly generate the Python source to package._ffi.py
instead of package/_ffi.py. Also fixed: in some cases, if the C
file was in build/foo.c, the .o file would be put in
build/build/foo.o.
- additional changes from version 1.0.3:
* Same as 1.0.2, apart from doc and test fixes on some platforms
- additional changes from version 1.0.2:
* Variadic C functions (ending in a ”...” argument) were not
supported in the out-of-line ABI mode. This was a bug—there was
even a (non-working) example doing exactly that!
- additional changes from version 1.0.1:
* ffi.set_source() crashed if passed a sources=[..] argument.
Fixed by chrippa on pull request #60.
* Issue #193: if we use a struct between the first cdef() where
it is declared and another cdef() where its fields are defined,
then this definition was ignored.
* Enums were buggy if you used too many ”...” in their definition
- additional changes from version 1.0.0:
* The main news item is out-of-line module generation:
+ for ABI level, with ffi.dlopen()
+ for API level, which used to be with ffi.verify(), now
deprecated
- add python-cffi-rpmlintrc: cffi specifically installs C headers
in site-packages
- add new test dependency gcc-c++
- skip the tests on SLE11 since they fail on i586
-------------------------------------------------------------------
Thu Apr 23 06:33:12 UTC 2015 - mcihar@suse.cz
- Update to 0.9.2
* No upstream changelog
See https://bitbucket.org/cffi/cffi/commits/all for a list of
commits
-------------------------------------------------------------------
Tue Aug 26 12:40:34 UTC 2014 - toddrme2178@gmail.com
- Update to 0.8.6
* No upstream changelog
See https://bitbucket.org/cffi/cffi/commits/all for a list of
commits
-------------------------------------------------------------------
Mon May 19 16:35:30 UTC 2014 - jmatejek@suse.com
- update to 0.8.2
* minor bugfixes
- remove cffi-pytest-integration.patch as it is no longer necessary
-------------------------------------------------------------------
Mon Mar 31 14:18:44 UTC 2014 - speilicke@suse.com
- Require libffi43-devel on SLE_11_SP2 instead of using pkg-config to fix build
-------------------------------------------------------------------
Mon Feb 24 12:09:15 UTC 2014 - mvyskocil@suse.com
- update to 0.8.1
* fixes on Python 3 on OS/X, and some FreeBSD fixes (thanks Tobias)
- added a note wrt disabled tests
- add cffi-pytest-integration.patch: allowinf call pytest from setup.py
-------------------------------------------------------------------
Mon Nov 18 14:33:39 UTC 2013 - mvyskocil@suse.com
- update to 0.8
* integrated support for C99 variable-sized structures
* multi-thread safety
* ffi.getwinerror()
* a number of small fixes
-------------------------------------------------------------------
Thu Oct 24 10:59:45 UTC 2013 - speilicke@suse.com
- Require python-setuptools instead of distribute (upstreams merged)
-------------------------------------------------------------------
Mon Sep 30 07:51:11 UTC 2013 - mvyskocil@suse.com
- use pkgconfig(libffi) to get the most recent ffi
-------------------------------------------------------------------
Mon Aug 19 13:27:16 UTC 2013 - mvyskocil@suse.com
- Update to 0.7.2
* add implicit bool
* standard names are handled as defaults in cdef declarations
* enum types follow GCC rules and not just int
* supports simple slices x[start:stop]
* enums are handled like ints
* new ffi.new_handle(python_object)
* and various bugfixes
-------------------------------------------------------------------
Sun Feb 10 09:28:56 UTC 2013 - saschpe@suse.de
- Initial version