Skip to content

Commit cf6b0bc

Browse files
committed
Update the changelog
1 parent c768b73 commit cf6b0bc

File tree

1 file changed

+47
-25
lines changed

1 file changed

+47
-25
lines changed

CHANGELOG.md

Lines changed: 47 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,69 @@
1+
# Changelog
2+
13
## 0.3.0-alpha.1 (unreleased)
24

3-
Updates:
5+
### Added
46

7+
- Added support for HDF5 1.10.
58
- Added Rust equivalents of HDF5 primitives: arrays, Unicode strings and ASCII strings – all of
69
them available in both fixed-size or variable-length flavours (`hdf5-types` crate).
710
- Added `H5Type` trait that unifies the types that can be handled by the HDF5 library. This trait
811
is implemented by default for all scalar types, tuples, fixed-size arrays and all types in
9-
`hdf5-types`.
12+
`hdf5-types` and can be used to create `Datatype` objects.
1013
- Implemented `#[derive(H5Type)]` proc macro that allows for seamless mapping of user-defined
1114
structs and enums to their HDF5 counterparts.
12-
- `Datatype` can now be constructed directly from an `H5Type`-compatible type (or from/to
13-
a type descriptor).
14-
- Added support for HDF5 1.10.
15-
- Updated the bindings and test to the latest HDF5 versions (1.10.4 and 1.8.21).
16-
- Added missing bindings for previous versions (mostly in `h5p` and `h5fd` modules).
17-
- Removed `remutex` crate, using locking primitives from `parking_lot` crate instead.
15+
- Added high-level wrappers for file-creation H5P API (`plist::FileCreate`) and
16+
file-access H5P API (`plist::FileAccess`).
17+
- Various improvements and additions to `PropertyList` type.
18+
- Added support for various file drivers (sec2/stdio/core/family/multi/split/log).
19+
- Added core reading/writing API in `Container`, with support for reading/writing scalars,
20+
1-d, 2-d, and dynamic-dimensional arrays, and raw slices. As a side effect, the main crate
21+
now depends on `ndarray`. `Dataset` now dereferences to `Container`.
22+
- Added basic support for reading and writing dataset slices.
23+
- When creating datasets, in-memory type layouts are normalized (converted to C repr).
24+
- Added `packed` option to `DatasetBuilder` (for creating packed HDF5 datasets).
25+
26+
### Changed
27+
28+
- Updated the bindings and tests to the latest HDF5 versions (1.10.4 and 1.8.21).
29+
- The build system has been reworked from the ground up:
30+
- `libhdf5-lib` crate has been removed; all of the build-time logic now resides
31+
in the build script of `libhdf5-sys`.
32+
- The environment variables the build script reacts to are now `HDF5_DIR` and `HDF5_VERSION`.
33+
- `pkg-config` is now only launched on Linux.
34+
- On macOS, the build scripts detects Homebrew installations, for both 1.8 and 1.10 versions.
35+
- On Windows, we now scan the registry to detect official system-wide installations.
36+
- Dynamic linking now works with conda envs; `HDF5_DIR` can be now pointed to a conda env.
37+
- A few definitions from `H5pubconf.h` are now exposed as cfg definitions, like
38+
`h5_have_parallel`, `h5_have_threadsafe` and `h5_have_direct` (this requires us to
39+
locate the include folder and parse the header at build time).
40+
- Various clean ups in `libhdf5-sys`: implemented `Default` and `Clone` where
41+
applicable, moved a few types and methods to matching parent modules.
1842
- Major refactor: trait-based type hierarchy has been replaced with a `Deref`-based
1943
hierarchy instead (53eff4f). `ID` and `FromID` traits have been removed. Traits like `Location`,
2044
`Object` and a few other have been replaced with real types (wrappers around HDF5 handles, same
2145
as the concrete types like `File`). Subtypes then dereference into parent types, so the
2246
user can user methods of the parent type without having to import any traits into scope
2347
(for instance, `File` dereferences into `Group`, which dereferences into `Location`,
2448
which dereferences into `Object`).
25-
- `Container` trait has been removed, all of its functionality is moved into `Group` type.
26-
- Added high-level wrappers for file-creation H5P API (`plist::FileCreate`) and
27-
file-access H5P API (`plist::FileAccess`).
28-
- Various improvements and additions to `PropertyList` type.
29-
- Added support for various file drivers (sec2/stdio/core/family/multi/split/log).
49+
50+
### Fixed
51+
52+
- `hbool_t` is now mapped to unsigned integer of proper size (either 1 byte or 4 bytes),
53+
depending on how the HDF5 library was built and on which platform.
54+
- Added missing bindings for previous versions (mostly in `h5p` and `h5fd` modules).
3055
- Querying the HDF5 error stack is now thread-safe.
3156
- Error silencing (`silence_errors()`) is now thread-safe.
32-
- Various clean ups in `libhdf5-sys`: implemented `Default` and `Clone` where
33-
applicable, moved a few types and methods to matching parent modules.
34-
- `Dataset` now dereferences into `Container` (dataset/attribute shared functionality).
35-
- The main crate now depends on `ndarray` (multi-dimensional arrays).
36-
- Added core reading/writing API for `Container`, with support for reading/writing scalars,
37-
1-d, 2-d, and dynamic-dimensional arrays, and raw slices.
38-
- Added basic support for reading and writing dataset slices.
39-
- Added `packed` option to `DatasetBuilder` (for creating packed HDF5 datasets).
40-
- When creating datasets, in-memory type layouts are normalized (converted to C repr).
57+
58+
### Removed
59+
60+
- Removed `libhdf5-lib` crate (merged it into `libhdf5-sys`, see above).
61+
- Removed `remutex` crate, using locking primitives from `parking_lot` crate instead.
62+
- `Container` trait has been removed, all of its functionality merged into `Group` type.
4163

4264
## 0.2.0 (Apr 17, 2016)
4365

44-
Features:
66+
### Added
4567

4668
- Full support of `msvc` target on Windows. CI tests on AppVeyor now use official reeases of HDF5
4769
binaries (1.8.16, VS2015, x86_x64). The `gnu` target are still unofficially supported but
@@ -66,14 +88,14 @@ Features:
6688
now of reference type and need to be dereferenced upon use (for `msvc`, they have to be
6789
dereferenced twice).
6890

69-
Changes:
91+
### Changed
7092

7193
- API simplification: many methods previously expecting `Into<String>` inputs now just take `&str`.
7294
- `util::to_cstring` now takes `Borrow<str>` instead of `Into<String>` so as to avoid
7395
unnecessary allocations, and the return value is now wrapped in `Result` so that interior
7496
null bytes in input strings trigger an error.
7597

76-
Bugfixes:
98+
### Fixed
7799

78100
- Fixed dangling pointer problems when strings were being passed as pointers to the C API.
79101
- Fixed target path not being passed correctly in `Container::link_soft`.

0 commit comments

Comments
 (0)