Recent Releases of https://github.com/bluebrain/highfive

https://github.com/bluebrain/highfive - v3.0.0-beta1

Version 3.0.0-beta - 2024-08-20

This version is a major one and is breaking some usage compare to v2. Read the migration guide from the documentation: https://bluebrain.github.io/HighFive/md2home2runner2work2highfive2highfive2doc2migrationguide.html

The minimum version for C++ has been moved to C++14.

Removed

- Removed `read(T*, ...)`, use explicit `read_raw(T*, ...)` for `Slice` or `Attribute`. (#928)
- Removed `FixedLenStringArray`, use any container with strings instead. (#932)
- Removed `FileDriver` and `MPIOFileDriver`, use file access properties instead. (#949)
- Removed default constructor for `Group` and `DataSet`. (#947, #948)
- Broadcasting have been removed. Use `squeeze` and `reshape` feature instead. (#992)
- `ObjectCreateProps` and `ObjectAccessProps` those don't map well to HighFive and are unused. (#1002)

New Features

- Added support for `std::span`. (#987)
- Added `squeezeMemSpace` and `reshapeMemSpace` for `Attribute` and `Slice` to reshape the memory space. (#991)
- Added `ProductSet` to select a Cartesian products of (generalized) slices. (#842)

Improvements

- Optimized chained hyperslab selection. (#1031)
- Type `T[N]` or `T[N][M]` will work better. (#929)
- `DataspaceType` is now an enum class for `dataspace_scalar` or `dataspace_null`. (#900)
- `File::AccessMode` is now an enum class. (#1020)

Version 2.9.0 - 2024-01-25

New Features

- Add named ctors for scalar and null dataspaces. (#899)
- Named ctor for empty property lists. (#904)

Improvements

- Enable running tests in parallel. (#849)
- Wrap all used HDF5 function calls and always check status codes. (#863)
- Utilities for writing tests in a container independent manner. (#871)
- Improve test rigour.

Bug Fix

- Log messages were slightly misformatted. (#854)
- Fix bug in `enforce_ascii_hack`. (#856)
- Fix `create_datatype<bool>()`. (#869)
- Guard functionality introduced in 1.10.0. (#905)
- `inspector` guard for empty containers. (#913)
- Avoid non-collective behaviour. (#912)

- C++
Published by 1uc almost 2 years ago

https://github.com/bluebrain/highfive - v2.10.0

Version 2.10.0 - 2024-07-29

New Features

- `read_raw` when reading from pointers. (#928,#940)
- Improve inspector for `T[N]`. (#929)

Deprecations

Please consult the Migration Guide for details about migrating away from deprecated features. - Deprecated FixedLenStringArray (#932) - The overload read(T*, ...) has been deprecated, but not read(T&, ...). (#928)

Improvements

- Improved documentation.

Bug Fixes

- Fixed a performance bug involving `HyperSlab`s (#1032)

- C++
Published by 1uc almost 2 years ago

https://github.com/bluebrain/highfive - v2.9.0

Version 2.9.0 - 2024-01-25

New Features

  • Add named ctors for scalar and null dataspaces. (#899)
  • Named ctor for empty property lists. (#904)

Improvements

  • Enable running tests in parallel. (#849)
  • Wrap all used HDF5 function calls and always check status codes. (#863)
  • Utilities for writing tests in a container independent manner. (#871)
  • Improve test rigour.

Bug Fix

  • Log messages were slightly misformatted. (#854)
  • Fix bug in enforce_ascii_hack. (#856)
  • Fix create_datatype<bool>(). (#869)
  • Guard functionality introduced in 1.10.0. (#905)
  • inspector guard for empty containers. (#913)
  • Avoid non-collective behaviour. (#912)

- C++
Published by 1uc over 2 years ago

https://github.com/bluebrain/highfive - v2.8.0

Important Change

  • Eigen::Matrix is (by default) stored with column-major index ordering. Under certain conditions Eigen::Matrix was written and read as row-major. Due to code duplication H5Easy isn't affected by this bug. Starting 2.8.0 HighFive will now throw an exception whenever prior versions would have read with incorrect assumptions about the index ordering. (#731)

New Features

  • Improve reading and writing std::string as fixed and variable length HDF5 strings (#744).
  • Implement creation of hard links (#765). Thanks to @Quark-X10.
  • Get the size of file and amound of tracked unused space (#764). Thanks to @Quark-X10.
  • class DataType has a new ctor to open a commited DataType (#796). Thanks to @Quark-X10.
  • Allow user-specified mem_space for hyperslabs. (#740)
  • New properties: AttributePhaseChange. (#785)
  • New options to link against HDF5 statically (#823). Thanks @HunterBelanger.
  • Add support for std::complex<integral_type> valid with C++23 (#828). Thanks @unbtorsten.
  • Add a top-level header to include all compononents (#818).

Improvements

  • Add concept checks to Property if C++20 for better errors (#811). Thanks @antonysigma.
  • Add parallel HDF5 test in CI (#760).
  • Simplify github workflow (#761).
  • Move inspectors in their own file to be able to better implements strings (#759).

Bug Fix

  • Fix vector constructor ambiguity in H5DataType.hpp (#775). Thanks to @hn-sl.
  • getElementCount() fixed. (#787)
  • Remove leak when calling dtor of CompoundType. (#798)

- C++
Published by alkino over 2 years ago

https://github.com/bluebrain/highfive - v2.7.1

Bug Fix

- Revert removing `#include "H5FileDriver.hpp"` from `H5File.hpp` (#711).
- Change relative import to "../H5Utility.hpp" (#726).
- Fix nameclash with macros on Windows (#717 #722 #723).
- Add workaround for MSVC bug (#728).
- Don't downgrade the requested C++ standard (#729).

- C++
Published by 1uc over 3 years ago

https://github.com/bluebrain/highfive - v2.7.0

New Features

- Properties can now be read (#684).
- Adding a property for LinkCreationOrder (#683).
- Adding a logging infrastructure (#690).
- Support of bool in the way of h5py (#654).
- Support `std::byte` in C++17 mode (#698).

Improvements

- Catch2 move to v3 (#655).

Bug Fix

- To avoid build failure in certain circumstances, user can not set `Boost_NO_BOOST_CMAKE` (#687).
- Fix leak when reading variable length strings (#660).
- Use `H5free_memory` instead of `free` in error handler (#665). Thanks to Moritz Koenemann.
- Fix a bug with old GCC due to templated friend classes (#688).
- Fix regression in broadcasting support (#697).
- Fix bug related to zero-length datasets (#702).

- C++
Published by 1uc over 3 years ago

https://github.com/bluebrain/highfive - v2.6.2

Bug Fix

  • Allow finding HDF5 in CMake config mode

- C++
Published by matz-e over 3 years ago

https://github.com/bluebrain/highfive - v2.6.1

Bug Fix

  • Version bump in CMakeLists.txt.

- C++
Published by 1uc over 3 years ago

https://github.com/bluebrain/highfive - v2.6.0

New Features

  • Enable page buffered reading (#639).

Improvements

  • Warn when detecting lossy reads or write of floating point data (#636).

- C++
Published by 1uc over 3 years ago

https://github.com/bluebrain/highfive - v2.5.1

Bug Fix - Fix missing inline for collective metadata properties.

- C++
Published by 1uc over 3 years ago

https://github.com/bluebrain/highfive - v2.5.0

New Features

  • Enable collective MPI IO using the Data Transfer Property (#623). Thanks to Rob Latham.
  • Add a support for half-precision (16-bit) floating-point based on the Half library (http://half.sourceforge.net) (#587). Thanks to Sergio Botelh.
  • Enable choosing the allocation time of datasets (#627).
  • Add possibility to get and set file space strategy. For page allocated files wrap the API to set/retrieve the page size (#618).
  • Add API for getting Access and Create property lists of HighFive objects (#629).
  • Let users configure metadata reads and writes at file level (#624). Thanks to Rob Latham.

Improvements

  • MPIOFileDriver is now deprecated. Use FileAccessProps (#622).
  • Support of block argument in API (#584).
  • Serialization of types is now automagic and so recursive (#586).
  • Add an argument to specific File Create Properties in File class construtor (#626).

Bug Fixes

  • Padding of Compound Types (#581).
  • Compilation with Visual Studio with C++17 or later (#578). Thanks to Mark Bicknell.
  • Avoid leaking when printing stack for error (#583).

- C++
Published by alkino over 3 years ago

https://github.com/bluebrain/highfive - v2.4.1

New Features

  • Support std::complex. Thanks to Philipp.

Improvements

  • Improve EnumType/CompoundType
  • Revert quirky behaviour of select(const HyperSlab&).
  • All get_name functions takes size_t and not hsize_t.
  • Remove nix recipes.

Bug Fixes

  • Computation of padding.
  • Related to 0 being an invalid hid but not equal to H5I_INVALID_HID.

- C++
Published by 1uc about 4 years ago

https://github.com/bluebrain/highfive - v2.4.0

Drop support for hdf5 1.8

New Features: - Construct a compound type from an already existing hid (#469). Thanks to Maximilian Nöthe. - Add support for long double (#494) - Add support for H5Psetlibverbounds and H5Psetmetablock_size support (#500) - New interface to select complex hyperslabs, irregular hyperslabs are limited to/from 1D array (#538 and #545)

Improvements: - Use inline where it is needed, otherwise some code can lead to "multiple definition" (#516). Thanks to Chris Byrohl. - Use Catch2 instead of boost for tests to reduce dependencies (#521) - CI now run with more external librairies (boost, eige, xtensor, xtl) (#536)

Bug Fixes: - Better support of const types (#460). Thanks to Philip Deegan. - Vector of size zero was previously lead to UB (#502). Thanks to Haoran Ni. - Use H5TNATIVESCHAR instead of H5TNATIVECHAR for "signed char" (#518)

- C++
Published by alkino over 4 years ago

https://github.com/bluebrain/highfive - v2.3.1: Minor improvements and bugfixes

Version 2.3.1 - 2021-08-04

Improvements

  • Clean cmake files from old code (#465)
  • Adding path to type warning message (#471)
  • Adding compound types example, w dataset and attr (#467)

Bug Fixes

  • Resolve an issue where padding of nested compound types were being calculated incorrectly (#461) (#468)
  • GHA: drop previous runs (#462)

- C++
Published by tdegeus almost 5 years ago

https://github.com/bluebrain/highfive - v2.3: Several new features and various improvements

New Features:

  • Add SZIP support (#435)
  • Add option parents to createDataSet (#425)
  • Implementing getting the filename dynamically (#424)
  • Ability to create soft and external links (#421)
  • Generalizing getPath and adding getFile as PathTraits (#417)

### Improvements: - Unified reading/writing attributes and datasets (#450) - Old compilers have been removed from docker image (#430) - Cleaning up and improving property lists (#429) - An example using hdf5 references (#396) (#397) - Add all property lists alias for completeness (#427) - Add property CreateIntermediateGroup (#423) - Add code coverage through codecov.io (#420) - Introducing GitHub Actions CI (#416) - Create issue and PR templates (#412) - Initialize SilenceHDF5 to true in exist (#411) - Generalizing xtensor API (#407) - Minor doc updates (#409) - Fixing minor error in GH Action (#408) - Uploading docs to gh-pages using GitHub Actions (#403) - Various minor documentation updates (#405) - optional documentation building in cmake (#377) - From can be automatic now (#384) - getdimvector in inspector (#383) - Put typeofarray in inspector (#382) - Move arraydims in the future manipulator (#381) - Unify interface of H5Attribute with H5Slice_traits (#378) - Use std::move in NRVO depending of version of GCC (#375) - Fixed typo '-DD' to '-D' in 'Dependencies'. (#371) - Changing date format (#364)

### Bug fixes: - Fix use before initialization (#414) - Adding CMake include guard (#389)

- C++
Published by tdegeus about 5 years ago

https://github.com/bluebrain/highfive - v2.2.2 API extension

New Features

  • [H5Easy] Adding OpenCV support (#343)
  • [H5Easy] Enabling compression & Adding attributes (#337)
  • Adding missing function to H5Attribute (#337)
  • Add methods to retrieve Node paths or Dataset names and rename objects (#346)
  • Add a file with the current version number of HighFive (#349)

Improvements

  • [H5Easy] Updating error message dump (#335)
  • [H5Easy] Switching implementation to partial specialization based on static dispatch (#327)
  • Simplifying imports, new policy (#324)

- C++
Published by tdegeus almost 6 years ago

https://github.com/bluebrain/highfive - v2.2.1 Patch Release

  • Fix SilenceHDF5 initialization for NodeTraits
  • Add a mechanism to not include target HighFive several times

- C++
Published by alkino about 6 years ago

https://github.com/bluebrain/highfive - v2.2: Release 2.2

New Features:

  • Compound Types: API to register and read/write structs (#78). Thanks to Richard Shaw.
  • Fixed-length strings. API via char[] and FixedLenStringArray(#277)
  • Enum data types (#297)
  • Datasets of HDF5 References. Support to dereference groups and datasets (#306)
  • Objects (hard/soft link) can now be deleted with unlink (#284). Thanks to Tom Vander Aa.
  • Attributes can be deleted with deleteAttribute (#239)

Improvements:

  • Attributes (metadata) now support additional types (#298)
  • H5Easy: Reworked for compatibility with Eigen::ref and Eigen::Map (#291, #293)
  • Hdf5 1.12 compatibility: working Object::getInfo and marking getAddress deprecated (#311)
  • Strict compatibility with CMake 3.1 and C++11 (#304)
  • CMake: Dependencies may be re-detected on FindPackage, fixed export targets and added integration tests (#255, #304, #312, #317)
  • Support for array of Eigen::Matrix (#258)
  • Selection: ElementSet working for N-dimensions (#247)

Bug Fixes:

  • Shortcut syntax with c arrays (#273)
  • Compatibility with in MSVC (Exception messages #263 and avoid throwing in exist check #308)

- C++
Published by alkino over 6 years ago

https://github.com/bluebrain/highfive - v2.1.1: Patch Release

Fixes:

  • Avoid conversion warnings being treated as errors (#244)
  • Fix build of parallel (#242)
  • H5Object: fix doxygen documentation (#240)

- C++
Published by alkino over 6 years ago

https://github.com/bluebrain/highfive -

New Features:

  • Inspection: API to get the type of links/objects and datasets data-types (#221)
  • H5Easy: API for simple import/export to Eigen and xtensor (#141)
  • Support for chunk and deflate configuration at dataset creation/open (#125). Added generic RawPropertyLists. (#157)
  • Recursive createGroup and exist (#152)
  • Shortcut syntax: ability to create a filled dataset in a single line (#130)
  • DataSet now accepts std::complex and std::array's (#128, #129)

Improvements:

  • Improved compat with MSVC and ICC compilers
  • CMake build system: modernized, create exported targets, better messages, etc.
  • Building and publishing documentation: https://bluebrain.github.io/HighFive/
  • Several other. See #231

Bug Fixes:

  • Fixed header dependencies. They are now all include-able (#225)
  • Fixed read/write of N-Dimensional data as nested vectors (#191)
  • Fixed data broadcasting for reading (#136)

- C++
Published by alkino over 6 years ago