summaryrefslogtreecommitdiffstats
path: root/release_docs/RELEASE.txt
blob: 7c87c4c48c8ba57891236ce59113f0873979f8f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
HDF5 version 1.10.2-snap2 currently under development
================================================================================


INTRODUCTION

This document describes the differences between HDF5-1.10.1 and HDF5 1.10.2, and
contains information on the platforms tested and known problems in HDF5-1.10.1.
For more details check the HISTORY*.txt files in the HDF5 source.


Links to HDF5 1.10.1 source code, documentation, and additional materials can be found on The HDF5 web page at:

     https://support.hdfgroup.org/HDF5/

The HDF5 1.10.1 release can be obtained from:

     https://support.hdfgroup.org/HDF5/release/obtain5.html

User documentation for the snapshot can be accessed directly at this location:

     https://support.hdfgroup.org/HDF5/doc/

New features in the HDF5-1.10.x release series, including brief general
descriptions of some new and modified APIs, are described in the "New Features
in HDF5 1.10" document:

https://support.hdfgroup.org/HDF5/docNewFeatures/index.html

All new and modified APIs are listed in detail in the "HDF5 Software Changes
from Release to Release" document, in the section "Release 1.10.1 (current
release) versus Release 1.10.0

     https://support.hdfgroup.org/HDF5/doc/ADGuide/Changes.html

If you have any questions or comments, please send them to the HDF Help Desk:

    help@hdfgroup.org


CONTENTS

- New Features
- Support for new platforms and languages
- Bug Fixes since HDF5-1.10.1
- Supported Platforms
- Tested Configuration Features Summary
- More Tested Platforms
- Known Problems


New Features
============

    Configuration:
    -------------
    - Removed version-specific gcc/gfortran flags for version 4.0 (inclusive)
      and earlier.

      The config/gnu-flags file, which is sourced as a part of the configure
      process, adds version-specific flags for use when building HDF5. Most of
      these flags control warnings and do not affect the final product.

      Flags for older versions of the compiler were consolidated into the
      common flags section. Moving these flags simplifies maintenance of
      the file.

      The upshot of this is that building with ancient versions of gcc
      (<= 4.0) will possibly no longer work without hand-hacking the file
      to remove the flags not understood by that version of the compiler.
      Nothing should change when building with gcc >= 4.1.

      (HDFFV-9937, DER, 2017/05/31)

    - -fno-omit-frame-pointer was added when building with debugging symbols
      enabled.

      Debugging symbols can be enabled independently of the overall build
      mode in both the autotools and CMake. This allows (limited) debugging
      of optimized code. Since many debuggers rely on the frame pointer,
      we've disabled this optimization when debugging symbols are requested
      (e.g.: via building with --enable-symbols).

      (HDFFV-10226, DER, 2017/05/31)

    Library:
    --------
    - H5FDdriver_query() API call added to the C library.

      This new library call allows the user to query a virtual file driver
      (VFD) for the feature flags it supports (listed in H5FDpublic.h).
      This can be useful to determine if a VFD supports SWMR, for example.

      Note that some VFDs have feature flags that may only be present
      after a file has been created or opened (e.g.: the core VFD will
      have the H5FD_FEAT_POSIX_COMPAT_HANDLE flag set if the backing
      store is switched on). Since the new API call queries a generic VFD
      unassociated with a file, these flags will never be returned.

      (HDFFV-10215, DER, 2017/05/31)


    - H5FD_FEAT_DEFAULT_VFD_COMPATIBLE VFD feature flag added to the C library.

      This new feature flag indicates that the VFD is compatible with the
      default VFD. VFDs that set this flag create single files that follow
      the canonical HDF5 file format.

      (HDFFV-10214, DER, 2017/05/31)

    - The H5I_REFERENCE value in the H5I_type_t enum (defined in H5Ipublic.h)
      has been marked as deprectated.

      This ID type value is not used in the C library. i.e.: There are no
      hid_t values that are of ID type H5I_REFERENCE.

      This enum value will be removed in a future major version of the library.
      The code will remain unchanged in the HDF5 1.10.x branches.

      (HDFFV-10252, DER, 2017/04/05)

    Parallel Library:
    -----------------
    - Large MPI-IO transfers

      Previous releases of PHDF5 would fail when attempting to
      read or write greater than 2GB of data in a single IO operation.
      This issue stems principally from an MPI API whose definitions
      utilize 32 bit integers to describe the number of data elements
      and datatype that MPI should use to effect a data transfer.
      Historically, HDF5 has invoked MPI-IO with the number of
      elements in a contiguous buffer represented as the length
      of that buffer in bytes.

      Resolving the issue and thus enabling larger MPI-IO transfers
      is accomplished first, by detecting when a user IO request would
      exceed the 2GB limit as described above.  Once a transfer request
      is identified as requiring special handling, PHDF5 now creates a
      derived datatype consisting of a vector of fixed sized blocks
      which is in turn wrapped within a single MPI_Type_struct to
      contain the vector and any remaining data.   The newly created
      datatype is then used in place of MPI_BYTE and can be used to
      fulfill the original user request without encountering API
      errors.

      (RAW – 2017/09/20, HDFFV-8839)

    Fortran Library:
    ----------------
    -

    C++ Library:
    ------------
    -

    Java Library:
    -------------

    - The H5I_REFERENCE value in the H5I_type_t enum (defined in H5Ipublic.h)
      has been marked as deprectated.

      JNI code which refers to this value will be removed in a future
      major version of the library. The code will remain unchanged in the
      1.10.x branches.

      See the C library section, above, for further information.

      (HDFFV-10252, DER, 2017/04/05)


    Tools:
    ------
    - h5diff

      h5diff has new option enable-error-stack.

      Updated h5diff with the --enable-error-stack argument, which
      enables the display of the hdf5 error stack. This completes the
      improvement to the main tools; h5copy, h5diff, h5dump, h5ls and
      h5repack.

      (ADB - 2017/08/30, HDFFV-9774)

    High-Level APIs:
    ---------------
    -

    C Packet Table API
    ------------------
    -

    Internal header file
    --------------------
    -

    Documentation
    -------------
    -

