SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 
Changelog for python3-cffi-doc-1.9.1-5.3.x86_64.rpm :
Tue Nov 15 13:00:00 2016 arunAATTgmx.de
- update to version 1.9.1:
(no changelog available)
- changes from version 1.9:

* Structs with variable-sized arrays as their last field: now we
track the length of the array after ffi.new() is called, just like
we always tracked the length of ffi.new(\"int[]\", 42). This lets us
detect out-of-range accesses to array items. This also lets us
display a better repr(), and have the total size returned by
ffi.sizeof() and ffi.buffer(). Previously both functions would
return a result based on the size of the declared structure type,
with an assumed empty array. (Thanks andrew for starting this
refactoring.)

* Add support in cdef()/set_source() for unspecified-length arrays
in typedefs: typedef int foo_t[...];. It was already supported for
global variables or structure fields.

* I turned in v1.8 a warning from cffi/model.py into an error: \'enum
xxx\' has no values explicitly defined: refusing to guess which
integer type it is meant to be (unsigned/signed, int/long). Now
I’m turning it back to a warning again; it seems that guessing
that the enum has size int is a 99%-safe bet. (But not 100%, so it
stays as a warning.)

* Fix leaks in the code handling FILE
* arguments. In CPython 3
there is a remaining issue that is hard to fix: if you pass a
Python file object to a FILE
* argument, then os.dup() is used and
the new file descriptor is only closed when the GC reclaims the
Python file object—and not at the earlier time when you call
close(), which only closes the original file descriptor. If this
is an issue, you should avoid this automatic convertion of Python
file objects: instead, explicitly manipulate file descriptors and
call fdopen() from C (...via cffi).

Sun Sep 18 14:00:00 2016 arunAATTgmx.de
- update to version 1.8.3:

* When passing a void
* argument to a function with a different
pointer type, or vice-versa, the cast occurs automatically, like
in C. The same occurs for initialization with ffi.new() and a few
other places. However, I thought that char
* had the same
property—but I was mistaken. In C you get the usual warning if you
try to give a char
* to a char
*
* argument, for example. Sorry
about the confusion. This has been fixed in CFFI by giving for now
a warning, too. It will turn into an error in a future version.

Fri Sep 16 14:00:00 2016 toddrme2178AATTgmail.com
- Update to 1.8.2

* Issue #283: fixed ``ffi.new()`` on structures/unions with nested
anonymous structures/unions, when there is at least one union in
the mix. When initialized with a list or a dict, it should now
behave more closely like the ``{ }`` syntax does in GCC.
- Update to 1.8.1

* CPython 3.x: experimental: the generated C extension modules now use
the \"limited API\", which means that, as a compiled .so/.dll, it should
work directly on any version of CPython >= 3.2. The name produced by
distutils is still version-specific. To get the version-independent
name, you can rename it manually to ``NAME.abi3.so``, or use the very
recent setuptools 26.

* Added ``ffi.compile(debug=...)``, similar to ``python setup.py build
- -debug`` but defaulting to True if we are running a debugging
version of Python itself.
- Update to 1.8

* Removed the restriction that ``ffi.from_buffer()`` cannot be used on
byte strings. Now you can get a ``char
*`` out of a byte string,
which is valid as long as the string object is kept alive. (But
don\'t use it to
*modify
* the string object! If you need this, use
``bytearray`` or other official techniques.)

* PyPy 5.4 can now pass a byte string directly to a ``char
*``
argument (in older versions, a copy would be made). This used to be
a CPython-only optimization.

Wed Jun 22 14:00:00 2016 mvyskocilAATTopensuse.org
- Update to 1.7.0

* ffi.gc(p, None) removes the destructor on an object previously created by
another call to ffi.gc()

* bool(ffi.cast(\"primitive type\", x)) now returns False if the value is
zero (including -0.0), and True otherwise. Previously this would only
return False for cdata objects of a pointer type when the pointer is
NULL.

* bytearrays: ffi.from_buffer(bytearray-object) is now supported.

* C++: compiling the generated C code with bool type works

Wed May 18 14:00:00 2016 toddrme2178AATTgmail.com
- Split documentation into own subpackage to speed up build.

Sun May 8 14:00:00 2016 arunAATTgmx.de
- specfile:

* changed to https for source url

* updated source url to files.pythonhosted.org

Sat Apr 23 14:00:00 2016 arunAATTgmx.de
- update to version 1.6.0:

* ffi.list_types()

* ffi.unpack()

* extern “Python+C”

* in API mode, lib.foo.__doc__ contains the C signature now. On
CPython you can say help(lib.foo), but for some reason help(lib)
(or help(lib.foo) on PyPy) is still useless; I haven’t yet figured
out the hacks needed to convince pydoc to show more. (You can use
dir(lib) but it is not most helpful.)

* Yet another attempt at robustness of ffi.def_extern() against
CPython’s interpreter shutdown logic.
- changes from version 1.5.2:

* Fix 1.5.1 for Python 2.6.

Sun Feb 14 13:00:00 2016 arunAATTgmx.de
- update to version 1.5.2:

* Fix 1.5.1 for Python 2.6.
- changes from version 1.5.1:

* A few installation-time tweaks (thanks Stefano!)

* Issue #245: Win32: __stdcall was never generated for extern
\"Python\" functions

* Issue #246: trying to be more robust against CPython’s fragile
interpreter shutdown logic

Sun Jan 17 13:00:00 2016 arunAATTgmx.de
- specfile:

* update copyright year
- update to version 1.5.0:

* Support for using CFFI for embedding.

Wed Dec 30 13:00:00 2015 arunAATTgmx.de
- 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!)

Sun Nov 22 13:00:00 2015 arunAATTgmx.de
- update to 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.

Sun Nov 1 13:00:00 2015 arunAATTgmx.de
- update to 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 don’t need to have their calling
convention declared.

* Windows: CPython 2.7 distutils doesn’t work with Microsoft’s
official Visual Studio for Python, and I’m 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...
- changes from version 1.2.1:

* Nothing changed from v1.2.0.
- 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.

Mon Jun 15 14:00:00 2015 arunAATTgmx.de
- update to version 1.1.2:

* ffi.gc(): fixed a race condition in multithreaded programs
introduced in 1.1.1
- changes from version 1.1.1:

* Out-of-line mode: ffi.string(), ffi.buffer() and ffi.getwinerror()
didn\'t accept their arguments as keyword arguments, unlike their
in-line mode equivalent. (It worked in PyPy.)

* Out-of-line ABI mode: documented a restriction of ffi.dlopen()
when compared to the in-line mode.

* ffi.gc(): when called several times with equal pointers, it was
accidentally registering only the last destructor, or even none at
all depending on details. (It was correctly registering all of
them only in PyPy, and only with the out-of-line FFIs.)

Sun May 31 14:00:00 2015 arunAATTgmx.de
- update to version 1.1.0:

* Out-of-line API mode: we can now declare integer types with
typedef int... foo_t;. The exact size and signness 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.

Sat May 30 14:00:00 2015 arunAATTgmx.de
- specfile:

* tests need c++ compiler
- update to version 1.0.3:

* Same as 1.0.2, apart from doc and test fixes on some platforms.
- 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!
- 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.
- 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

Sat Mar 14 13:00:00 2015 arunAATTgmx.de
- update to version 0.9.2:

* skip zintegration on win32, adjust zdistutils for setuptools

* Test and fix for from_buffer() receiving read-only buffer objects

* Py3 syntax

Sun Mar 8 13:00:00 2015 arunAATTgmx.de
- update to version 0.9.1:

* Add the MD5/SHA

* gcc complains if given the obscure flag
\"-Werror=declaration-after-statement\"

Tue Mar 3 13:00:00 2015 arunAATTgmx.de
- specfile:

* update copyright year

* run test via py.test -c x testing
- update to version 0.9.0:

* the types TBYTE TCHAR LPCTSTR PCTSTR LPTSTR PTSTR PTBYTE PTCHAR
are no longer automatically defined; see ffi.set_unicode() below.

* the other standard integer types from stdint.h, as long as they
map to integers of 1, 2, 4 or 8 bytes. Larger integers are not
supported.

* You can give C++ source code in ffi.verify()

* The optional flags argument has been added, see man dlopen
(ignored on Windows). It defaults to ffi.RTLD_NOW.

* The optional relative_to argument is useful if you need to list
local files passed to the C compiler

* You can give several field names in case of nested structures.

* You can give several field names in case of nested structures, and
you can give numeric values for array items.

Thu Sep 4 14:00:00 2014 toddrme2178AATTgmail.com
- Fix typo in source line

Wed Aug 27 14:00:00 2014 toddrme2178AATTgmail.com
- Re-enable unit tests

Tue Aug 26 14:00:00 2014 toddrme2178AATTgmail.com
- Update to 0.8.6

* No upstream changelog
See https://bitbucket.org/cffi/cffi/commits/all for a list of
commits
- update to 0.8.2

* minor bugfixes
- remove cffi-pytest-integration.patch as it is no longer necessary

Mon Feb 24 13:00:00 2014 mvyskocilAATTsuse.com
- update to 0.8.1

* fixes on Python 3 on OS/X, and some FreeBSD fixes (thanks Tobias)
0.8:

* integrated support for C99 variable-sized structures

* multi-thread safety

* ffi.getwinerror()

* a number of small fixes
- added a note wrt disabled tests
- add cffi-pytest-integration.patch: allowinf call pytest from setup.py

Tue Oct 1 14:00:00 2013 mvyskocilAATTsuse.com
- Use python3-setuptools instead of distribute

Mon Sep 30 14:00:00 2013 mvyskocilAATTsuse.com
- port to python3
- use pkgconfig(libffi) to get the most recent ffi

Mon Aug 19 14:00:00 2013 mvyskocilAATTsuse.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 13:00:00 2013 saschpeAATTsuse.de
- Initial version


 
ICM