ABOUT HDF4.0 Beta 2 Nov 14, 1995 CONTENTS 1. The mfhdf side library is renamed to libmfhdf.a, versus libnetcdf.a in previous releases 2. New version of dimension record 3. New features GR interface Gzip library is added Unified configuration of library I/O performance improvement 4. New functions added Fortran functions hxscdir and hxsdir SDsetdimval_comp SDisdimval_bwcomp 5. SGI Power Challenge running IRIX6.1 is now supported 6. Pablo available 7. Platforms tested 8. Changes in release notes 9. Bug fixes and Known problems 1. The mfhdf side library is renamed to libmfhdf.a, versus libnetcdf.a in previous releases. To link a program with HDF4.0b2 libraries, one needs four libraries, libmfhdf.a, libdf.a, libjpeg.a and libz.a (see "Gzip library is added" in item 3 below): cc -o myprog myprog.c -I \ libmfhdf.a libdf.a libjpeg.a libz.a Note, the order of the libraries is important. 2. New version of dimension record HDF4.0b1 and previous releases use a vgroup to represent a dimension. The vgroup has a single field vdata with class "DimVal0.0". The vdata has number of records, each record has a fake value from 0, 1, 2 ... , ( - 1 ). The fake values are not really required and take a lot of space. For applications that create large one dimensional array datasets the disk space taken by these fake values almost double the size of the HDF file. In order to omit the fake values, a new version of dimension vdata is proposed. The new version uses the same structure as the old version. The only differences are that the vdata has only 1 record with value and that the vdata's class is "DimVal0.1" to distinguish it from the old version. No change is made in Unlimited dimensions. See file dimval.txt in subdirectoy release_notes/ of HDF4.0b2 release for our policy on the backward compatibility of this dimension version. 3. New features . New with this beta release is the support for different methods of interlacing images in memory. This feature is supported through the GRreqlutil and GRreqimageil functions rescribed in the mf_ris.txt document in this directory. Please note that the images are interlaced in memory only, all images are actually written to disk in "pixel" interlacing. . Gzip library is added New with this release is support for gzip "deflate" style compression of any object in an HDF file. This is supported through the standard compression interface function calls (HCcreate, SDsetcompress, GRsetcompress) by using the COMP_CODE_DEFLATE parameter for the coding type. The comp_info structure has a new member, deflate.level, which specifies how much effort to expend trying to compress data. Values for deflate.level must be between 1-9, with 1 being small amounts of effort (time) and 9 being maximum effort (most time and compression), the default value is 6. Currently, due to our use of the gzip "zlib" library for support of this feature, users must link with the "libz.a" library produced by zlib. (See item1 above). cc -o myprog myprog.c -I \ libmfhdf.a libdf.a libjpeg.a libz.a Note, the order of the libraries is important. Also, this method of compression currently has several known bugs when used on a 64-bit architecture (DEC Alpha processors, Cray machines, and SGI Power Challenge machines in 64-bit "mode"). . Unified configuration of library Both sides of the library now use the same configure script and can be configured uniformly through one makefile fragment. Please see the top-level INSTALL file in the distribution for further details. . I/O performance improvement This version of the distribution also has preliminary support for file page buffering. Note that is a *Beta* release and is not supported officially. As such it is is provided as is. The file page buffering allows the file to be mapped to user memory on a per page basis i.e a memory pool of the file. With regards to the file system, page sizes can be allocated based on the file system page-size or if the user wants in some multiple of the file system page-size. This allows for fewer pages to be managed along with accommodating the users file usage pattern. Please see the documentation in 'release_notes/page_buf.txt'. We have also reduced the memory requirements for several of the internal HDF library data structures, for greater efficiency. 4. Functions added . Fortran interface functions added for the set external path features. They are hxscdir and hxsdir. See the man page of HXsetcreatedir(3) and HXsetdir(3) for detail. . SDsetdimval_comp -- sets backward compatibility mode for a dimension. The default mode is compatible in HDF4.0b2, and will be incompatible in HDF4.1. See the man page of SDsetdimval_comp(3) for detail. . SDisdimval_bwcomp(dimid) -- gets the backward compatibility mode of a dimension. See the man page of SDisdimval_bwcomp(3) for detail. 5. SGI Power Challenge running IRIX6.1 is now supported Power Challenge is now supported, both in the native 64-bit and the 32-bit objects modes. Note that the Power Challenge native 64 bits objects use 64 bits long integers, users should be careful when using the netcdf interface. They should declare their variables as "nclong", not "long". 6. Pablo available This version of the distribution has support to create an instrumented version of the HDF library(libdf-inst.a). This library along the Pablo performance data capture libraries can be used to gather data about I/O behaviour and procedure execution times. Please see the documentation release_notes/Pablo.txt in the distribution for further details. 7. Platforms tested HDF4.0b2 has been tested on the following systems: SunOS 4.1.3, SunOS 5.3 and 5.4(Solaris 2.3 and 2.4), Linux_a.out, Linux_elf, SGI/IRIX5.2, SGI/IRIX5.3, SGI Power Challenge/IRIX6.1 (32- and 64-bit), HP/UX 9.01, IBM RS6000/AIX, Cray C90, Cray YMP, DEC alpha/UNIX (OSF), DecStation/MIPSEL (ncdump doesn't work), Free BSD 2.0, Solaris_x86, Convex Exemplar/HPUX, and CM5 parallel I/O. See the INSTALL file at the top level of HDF4.0b2 for more details. 8. Changes in release notes The directory release_notes/ contains writeups for the alpha and beta releases of HDF4.0. Those files can be used as temporary documents for HDF4.0 before the official documentation is available. Newly added: ABOUT_4.0b2, Pablo.txt, dimval.txt, and page_buf.txt Files changed: bug_fixed.txt and parallel_CM5.txt. AOUBT_4.0.alpha is also included. 9. Fixes and Known problems Problems fixed: . To avoid conflicts with C++, internal structures' fields which were named 'new' have been renamed. . Maximum number of fields in a vdata now is decided by VSFIELDMAX. . Vshow and hdp are fixed. Now they can handle as many fields as defined by VSFIELDMAX. . Fixed platform number subclass problem when external data file was in Little_endian format. . A file hdf/src/hlimits.h has been added to hold definitions for maximum number of open files and other limits. . Miscelianeous fixes Known problems: . Hfidinquire not included in binaries . Gzip doesn't work on 64-bit machines. . Currently there is a problem in appending data to compressed objects. . Hfidinquire is in the source code, but it is not included in the pre-compiled code. If your program uses Hfidinquire, you need to re-compile libdf.a.