Support for new platforms, languages and compilers.
=======================================
    -

Bug Fixes since HDF5-1.10.0-patch1 release
==================================

    Library
    -------
    - Fix H5HL_offset_into()

      (1) Fix H5HL_offset_into() to return error when offset exceeds heap data
          block size.
      (2) Fix other places in the library that call this routine to detect
          error routine.
        
      (HDFFV-10216, VC, 2017/08/30)

    - Fixes for paged aggregation

      Skip test in test/fheap.c when:
      (1) multi/split drivers and
      (2) persisting free-space or using paged aggregation strategy

      (VC, 2017/07/10)

    - Fixes for paged aggregation

      Changes made based on RFC review comments:
      (1) Add maximum value for file space page size
      (2) Drop check for page end metadata threshold
      (3) Remove "can_shrink" and "shrink" callbacks for small section class

      (VC, 2017/06/09)

    - Fix for infinite loop in H5VM_power2up().

      The function H5VM_power2up() returns the next power of 2
      for n. When n exceeds 2^63, it overflows and becomes 0 causing
      the infinite looping. 

      The fix ensures that the function checks for n >= 2^63
      and returns 0.

      (HDFFV-10217, VC, 2017/07/10)

    - Fix for H5Ocopy doesn't work with open identifiers

      Changes made so that raw data for dataset objects are copied from
      cached info when possible instead of flushing objects to file and
      read them back in again.

      (HDFFV-7853, VC, 2017/07/05)

    Configuration
    -------------
    - Corrected FORTRAN_HAVE_C_LONG_DOUBLE processing in the autotools.

      A bug in the autotools Fortran processing code always set the
      FORTRAN_HAVE_C_LONG_DOUBLE variable to be true regardless of
      whether or not a C long double type was present.

      This would cause compilation failures on platforms where a C
      long double type was not available and the Fortran wrappers
      were being built.

      (HDFFV-10247, DER, 2017/07/05)

    - The deprecated --enable-production and --enable-debug configure options
      failed to emit errors when passed an empty string
      (e.g.: --enable-debug="").

      Due to the way we checked for these options being set, it was possible
      to avoid the error message and continue configuration if an empty string
      was passed to the option.

      Any use of --enable-production or --enable-debug will now halt the
      configuration step and emit a helpful error message
      (use --enable-build-mode=debug|production instead).

      (HDFFV-10248, DER, 2017/07/05)

    - cmake

      Too many commands for POST_BUILD step caused command line to be
      too big on windows.

      Changed foreach of copy command to use a custom command with the
      use of the HDFTEST_COPY_FILE macro.

      (ADB - 2017/07/12, HDFFV-10254)

    Performance
    -------------
    -

    Fortran
    --------
    -

    Tools
    -----
    - h5repack

      h5repack always set the User Defined filter flag to H5Z_FLAG_MANDATORY.

      Added another parameter to the 'UD=' option to set the flag by default
      to '0' or H5Z_FLAG_MANDATORY, the other choice is '1' or H5Z_FLAG_OPTIONAL.

      (ADB - 2017/08/31, HDFFV-10276)

    - h5ls

      h5ls generated error on stack when it encountered a H5S_NULL
      dataspace.

      Adding checks for H5S_NULL before calling H5Sis_simple (located
      in the h5tools_dump_mem function) fixed the issue.

      (ADB - 2017/08/17, HDFFV-10188)

    - h5repack

      Add tests to h5repack.sh.in to verify options added for paged 
      aggregation work as expected.

      (VC, 2017/08/03)

    - h5dump

      h5dump segfaulted on output of XML file.

      Function that escape'd strings used the full buffer length
      instead of just the length of the replacement string in a
      strncpy call. Using the correct length fixed the issue.

      (ADB - 2017/08/01, HDFFV-10256)

    - h5diff

      h5diff segfaulted on compare of a  NULL variable length string.

      Improved h5diff compare of strings by adding a check for
      NULL strings and setting the lengths to zero.

      (ADB - 2017/07/25, HDFFV-10246)

    - h5import

      h5import crashed trying to import data from a subset of a dataset.

      Improved h5import by adding the SUBSET keyword. h5import understands
      to use the Count times the Block as the size of the dimensions.
      Added INPUT_B_ORDER keyword to old-style configuration files.
      The import from h5dump function expects the binary files to use native
      types (FILE '-b' option) in the binary file.

      (ADB - 2017/06/15, HDFFV-10219)

    - h5repack

      h5repack did not maintain the creation order flag of the root
      group.

      Improved h5repack by reading the creation order and applying the
      flag to the new root group. Also added arguments to set the
      order and index direction, which applies to the traversing of the
      original file, on the command line.

      (ADB - 2017/05/26, HDFFV-8611)

    - h5diff

      h5diff failed to account for strpad type and null terminators
      of char strings. Also, h5diff failed to account for string length
      differences and would give a different result depending on file
      order in the command line.

      Improved h5diff compare of strings and arrays by adding a check for
      string lengths and if the strpad was null filled.

      (ADB - 2017/05/18, HDFFV-9055, HDFFV-10128)

    High-Level APIs:
    ------
    - Fixed a bug in the H5DOwrite_chunk() API call where overwriting a chunk
      with no filters caused an assert to trip (with assertions enabled /
      debug builds) or additional chunks to be inserted instead of overwriting
      the data (without assertions enabled / production builds).

      (HDFFV-10187, DER, 2017/05/11)

    Fortran High-Level APIs:
    ------
    -

    Documentation
    -------------
    -

    F90 APIs
    --------
    -

    C++ APIs
    --------
    -

    Testing
    -------
    -

