Releases: CODARcode/libpressio
Releases · CODARcode/libpressio
libpressio version 0.55.0
libpressio version 0.55.0
Major Changes
- launch modules are now user extendable with the
libpressio_ext/launch/external_launch.h header this will allow
users to provide their own process launching mechanisms where
traditional methods are blocked/disallowed. - Support for remote metrics servers which use a JSON protocol was
added. This enables servers that use MPI to be nested beneath MPI and
allows for metrics servers that have long startup times to remain
running and respond to multiple metrics requests. The protocol format
is still unstable and may change. - New meta-IO module called
copy_template
which copies a template from
another file before dispatching to another IO module for writing.
This enables users to copy most of an HDF5 file and overwrite only a
portion of it when using it with external metrics. - POSSIBLE BREAKING CHANGE,
external:command
is now a write only
setting. If the module supports it, the corresponding option is now
external:commands which is a std::vectorstd::string. The old name
sets this new parameter by splitting on spaces. - the external metrics module gained the ability to choose to intercept
pressio_compressor_compress_many or pressio_compressor_compress via
external:use_many
- New higher level python interface
libpressio.py
It's interface is
also unstable and may change frequently.
Minor Changes
- Support for newer versions of mgard which use mgard::mgard_library as
the cmake target
Bug Fixes
- fixed some static analysis warnings in the test cases.
libpressio version 0.54.0
libpressio version 0.54.0
Major Changes
- Many fixes/improvements to the python bindings
- libpressio python bindings now support mpi4py so MPI_Comm's can be
passed to compressors and other things that use them. - pointer functions for primitive types were added for completeness
- pressio_options_{new,set,get}_strings now work from the python
bindings - there is now a way to convert pressio_data objects holding bytes to
a python byte array.
- libpressio python bindings now support mpi4py so MPI_Comm's can be
- Many fixes/improvements to the HDF5 plugin:
- hdf5 plugin learned to do collective IO when HDF5 is PHDF5
- hdf5 plugin no-longer crashes when you attempt to create a dataset
in a group that does not yet exist, by setting
H5P_set_create_intermediate_group in the link creation properties - hdf5 plugin learned to enable and disable parallel io based on the
newuse_parallel
option
- external metrics now properly supports creating datasets that use
multiple buffers, earlier attempts to use this functionality resulted
in either a crash or unintended behaivor - ABI break - pressio_compressor_{compress,decompress}_many arguments
changed to structpressio_data const*const[]
to allow implicit
conversions frompressio_data *[]
. This change didn't affect any
internal use case, but makes the API more ergonomic for users.
Minor Changes:
- external_metrics plugin now uses the copy constructor to clone itself.
This reduced code complexity and eliminated bugs. - the internal libpressio_launch_plugin is now cloneable, this was to
enable making external metrics default copy constructible. - pressio_data options are now convertible to them self.
- extensive refactoring and strengthening of external metrics test cases
to ensure correctness.
libpressio version 0.53.2
libpressio version 0.53.2
Bug Fix
- previously hdf5 paths that begin with a slash caused a stack overflow
and a segfault from infinite recursion. This issue has been
resolved by looking for a slash at the beginning of the path name.
libpressio version 0.53.1
libpressio version 0.53.1
bug fix
- remove unneeded reference to zfp/types.h
libpressio version 0.53.0
libpressio version 0.53.0
Major Changes
- POSSIBLE BREAKING CHANGE pressio_option can now hold
{u,}int{8,16,32,64}_t values and the return type of the pressio
option functions which returned an int now accept/return an int32_t.
This enables LibPressio to support more complex configurations types
without resorting to a user_data type or using a pressio_data object
where it isn't needed. Additionally, pressio_option_int32_type no
longer convert implicitly to double. This is because the previous
behavior was ambiguous depending on which compiler you used, and it
was contrary to the intended spirit of the functionality. implict
conversions were intended to never reduce precision the old
functionality could do that. The new definitions for the conversions
are based on the C++ standards definition of what a narrowing
conversion is. This means that one conversion which is safe on most
architectures and compilers (int32_t -> double) is not allowed at time
of writing since the standard considers all integral to floating_point
conversions to be narrowing. Some test cases were updated to match
the new behavior. Serializaton and printer routines were updated to
match. Corresponding stable C APIs were added.
Bug Fixes
- sz plugin now returns thread safety as a int32_t like every other
compressor. - explicitly made all returns of thread_safety int32_t rather than just
int. - removed unused arguments from the test code.
- LibPressio no longer adds -Werror by default to debug builds. This
caused trigger undesired build failures on old/buggy compilers. To
restore the old functionality, pass
-DLIBPRESSIO_TREAT_WARNINGS_AS_ERRORS=ON
to CMake
libpressio version 0.52.2
libpressio version 0.52.2
Bug Fixes
- SWIG does not handle templates using uint64_t other similar types
well. It automatically converts them to some standard type with
matching size prior to template instantiation.
For example, uint64_t -> unsigned long long. In order for type maps
to apply correctly, we also need to use these types. Added a test
case because I don't trust this to not break something on another
platform. - Use doxygen doc string generation for pressio python module
libpressio version 0.52.1
libpressio version 0.52.1
Bug Fixes
- zfp_plugin now uses std_compat for std::exchange
libpressio version 0.52.0
libpressio version 0.52.0
Major Changes
- Removed libpressio_ext/compat/* as a separate library called
std_compat to enable other packages such as libdistributed to use
it separately from libpressio.
libpressio version 0.51.0
libpressio version 0.51.0
Major Changes
- Massive performance improvements for NumPy interop through avoiding
several unrequired copies - LIBPRESSIO_INTERPROCEDERAL_OPTMIMIAZATION added to support link time
optimization - Several improvements to the HDF5 io plugin to allow for partial
reads/writes, better error handling, and additional test cases
libpressio version 0.50.5
libpressio version 0.50.5
Bug Fixes:
- span now does not use reserved name _Offset
- pressio_data now checks if the buffer is empty before calling malloc
to prevent undefined behavior on platforms where malloc(0) is
undefined behavior - pressio_metrics now handles self assignment
- bit grooming now uses the correct BG_DOUBLE type for doubles
- prevent catastrophic truncation in kl_divergance plugin