Skip to content

libpression version 0.19.0

Compare
Choose a tag to compare
@robertu94 robertu94 released this 21 Aug 02:02
· 85 commits to master since this release

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 of pressio_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 and pressio_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