Supported Platforms
===================

    Linux 2.6.32-573.18.1.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
    #1 SMP ppc64 GNU/Linux        g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
    (ostrich)                     GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
                                  IBM XL C/C++ V13.1
                                  IBM XL Fortran V15.1

    Linux 3.10.0-327.10.1.el7   GNU C (gcc), Fortran (gfortran), C++ (g++)
    #1 SMP x86_64 GNU/Linux       compilers:
    (kituo/moohan)                  Version 4.8.5 20150623 (Red Hat 4.8.5-4)
                                    Version 4.9.3, Version 5.2.0
                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
                                  compilers:
                                     Version 15.0.3.187 Build 20150407
                                  MPICH 3.1.4 compiled with GCC 4.9.3

    SunOS 5.11 32- and 64-bit     Sun C 5.12 SunOS_sparc
    (emu)                         Sun Fortran 95 8.6 SunOS_sparc
                                  Sun C++ 5.12 SunOS_sparc

    Windows 7                     Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2015 w/ Intel Fortran 16 (cmake)
                                  Cygwin(CYGWIN_NT-6.1 2.2.1(0.289/5/3) gcc(4.9.3) compiler and gfortran)
                                  (cmake and autotools)

    Windows 7 x64                 Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2015 w/ Intel Fortran 16 (cmake)
                                  Visual Studio 2015 w/ Intel Parallel Studio 2017 (cmake)

    Windows 10                    Visual Studio 2015 w/ Intel Fortran 16 (cmake)

    Windows 10 x64                Visual Studio 2015 w/ Intel Fortran 16 (cmake)

    Mac OS X Mt. Lion 10.8.5      Apple clang/clang++ version 5.1 from Xcode 5.1
    64-bit                        gfortran GNU Fortran (GCC) 4.8.2
    (swallow/kite)                Intel icc/icpc/ifort version 15.0.3

    Mac OS X Mavericks 10.9.5     Apple clang/clang++ version 6.0 from Xcode 6.2
    64-bit                        gfortran GNU Fortran (GCC) 4.9.2
    (wren/quail)                  Intel icc/icpc/ifort version 15.0.3

    Mac OS X Yosemite 10.10.5     Apple clang/clang++ version 6.1 from Xcode 7.0
    64-bit                        gfortran GNU Fortran (GCC) 4.9.2
    (osx1010dev/osx1010test)      Intel icc/icpc/ifort version 15.0.3

    Mac OS X El Capitan 10.11.6   Apple clang/clang++ version 7.3.0 from Xcode 7.3
    64-bit                        gfortran GNU Fortran (GCC) 5.2.0
    (osx1010dev/osx1010test)      Intel icc/icpc/ifort version 16.0.2


