Changes in version 2.48.0 CHANGES o R complex types can now be written to HDF5. These will be stored as a compound datatype with two elements (r & i) representing the real and imaginary parts. o Functions H5Screate_simple and H5Sset_extent_simple now accept numeric values to the dim and maxdim arguments, allowing the creation of HDF5 dataspaces larger than R's maximum integer value. (Thanks to @hpages for reporting this and providing a patch https://github.com/grimbough/rhdf5/pull/140). o Messages about the presence of INT_MIN in datasets created outside of rhdf5, and how R will convert them to NA have been moved from H5Dread to the high-level h5read function. (See https://github.com/LTLA/scRNAseq/issues/44 for more details). Bug fixes o Corrected an issue where the function prototype for _h5fileLock() differed from the actual implementation. o Addressed a bug where fixed length string attributes would be one character shorter than they should be. Backported to rhdf5 2.46.1. (Thanks to Aaron Lun @LTLA for reporting this https://github.com/grimbough/rhdf5/issues/132). o Fixed an issue where zero length datasets of uint32, int64 or uint64 datatypes could not be read. This would fail with an error message saying there was not enough memory. Backported to rhdf5 2.46.1. (Thanks to Aaron Lun @LTLA for reporting this https://github.com/grimbough/rhdf5/issues/134). Changes in version 2.46.0 CHANGES o Added support for reading nullable booleans and integers from the AnnData specification. h5read() will detect these automatically an attempt to cooerce them to the appropriate R data format. Changes in version 2.44.0 CHANGES o h5closeAll() now accepts objects as arguments to allow closing a set of HDF5 identifiers. o Functions H5Teunum_create() and H5Tenum_insert() have been included. o h5set_extent() will now test whether a dataset is chunked and inform the user if not. This uses the new function H5Dis_chunked(). o The function H5Pset_filter() is now exposed to the user. BUG FIXES o Modified how the constant H5S_UNLIMITED was being passed to the HDF5 library. The previous strategy was not working on the ARM64 architecture, and leading to failures when trying to change the size of a dataset. o Resolved issue when reporting missing filters where R-to-C indexing was being applied twice, resulting in the message: "'idx' argument is outside the range of filters set on this property list" Changes in version 2.42.0 CHANGES o Function H5Ocopy() has been included. o UTF-8 encoded character datsets will be marked as having the same encoding when read into an R session. BUG FIXES o h5write() no longer truncates multibyte UTF-8 strings (Thanks to Aaron Lun @LTLA for reporting this and providing a fix, https://github.com/grimbough/rhdf5/issues/111). Changes in version 2.40.0 NEW FEATURES o Added H5R functions for working with object and dataset region references. o The HDF5 N-Bit filter has been enabled with via the function H5Pset_nbit(). This can be combined with H5Tset_precision() to compress integer and floating-point datasets. CHANGES o Argument 'cset' to h5createAttribute() and h5writeAttribute() have been deprecated. The 'encoding' argument should be used going forward. This ensures consistency with h5create() and h5write(). BUG FIXES o The documentation for the 'encoding' argument to h5createDataset() and h5writeDataset() stated 'UTF-8' was a valid option, however this would produce an error. This has now been fixed. (Thanks to @ilia-kats for identifying this, https://github.com/grimbough/rhdf5/pull/101) o Fixed bug where an uninitialized value was used in the C code underlying h5dump() potentially causing crashes. o Addressed issue in h5dump() and h5ls() that falsely declared there were duplicated groups when used on a file with external links (Thanks to @acope3 for reporting this, https://github.com/grimbough/rhdf5/issues/107). Changes in version 2.38.0 NEW FEATURES o Added support for reading attributes where the datatype is either a 64-bit or unsigned 32-bit integer. o Added many functions for working with file creation property lists. (Thanks to @ilia-kats for the contribution, https://github.com/grimbough/rhdf5/pull/95) o Added support for variable length and UTF-8 encoded string datasets. (Thanks to Aaron Lun @LTLA for the contribution, https://github.com/grimbough/rhdf5/pull/88) CHANGES o Documentation switched to roxygen2 BUG FIXES o h5createDataset() now prints a warning if a chunk dimension exceeds the maximum size of that dimension and automatically sets the corresponding chunk dimension to the maxiumum. (Thanks to Eric Kernfeld @ekernf01 for the report, https://github.com/grimbough/rhdf5/issues/97) Changes in version 2.36.0 NEW FEATURES o Added additional hyberslab selection functions introduced in HDF5 1.10.7 (H5Scombine_hyperslab, H5Scombine_select, H5Sget_select_npoints). o Support for read access to files in S3 buckets now includes Windows. o Added function h5deleteAttribute(). BUG FIXES o Addressed issue where messages printed when loading .Rprofile were breaking detection of the rhdf5filters package. (https://github.com/grimbough/rhdf5/issues/81) Changes in version 2.34.0 NEW FEATURES o Added support for read access to files in Amazon S3 buckets (currently only available on non-Windows platforms). o Included read and write support for dynamic compression filters distributed in rhdf5filters. CHANGES o All datasets written with h5write() now have the attribute rhdf5-NA.OK added to them. This is used to indicate that rhdf5 was used to create the file and that the user does not need to be informed that specific values will be mapped to NA in R. BUG FIXES o Fix bug in H5Dget_storage_size() where the wrong C function was called. o NA values in logical datatypes are now preserved when written and read back into R (https://github.com/grimbough/rhdf5/issues/58). o Fixed error when trying to write a vector containing only empty strings (https://github.com/grimbough/rhdf5/issues/60). o h5ls() and h5dump() no longer crash when given a file containing recursive or duplicated groups (https://github.com/grimbough/rhdf5/issues/48). o Reading compound datasets with at least one 8-bit integer field now works (https://github.com/grimbough/rhdf5/issues/71). o Fixed problem when writing a data.frame containing a column of raw values. These columns were ommitted when creating a compound dataset. o Patch early UNPROTECT() when reading a Enum type that could cause a segmentation fault (https://github.com/grimbough/rhdf5/issues/73) Changes in version 2.32.0 NEW FEATURES o Added support for writing and reading datasets using the R 'raw' datatype. o HDF5 functions H5Tset_strbuf and H5Tget_strbuf are now exposed. CHANGES o R 'logical' values are now stored as 8-bit integers rather than 32-bit integers. (Response to suggestions in https://github.com/grimbough/rhdf5/pull/55) o Default compression level is 6 for all functions, rather than a mix of 6 or 7 in different places. o Character vectors written as HDF5 strings are now null padded by default, rather than null terminated. (Response to https://github.com/grimbough/rhdf5/pull/50) BUG FIXES o Writing data.frames with more than one factor column no longer leads to memory explosion. o Bug in h5ls() which could lead to failure in printing the dataset dimensions has been fixed. o Patched bug in h5write which left an unclosed HDF5 datatype object when writing strings. Changes in version 2.30.0 NEW FEATURES o Functions H5Lmove & H5Lcopy are now exported and accessible. BUG FIXES o Source file names are no longer mangled when printing error messages. o NA values in a character() vector can now be written to an HDF5 dataset. Changes in version 2.28.0 NEW FEATURES o Functions to test and set file locking have added. These can help identify and address problems on Lustre and ZFS file systems. USER VISIBLE CHANGES o Reading a dataset of rank one will now return an R vector, rather than a one dimensional array. BUG FIXES o Large improvements to performance when selecting subsets of datasets using the `index` argument. o Resolved limitations where large datasets would exceed HDF5's 4GB maximum chunk size. The default options will now check if this will occur and adjust chunking automatically. o Single-rank datasets larger than 2^31-1 entries can now be read into R vectors. Changes in version 2.26.0 BUG FIXES o Compilation problems on Solaris have been addressed. Changes in version 2.24.0 NEW FEATURES o Removed bundled HDF5 library - rhdf5 now depends on Rhdf5lib. This updates the version of HDF5 to 1.8.19. o Functions H5Ldelete() and h5delete() added to provide mechanisms for removing items from HDF files. o Added argument `native` to many functions, which allows data to be treated as row-major rather than column-major, improving portability with other programming languages. o Added function H5Sunlimited() allowing creation of extensible datasets - thanks to Brad Friedman BUG FIXES o Datasets can now be subset using `[` and a range of values e.g. did[,1:5]. o Writing a data.frame that contains factors and setting DataFrameAsCompound=FALSE now works. o Many functions that would leave open file handles after exiting under error conditions have been fixed. o Performance improvements in h5read(). Changes in version 2.20.0 NEW FEATURES o Indexing into spaces with more than .Machine$integer.max elements is supported using numeric (rather than integer) indexing; this provides exact indexing into spaces with about 51 bits of precision. o Zero-length indexing is now supported (returning zero-length slabs). BUG FIXES o Using bit64conversion = "double" would always warn about loss of precision, but now only warns when precision is actually lost. Changes in version 2.18.0 NEW FEATURES o The low-level functions H5Pset_libver_bounds and H5Pget_libver_bounds is implemented. Creating files that can only be read by library versions 1.8 or later allows the usage of large attributes and improves performance. USER VISIBLE CHANGES o Per default all HDF5 files will be created with version 1.8 as lower bound. That means the created files can only be read with HDF5 library versions >= 1.8. This changes allows the usage of large attributes and leads to performance improvements. If one wants to create a file that is readable with the earliest version of HDF5, one has to call H5Fcreate with fapl=h5default("H5P"). o Warning messages from the package C code can now be suppressed by the R-function suppressWarnings(). Changes in version 2.16.0 NEW FEATURES o New access of HDF5 files by file, group and dataset handles. HDF5 groups and datasets can be read and written by the $-operator (e.g. h5f$A) and the [-operator can be used for partial reading and writing of datasets (e.g. h5d[3,,]). o New low level general library function H5Dget_create_plist implemented. o Removed #include from external C code. To be compatible with newest C-compilers and current R-devel Changes in version 2.14.0 NEW FEATURES o improved handling of error messages: HDF5 error messages are simplified and forwarded to R. o When reading integer valued data, especially 64-integers and unsigned 32-bit integers, overflow values are now replaced by NA's and a warning is thrown in this case. o When coercing HDF5-integers to R-double, a warning is displayed when integer precision is lost. o New low level general library function H5Dget_storage_size implemented. BUG FIXES o Memory allocation on heap instead of stack for reading large datasets (Thanks to a patch from Jimmy Jia). o Some bugs have been fixed for reading large 64-bit integers and unsigned 32-bit integers. o A bug was fixed for reading HDF5 files containing soft links. Changes in version 2.12.0 NEW FEATURES o Filenames are expanded with normalizePaths. o New function h5set_extent implemented. o New low level function H5Sset_extent_simple implemented. BUG FIXES o Segmentation fault while writing data type names for uncommitted data types. Changes in version 2.10.0 NEW FEATURES o Added support for HDF5 property lists. o Added property list arguments to H5Dcreate and H5Dopen. o New function h5readAttributes implemented that reads all HDF5 attributes of one object. o New function h5version implemented. o fillValue parameter added to h5createDataset. o New low level general library functions H5Lcreate_external, H5Fis_hdf5, H5Fget_filesize, H5Fget_name, H5Pcreate, H5Pcopy, H5Pget_class, H5Pclose, H5Pclose_class, H5Pset_char_encoding, H5Pset_create_intermediate_group, H5Pset_chunk_cache, H5Pset_layout, H5Pset_chunk, H5Pget_chunk, H5Pset_deflate, H5Pset_fill_value, H5Pset_fill_time, H5Pset_alloc_time, H5Pequal implemented. o Support for parallel Make (make -j) USER VISIBLE CHANGES o A warning is shown in high level function (h5read, h5write and others), if an open HDF5 handle already exists for the specified filename. BUG FIXES o Error in h5write for 0-length objects, as a consequence of automatic determining chunk size o missing size parameter message in h5createDataset now correctly display o checking for open file identifiers in h5read and h5ls now only searches for file names in open files, groups and datasets. o assignment has now correct pointer target type (void *) in H5Pset_fill_value Changes in version 2.8.0 NEW FEATURES o New function h5version implemented. o New low level general library functions H5open, H5close, H5garbage_collect, H5get_libversion, and H5Dset_extent implemented. USER VISIBLE CHANGES o h5createDataset automatically uses chunking and compression. o Added a warning if chunk size is equal to dimensions for large compressed datasets. BUG FIXES o C-stack overflow when reading large fixed-length strings. o error in i/o with chunksize or blocksize parameters. o compiling errors due to missing int return value. Changes in version 2.6.0 NEW FEATURES o support for logical added o support for reading attributes added (use read.attributes=TRUE) o enabeled compression for data.frame in h5write USER VISIBLE CHANGES o Use BiocStyles for package vignette Changes in version 2.4.0 NEW FEATURES o support for reading 64-bit integers added o support for reading variable length strings added o support for reading scalar objects added USER VISIBLE CHANGES o NEWS.Rd added o display of chunksize.pdf as a vignette avoided