Skip to content

Latest commit

 

History

History
192 lines (154 loc) · 5.53 KB

CHANGELOG.rst

File metadata and controls

192 lines (154 loc) · 5.53 KB

Change Log

(0.7.1) 2022-5-29

Added

  • pack argument for build_lib to configure struct packing
  • override argument for build_lib to configure whether repeated declarations are supported.

(0.7) 2021-10-27

Added

  • use_handle flag for defining static midlevel methods
  • LibFunction kwarg support for Python 3.3 and later
  • Path for community edition of Visual Studio (thanks @DerekK88)

Changed

  • Fixed to_py_src to handle unsigned int, long int, and double constants
  • Consolidated warnings for un-pythonable macros

(0.6) 2019-2-28

Added

  • Better support for libs with absolute paths
  • pycparser extension for parsing C++isms
  • Warnings against using using NiceObjectDef and tuple-based Sigs
  • Support for #include_next directive
  • Lexing support for u/U/L-prefixed char literals
  • Python source generation of char literals
  • Include "include-fixed" directory in INCLUDE_DIRS

Changed

  • Fixed error on fileless header parsing
  • Fixed StopIteration issue caused by PEP 479
  • Improved error message for invalid LibFunction input args
  • Fixed duplicate struct issue exposed by pycparser 2.19

(0.5.2) 2018-7-9

Changed

  • Fixed free_buf-related bug caused by typo (thanks @Gene2002)

(0.5) 2018-2-20

Added

  • Support for custom-named build files
  • Support for passing args to build() function (via load_lib())
  • Support for passing only header source to build_lib()
  • Auto-casting to void * for arrays and pointer 'inout' args
  • Sig and ArgHandler system
  • RetHandler system
  • Parsing and storing of C-function argnames
  • Function signatures in LibFunction docstrings
  • Support for relative-path lookup of headers
  • Support for loading low-level bindings without using a package
  • NiceObject subclass definition-based syntax for defining NiceObject subclasses (makes sense, right?)
  • Tests of argname parsing
  • Tests of low- and mid-level bindings, using a toy .so library
  • Official support for "hybrid" functions--hand-written functions wrap an autogenerated midlevel binding
  • New LibMethod object which is a bound-method version of a LibFunction

Changed

  • Use per-module loggers
  • Warn on missing env vars in header paths
  • Overhauled internals of mid-level bindings system
  • NiceClassMeta to NiceObjectMeta
  • Use NiceObjectMeta as a metaclass for NiceObject
  • Dropped TravisCI testing of Py 3.3 in favor of 3.6
  • Begin transitioning to _-surrounded flag names, e.g. _prefix -> _prefix_, to make them prettier and more official-looking

Removed

  • Never-completed mock system

(0.4) - 2017-11-13

Added

  • Support for searching for heaaders from multiple possible sets
  • Automatic PyPI deployment via TravisCI

Changed

  • build_lib() is now silent by default
  • Ignore bad or unsupported types during header processing

(0.3.1) - 2017-5-25

Changes

  • Fix handling of lib paths
  • Account for nonexistent attributes in FFI libs
  • Fix handling of empty signature tuples
  • Change error for missing functions into a warning

(0.3) - 2017-4-7

Added

  • Inject funcname into ret
  • Support for Unicode headers
  • Experimental support for specifying units that len sig handler uses
  • Strip prefixes of enum constants too
  • Allow searching for a lib under multiple names/locations
  • New logo

Changed

  • Renamed ret_wrap to to ret for consistency
  • Fixed handling of nested structs/unions/enums in struct_func_hook
  • Use only one cparser. Speeds up parsing of large header sets dramatically
  • Fixed init arg handling for NiceObjectDef
  • Fixed bug that prevented generation of func-like macros that had arguments

(0.2) - 2016-8-12

Added

  • Introduced load_lib
  • Introduce the LibInfo object and the _info NiceLib class attribute
  • 'bufout' argtype and 'buf_free' setting
  • 'use_numpy' setting for wrapping output arrays
  • 'Hooks' system for allowing user to hook into header processing at various points
  • Allow specifying existing return-wrappers by name
  • Binding auto-generation via generate_bindings()
  • Inject optional args into ret_wrap
  • Allow ignoring of various headers
  • A bunch of tests

Changed

  • Renamed NiceObject to NiceObjectDef
  • Renamed _err_wrap to _ret_wrap
  • Renamed _lib to __ffilib
  • Fixed silly, horrible release bug that broke almost all wrapping of args
  • Preprocessor now recognizes same common types as cffi
  • Prevent redefinition of struct/union/enum typedefs due to pycparser
  • Build and load lib using the correct directories
  • Standardized settings/flags to be consistent across scopes
  • Parse C code in chunks
  • Fixed lexing of some missing and nonstandard tokens
  • Some lexing performance improvements
  • Keep unwrapped ffi funcs out of dir(NiceFoo)
  • Improved error output

(0.1) - 2016-6-29

Added

  • Python2/3 compatibility via future
  • Support for #include, #error, and #warning directives
  • NiceObject s
  • Convenient build_lib() function
  • Platform-specific macros/settings
  • New signature types 'arr' and 'ignore'
  • Support for numpy ndarray s
  • Basic documentation
  • Initial unit-tests and Travis CI support
  • Support for calculated enum values
  • Basic support for wrapping variadic functions

Changed

  • Spun off NiceLib from Instrumental