Tested Configuration Features Summary
=====================================

    In the tables below
          y   = tested
          n   = not tested in this release
          C   = Cluster
          W   = Workstation
          x   = not working in this release
          dna = does not apply
          ( ) = footnote appears below second table
          <blank> = testing incomplete on this feature or platform

Platform                              C         F90/   F90      C++  zlib  SZIP
                                      parallel  F2003  parallel
Solaris2.11 32-bit                      n        y/y    n        y    y     y
Solaris2.11 64-bit                      n        y/n    n        y    y     y
Windows 7                               y        y/y    n        y    y     y
Windows 7 x64                           y        y/y    y        y    y     y
Windows 7 Cygwin                        n        y/n    n        y    y     y
Windows 7 x64 Cygwin                    n        y/n    n        y    y     y
Windows 10                              y        y/y    n        y    y     y
Windows 10 x64                          y        y/y    n        y    y     y
Mac OS X Mountain Lion 10.8.5 64-bit    n        y/y    n        y    y     y
Mac OS X Mavericks 10.9.5 64-bit        n        y/y    n        y    y     y
Mac OS X Yosemite 10.10.5 64-bit        n        y/y    n        y    y     y
Mac OS X El Capitan 10.11.6 64-bit      n        y/y    n        y    y     y
CentOS 7.2 Linux 2.6.32 x86_64 PGI      n        y/y    n        y    y     y
CentOS 7.2 Linux 2.6.32 x86_64 GNU      y        y/y    y        y    y     y
CentOS 7.2 Linux 2.6.32 x86_64 Intel    n        y/y    n        y    y     y
Linux 2.6.32-573.18.1.el6.ppc64         n        y/y    n        y    y     y


