Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ is much higher.
- [optional] HDF5:

**Style Guide**
1. Please paste text as text and not as a screen shot.
1. Please paste text as text and not as a screenshot.
2. If in doubt paste too much output rather than too little, i.e. don't be too
scared of a large wall of text. Especially, if it's a compiler error.
(Anything past the first error is largely uninformative and can be safely
Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/build_failure.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ assignees: ''
Unfortunately, build failures tend to be highly specific and there's many
things that could go wrong on both our and your side. Therefore, a reproducer
is essential. You could try the minimal setup found here:
https://github.com/BlueBrain/HighFive/blob/master/doc/installation.md#manually-install-highfive
https://github.com/highfive-devs/HighFive/blob/main/doc/installation.md#manually-install-highfive

from there you can work upwards by adding complexity until you reproduce the
issue.
Expand All @@ -35,7 +35,7 @@ than less output.)
- HDF5:

**Style Guide**
1. Please paste text as text and not as a screen shot.
1. Please paste text as text and not as a screenshot.
2. If in doubt paste too much output rather than too little, i.e. don't be too
scared of a large wall of text. Especially, if it's a compiler error.
(Anything past the first error is largely uninformative and can be safely
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: HighFive Community Support
url: https://github.com/BlueBrain/HighFive/discussions
url: https://github.com/highfive-devs/HighFive/discussions
about: Please ask and answer questions here.
14 changes: 7 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE

- name: Test No HDF5 Diagnositics
- name: Test No HDF5 Diagnostics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE

- name: Test No HDF5 Diagnositics
- name: Test No HDF5 Diagnostics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
Expand Down Expand Up @@ -185,7 +185,7 @@ jobs:
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE

- name: Test No HDF5 Diagnositics
- name: Test No HDF5 Diagnostics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
Expand Down Expand Up @@ -232,7 +232,7 @@ jobs:
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE

- name: Test No HDF5 Diagnositics
- name: Test No HDF5 Diagnostics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
Expand Down Expand Up @@ -281,7 +281,7 @@ jobs:
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE

- name: Test No HDF5 Diagnositics
- name: Test No HDF5 Diagnostics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
Expand Down Expand Up @@ -372,7 +372,7 @@ jobs:
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE

- name: Test No HDF5 Diagnositics
- name: Test No HDF5 Diagnostics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
Expand Down Expand Up @@ -428,7 +428,7 @@ jobs:
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE

- name: Test No HDF5 Diagnositics
- name: Test No HDF5 Diagnostics
working-directory: ${{github.workspace}}/build
shell: bash -l {0}
run: |
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Same as 3.0.0-beta3.

## Version 3.0.0-beta1 - 2024-07-16
This version is a major one and is breaking some usage compare to v2.
Read the migration guide from the documentation: https://highfive-devs.github.io/highfive/md__2home_2runner_2work_2_high_five_2_high_five_2doc_2migration__guide.html
Read the migration guide from the documentation: https://highfive-devs.github.io/highfive/md__2home_2runner_2work_2highfive_2highfive_2doc_2migration__guide.html

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

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ option(HIGHFIVE_VERBOSE "Set logging level to verbose." OFF)
# protected constructor, e.g., `HighFive::Object::Object`.
#
# Starting with `2.7.0` these friend declarations don't matter
# anymore. It's mearly a means of appeasing a compiler.
# anymore. It's merely a means of appeasing a compiler.
#
# The values of `HIGHFIVE_HAS_FRIEND_DECLARATIONS` are:
# - that the macro is undefined.
Expand Down
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
> [!NOTE]
> HighFive was orignally developed and maintained at
> HighFive was originally developed and maintained at
> https://github.com/BlueBrain/HighFive. To continue maintenance of HighFive as
> an independent open-source code without support from BBP or EPFL, some (one)
> of the developers decided to create this repository.
Expand Down Expand Up @@ -37,7 +37,7 @@ target_link_libraries(foo HighFive::HighFive)
- RAII for opening/closing files, groups, datasets, etc.
- Compatible with the HDF5 C API.
- A second API layer `H5Easy` provides a oneliner API for common, simple
usecases.
use cases.

### Feature support
- create/read/write files, datasets, attributes, groups, dataspaces.
Expand All @@ -52,7 +52,7 @@ target_link_libraries(foo HighFive::HighFive)
- etc... (see [ChangeLog](./CHANGELOG.md))

### Known flaws
- HighFive is not thread-safe. At best it has the same limitations as the HDF5 library. However, HighFive objects modify their members without protecting these writes. Users have reported that HighFive is not thread-safe even when using the threadsafe HDF5 library, e.g., https://github.com/BlueBrain/HighFive/discussions/675.
- HighFive is not thread-safe. At best, it has the same limitations as the HDF5 library. However, HighFive objects modify their members without protecting these writes. Users have reported that HighFive is not thread-safe even when using the threadsafe HDF5 library, e.g., https://github.com/BlueBrain/HighFive/discussions/675.
- Eigen support in core HighFive was broken until v3.0. See https://github.com/BlueBrain/HighFive/issues/532. H5Easy was not
affected.
- The support of fixed length strings isn't ideal.
Expand All @@ -68,7 +68,7 @@ using namespace HighFive;
std::string filename = "/tmp/new_file.h5";

{
// We create an empty HDF55 file, by truncating an existing
// We create an empty HDF5 file, by truncating an existing
// file if required:
File file(filename, File::Truncate);

Expand All @@ -93,12 +93,12 @@ std::string filename = "/tmp/new_file.h5";
**Note:** As of 2.8.0, one can use `highfive/highfive.hpp` to include
everything HighFive. Prior to 2.8.0 one would include `highfive/H5File.hpp`.

**Note:** For advanced usecases the dataset can be created without immediately
**Note:** For advanced use cases the dataset can be created without immediately
writing to it. This is common in MPI-IO related patterns, or when growing a
dataset over the course of a simulation.

### H5Easy
For simple, common usecases the [highfive/H5Easy.hpp](include/highfive/H5Easy.hpp)
For simple, common use cases the [highfive/H5Easy.hpp](include/highfive/H5Easy.hpp)
interface provides single line solution. Here's the example from the
introduction again:
```cpp
Expand All @@ -123,8 +123,8 @@ See [easy_load_dump.cpp](src/examples/easy_load_dump.cpp) for more details.
interchangeably.

### And Many More Examples!
We strive to have one example per usecase or feature of HighFive,
see [src/examples/](https://github.com/highfive-devs/highfive/blob/master/src/examples/)
We strive to have one example per use case or feature of HighFive,
see [src/examples/](https://github.com/highfive-devs/highfive/blob/main/src/examples/)
for more examples.


Expand Down Expand Up @@ -155,15 +155,15 @@ target_link_libraries(foo HighFive::HighFive)
```

**Note:** `add_subdirectory(third_party/HighFive)` will search and "link" HDF5
but wont search or link any optional dependencies such as Boost.
but won't search or link any optional dependencies such as Boost.

**Note:** The two targets `HighFive` and `HighFive::HighFive` are aliases. The
former is older and works with v2, while the latter was introduced in v3,
because CMake targets work more nicely if they contain `::`.

### Regular Installation of HighFive

Alternatively, HighFive can be install and "found" like regular software.
Alternatively, HighFive can be installed and "found" like regular software.
The project's `CMakeLists.txt` should add the following:
```cmake
find_package(HighFive REQUIRED)
Expand Down Expand Up @@ -217,7 +217,7 @@ HighFive integrates with the following libraries:

#### XTensor Header Location
XTensor reorganized their headers in version 0.26. HighFive attempts to guess
where the headers can be found. The guessing can be overridded by setting
where the headers can be found. The guessing can be overridden by setting
`HIGHFIVE_XTENSOR_HEADER_VERSION` to: `1` for finding `xtensor.hpp` in
`<xtensor/xtensor.hpp>` and `2` for `<xtensor/containers/xtensor.hpp>`.

Expand Down Expand Up @@ -269,7 +269,7 @@ Please consult its README for funding information by the Blue Brain Project or E
One of the main contributors to
[BlueBrain/HighFive](https://github.com/BlueBrain/HighFive) wanted to keep the
project alive past the end of BBP. This repository was created to provide a
seemless continuation of HighFive; and prevent fracturing or capturing of the
seamless continuation of HighFive; and prevent fracturing or capturing of the
project.

This repository is not supported by the Blue Brain Project or EPFL.
Expand Down
2 changes: 1 addition & 1 deletion doc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ LOOKUP_CACHE_SIZE = 0
# than 0 to get more control over the balance between CPU load and processing
# speed. At this moment only the input processing can be done using multiple
# threads. Since this is still an experimental feature the default is set to 1,
# which efficively disables parallel processing. Please report any issues you
# which effectively disables parallel processing. Please report any issues you
# encounter. Generating dot graphs in parallel is controlled by the
# DOT_NUM_THREADS setting.
# Minimum value: 0, maximum value: 32, default value: 1.
Expand Down
16 changes: 8 additions & 8 deletions doc/developer_guide.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Developer Guide
First clone the repository and remember the `--recursive`:
```bash
git clone --recursive git@github.com:BlueBrain/HighFive.git
git clone --recursive git@github.com:highfive-devs/HighFive.git
```
The instructions to recover if you forgot are:
```bash
Expand Down Expand Up @@ -149,7 +149,7 @@ arrays and mismatching sizes; and checking non-reallocation.

Read/Write cycles are implemented in two distinct checks. One for writing and
another for reading. When checking writing we read with a "trusted"
multi-dimensional array (a nested `std::vector`), and vice-versa when checking
multi-dimensional array (a nested `std::vector`), and vice versa when checking
reading. This matters because certain bugs, like writing a column major array
as if it were row-major can't be caught if one reads it back into a
column-major array.
Expand Down Expand Up @@ -227,7 +227,7 @@ brings their own copy of HighFive and uses it. The different vendoring
strategies are:

- **find_package**: the standard way for finding dependencies in CMake. Usually
the assumption is that HighFive was install properly, either systemwide or in
the assumption is that HighFive was installed properly, either systemwide or in
a specific subdirectory. HighFive is then found with `find_package` (or
`find_dependency` when called from `*Config.cmake`).

Expand All @@ -242,12 +242,12 @@ strategies are:
works.

#### Integration Strategies
These refer to downstream projects picking different HighFive targerts to
These refer to downstream projects picking different HighFive targets to
"link" with HighFive. There's four: two regular targets, a target that only
adds `-I <dir>` and one that skips all HighFive CMake code.

#### Location Hints
There are serveral ways of indicating where to find a package:
There are several ways of indicating where to find a package:

- **CMAKE_PREFIX_PATH**: which adds a list of directories to the list of
directories that are used as prefixes when searching for `HighFiveConfig.`
Expand All @@ -274,7 +274,7 @@ then their build breaks, complaining about missing HighFive targets (and it
seems they can't "fix it up" on their end because then CMake complains that
there's duplicate exported HighFive related targets).

The second way ommiting the missing `export()` can break downstream projects is
The second way omitting the missing `export()` can break downstream projects is
if they attempt to use HighFive's build directory (not install directory) as
`HighFive_ROOT` (or `CMAKE_PREFIX_PATH`).

Expand All @@ -297,7 +297,7 @@ symbols will exist, and they linker will pick one (arbitrarily); which is only
safe if all definitions are identical.

### Test "Organization"
The script to check everything is unwieldy. Here's a summary of what it attemps
The script to check everything is unwieldy. Here's a summary of what it attempts
to do.

There's three downstream project in play: `dependent_library` is a library that
Expand All @@ -314,7 +314,7 @@ The conceptually easy choices are:

- Libraries and applications that have dependencies that use HighFive should
use `find_package` since it's the easiest way of injecting a common version
of HighFive everwhere.
of HighFive everywhere.

Since we can't (and don't want to) force our consumers to use `find_package`
and ban vendoring, we have to test what happens when libraries vendor
Expand Down
6 changes: 3 additions & 3 deletions doc/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ Now, fingers crossed it'll compile and install:

Note that here we picked the installation path (or more precisely prefix) to be
`../hdf5-v1.14.0`. You might want to install HDF5 somewhere else. This
installation prefix is the also the path you need to give CMake so it's able to
installation prefix is also the path you need to give CMake so it's able to
find HDF5 later on.

### Confirming HDF5 Has Been Installed
Expand Down Expand Up @@ -200,7 +200,7 @@ enough.
Just like before the steps are, clone, configure, compile (kinda a no-op),
install. The detailed instructions would be

git clone --recursive https://github.com/BlueBrain/HighFive.git
git clone --recursive https://github.com/highfive-devs/HighFive.git
cd HighFive
git checkout v2.8.0

Expand Down Expand Up @@ -251,7 +251,7 @@ The required CMake commands are:
[100%] Linking CXX executable dummy
/usr/bin/c++ ... -o dummy -Wl,-rpath,${HDF5_ROOT}/lib ${HDF5_ROOT}/lib/libhdf5.so.310.0.0 ...

Pay attention to the semi-colon (not colon like the rest of Linux) used to
Pay attention to the semicolon (not colon like the rest of Linux) used to
separate directories in `CMAKE_PREFIX_PATH`. If this worked you should be set
to either copy the instruction to your "real" project, or start developing the
rest of your project.
10 changes: 5 additions & 5 deletions doc/migration_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ dset.read(x);
```
continues to be correct in `v3` and can check that the dimensions match. The
inspector recognizes `double[n][m]` as a contiguous array of doubles.
Therefore, it'll use the shallow-copy buffer and avoid the any additional
Therefore, it'll use the shallow-copy buffer and avoid any additional
allocations or copies.

### Intentional Raw Read
Expand Down Expand Up @@ -110,7 +110,7 @@ header only library, it needs to perform two tasks:
2. Export a target that sets `-I ${HIGHFIVE_DIR}` and links with HDF5.

We've removed all flags for optional dependencies, such as
`-DHIGHFIVE_USE_BOOST`. Instead user that want to read/write into/from
`-DHIGHFIVE_USE_BOOST`. Instead users that want to read/write into/from
optionally supported containers, include a header with the corresponding name
and make sure to adjust their CMake code to link with the dependency.

Expand Down Expand Up @@ -177,7 +177,7 @@ The feature is prone to accidentally not failing. Consider an array that shape
`[n, m]` and in general both `n, m > 0`. Hence, one should always be reading
into a two-dimensional array, even if `n == 1` or `m == 1`. However, due to
broadcasting, if one of the dimensions (accidentally) happens to be one, then
the checks wont fails. This isn't a bug, however, it can hide a bug. For
the checks won't fail. This isn't a bug, however, it can hide a bug. For
example if the test happen to use `[n, 1]` datasets and a one-dimensional
array.

Expand Down Expand Up @@ -254,8 +254,8 @@ HighFive::File open(std::string name, HighFive::File::AccessMode mode) {
}
```

Note: There's a caveat, the short-hand notation `File::ReadOnly` doesn't have
an address. Meaning one can't take it's address or const-references of it
Note: There's a caveat, the shorthand notation `File::ReadOnly` doesn't have
an address. Meaning one can't take its address or const-references of it
(results in a linker error about missing symbol `File::ReadOnly`). Use
`File::AccessMode::ReadOnly` instead.

Expand Down
Loading