libpression version 0.19.0
libpression version 0.19.0
Major Changes
- BREAKING CHANGE
pressio_release
is no longer a noop, and has new
signature. The signature change was made to better support wrappers
like swig. It has been changed from a noop to freeing the memory
associated with a particular instance of the library. This allows
users to create several handles for the library for error handling
purposes. - BREAKING CHANGE new API
pressio_compressor_release
now should be called on
pressio_compressor* pointers when they are no longer needed.
Internally it uses shared pointers, and depending on the
implementation of the compressor it either returns a static copy of
the shared pointer (i.e. SZ) for compressors where global memory is
used to configure compressors, or a new shared pointer for each (i.e.
ZFP). This allows compressors such as ZFP that may be used in a
multi-threaded context to actually be used in that way. - BREAKING CHANGE
pressio_instance
now actually returns a new instance
each time it is called rather than a possibly shared instance - The plugin registration system has been completely re-written to no
longer require disparate edits to various files to introduce new
plugins, instead, users create an instance ofpressio_register
to
register to their type. This also allows non-library compressors to
be introduced without recompiling libpressio.
Minor Changes
- MemoryChecks are now supported for test cases. Various memory leaks
in test cases are now removed. Added a valgrind suppression file for
the libgomp malloc that is never freed when valgrind can see it. pressio_get_compressor
andpressio_new_metrics
now correctly
return a nullpointer when the lookup fails- SWIG now passes input arrays as INPLACE_ARRAYs instead. This has a
minor performance improvement. - New C++ only integration test case was added.
- Several private APIs were removed as no longer required
Bug Fixes
- a few incorrectly documented functions were correctly documented