Platform                                 Shared  Shared    Shared    Thread-
                                         C libs  F90 libs  C++ libs  safe
Solaris2.11 32-bit                         y       y         y         y
Solaris2.11 64-bit                         y       y         y         y
Windows 7                                  y       y         y         y
Windows 7 x64                              y       y         y         y
Windows 7 Cygwin                           n       n         n         y
Windows 7 x64 Cygwin                       n       n         n         y
Windows 10                                 y       y         y         y
Windows 10 x64                             y       y         y         y
Mac OS X Mountain Lion 10.8.5 64-bit       y       n         y         y
Mac OS X Mavericks 10.9.5 64-bit           y       n         y         y
Mac OS X Yosemite 10.10.5 64-bit           y       n         y         y
Mac OS X El Capitan 10.11.6 64-bit         y       n         y         y
CentOS 7.2 Linux 2.6.32 x86_64 PGI         y       y         y         n
CentOS 7.2 Linux 2.6.32 x86_64 GNU         y       y         y         y
CentOS 7.2 Linux 2.6.32 x86_64 Intel       y       y         y         n
Linux 2.6.32-573.18.1.el6.ppc64            y       y         y         n

Compiler versions for each platform are listed in the preceding
"Supported Platforms" table.


More Tested Platforms
=====================
The following platforms are not supported but have been tested for this release.

    Linux 2.6.32-573.22.1.el6    GNU C (gcc), Fortran (gfortran), C++ (g++)
    #1 SMP x86_64 GNU/Linux       compilers:
    (mayll/platypus)                 Version 4.4.7 20120313
                                     Version 4.8.4
                                  PGI C, Fortran, C++ for 64-bit target on
                                  x86-64;
                                      Version 16.10-0
                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
                                  compilers:
                                     Version 15.0.3.187 (Build 20150407)
                                  MPICH 3.1.4 compiled with GCC 4.9.3

    Linux 3.10.0-327.18.2.el7     GNU C (gcc) and C++ (g++) compilers
    #1 SMP x86_64 GNU/Linux          Version 4.8.5 20150623 (Red Hat 4.8.5-4)
    (jelly)                       with NAG Fortran Compiler Release 6.1(Tozai)
                                  Intel(R) C (icc) and C++ (icpc) compilers
                                     Version 15.0.3.187 (Build 20150407)
                                  with NAG Fortran Compiler Release 6.1(Tozai)

    Linux 2.6.32-573.18.1.el6.ppc64  MPICH mpich 3.1.4 compiled with
    #1 SMP ppc64 GNU/Linux           IBM XL C/C++ for Linux, V13.1
    (ostrich)                        and IBM XL Fortran for Linux, V15.1

    Debian 8.4 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1 x86_64 GNU/Linux
                                  gcc, g++ (Debian 4.9.2-10) 4.9.2
                                  GNU Fortran (Debian 4.9.2-10) 4.9.2
                                  (cmake and autotools)

    Fedora 24  4.7.2-201.fc24.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
                                  gcc, g++ (GCC) 6.1.1 20160621
                                      (Red Hat 6.1.1-3)
                                  GNU Fortran (GCC) 6.1.1 20160621
                                      (Red Hat 6.1.1-3)
                                  (cmake and autotools)

    Ubuntu 16.04.1 4.4.0-38-generic #57-Ubuntu SMP x86_64 GNU/Linux
                                  gcc, g++ (Ubuntu 5.4.0-6ubuntu1~16.04.2)
                                      5.4.0 20160609
                                  GNU Fortran (Ubuntu 5.4.0-6ubuntu1~16.04.2)
                                      5.4.0 20160609
                                  (cmake and autotools)


Known Problems
==============

    At present, metadata cache images may not be generated by parallel
    applications.  Parallel applications can read files with metadata cache
    images, but since this is a collective operation, a deadlock is possible
    if one or more processes do not participate.

    Known problems in previous releases can be found in the HISTORY*.txt files
    in the HDF5 source. Please report any new problems found to
    help@hdfgroup.org.