More optimizing for byte order conversion. Mostly just making code
easier to follow by simplifying Duff's device coding of the loops.
I also split the conversion function into two functions with different
names so output from H5T debugging indicates whether the optimized or
unoptimized case was invoked.
2002-01-25 10:48:54 Robb Matzke <matzke@arborea.spizella.com>
* H5T_conv_order: Removed Duff's device consisting of >500 lines of code. Unrolled
two loops by hand resulting in <300 lines of code
which is a few percent faster and far easier to read.
More optimizing for byte order conversion. Mostly just making code
easier to follow by simplifying Duff's device coding of the loops.
I also split the conversion function into two functions with different
names so output from H5T debugging indicates whether the optimized or
unoptimized case was invoked.
2002-01-25 10:47:13 Robb Matzke <matzke@arborea.spizella.com>
* H5T_init_interface: Registered conversion function H5T_conv_order_opt() under two
names. H5T debugging will report the conversion
function as either "ibo(opt)" or "fbo(opt)".
Bug Fix
Description:
When file space was returned to the file space free-list for reuse,
occasionally raw data allocations which used space from the free-list
would overlap with the metadata accumulator and get over-written with
the cached information in the accumulator, corrupting the data.
Solution:
Check if the space about to be recycled on the free-list is going to be
used for raw data and also overlaps with the metadata accumulator cache,
avoiding using space that fits those criteria.
This fixes bug #701
Platforms tested:
FreeBSD 4.5 (sleipnir)
Purpose:
Fix fix
Description:
Moved Binh-Minh's fix of the lack of support for C++ in libtool by
adding the DEFAULT_LIBS macro into the configure.in and
config/commence.in files.
Solution:
Put it into the configure.in and commence.in files. Reran autoconf.
Purpose:
Improvement
Description:
Using LIBS for c++ default library resulted in the library showed up
in two many places.
Solution:
Added new macro DEFAULT_LIBS to specify default library for the
C++ API tests
Platforms tested:
IRIX64 (modi4)
Purpose:
Added platform support
Description:
The current libtool doesn't fully support C++ yet, so until it
does, the default libraries have to be manually specify.
Some minor cleanups needed.
Solution:
Added DEFAULT_LIBS=@DEFAULT_LIBS@ to use new macro for default library.
Added $(DEFAULT_LIBS) to link lines.
Removed inappropriate comments.
Platforms tested:
IRIX64 (modi4)
I'll check out again to make sure I haven't broken anything else.
Purpose:
Added platform support
Description:
The current libtool doesn't fully support C++ yet, so until it
does, the default libraries have to be manually specify.
Some minor cleanups needed.
Solution:
Added DEFAULT_LIBS=@DEFAULT_LIBS@ to use new macro for default library
Added $(DEFAULT_LIBS) to link lines
Removed inappropriate comments, and this extra set, it occurs twice:
## These are our main targets. They should be listed in the order to be
## executed, generally most specific tests to least specific tests.
RUNTEST=$(LT_RUN)
although I'm not sure if it even should be there, so I should leave
it for Bill.
Platforms tested:
IRIX64 (modi4)
I'll check out again to make sure I haven't broken anything else.
Purpose:
Added platform support
Description:
Added new macro DEFAULT_LIBS to specify default library for the
C++ API tests
Platforms tested:
IRIX 6.5 (modi4)
Purpose:
Adding new supported platform
Description:
Added this config file for modi4. Note that, when libtool v1.5
is released and we start using it, the default library libCio can
and should be removed from LIBS. It is there now because previous
versions of libtool do not fully support c++ yet and default
libraries must be manually added to the link line.
Platforms tested:
IRIX64 6.5 (modi4)
Feature improvement
Description:
Re-write how the free-list headers were used, to reduce the amount of space
added to each malloc request. Reduced header for array and block free
list items from 24 bytes to 8 bytes and eliminated the header for fixed-size
free list items entirely. This should reduce the amount of memory that the
library uses.
Platforms tested:
FreeBSD 4.5 (sleipnir) & IRIX64 6.5 (modi4)
Code improvement
Description:
Take advantage of the "MALLOC_WORKS" flag to not force malloced memory
pieces to be at least 1 byte when the malloc implementation allows
malloc(0) to work.
Platforms tested:
FreeBSD 4.5 (sleipnir) & Cray SV1 (killeen)
New feature check
Description:
Added check to determine if malloc(0) returns a valid pointer for a
particular architecture.
Platforms tested:
FreeBSD 4.5 (sleipnir) where malloc(0) works
Cray SV1 (killeen) where malloc(0) doesn't work
Purpose:
Bugfix. Copy edits and clarification.
Description:
Added IN/OUT designations to parameters.
Copy edits and clarification.
Removed () from public H5 functions in running text.
Platforms tested:
IE 5
Purpose:
Bugfix.
Description:
H5Sget_simple_extent_npoints: Corrected return type to hssize_t.
Fixes bug #640 in development branch.
Platforms tested:
IE 5
Purpose:
Bugfix. Clarification. Copy edits and minor formatting.
Description:
H5Gunlink: Corrected loc_id parameter to be 'file or group'
rather than just 'file'.
Added IN/OUT designations to parameters.
Minor formatting. Removed () from public H5 functions in running text.
Platforms tested:
IE 5
Purpose:
Bugfix. Clarification & extension. Removed old function.
Description:
h5pset/get_fapl_mpio_f & h5pset/get_dxpl_mpio_f:
Corrected function names (mpi --> mpio)
H5Pset_fapl_dpss:
Removed function from RM.
H5Pget_driver:
Corrected return type.
Added list of valid driver identifiers and note re custom drivers.
H5Pcreate:
Added note, per user complaint, that the property must eventually
be closed with H5Pclose, else errors are likely to occur.
Platforms tested:
IE 5
Purpose:
Bugfix and clarification.
Description:
H5Aclose -- Changed statement regarding future use of a released
attribute identifier.
H5Acreate -- Corrected create_plist_id reference and listed H5P_DEFAULT
as only currently-accepted value.
Platforms tested:
IE 5
Purpose:
a bug fix for release dll
Description:
change the project setting for release dll from single-threaded to
multithreaded DLL seems to make all tests pass.
For DLL testing, it should be set to multithreaded DLL anyway.
Solution:
Platforms tested:
windows 2000
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
Purpose:
Small Fix
Description:
Fixed the Min/Max/Average accumlation stuff...
Solution:
Actually thought about the code and made it accumulate the
information in the correct way.
Platforms tested:
Linux
Purpose:
Feature Fix
Description:
Added timer from open to close for write. Changed reporting of time
for write and read to only measure the actual read/write instead of
the open/close as well...
Platforms tested:
Linux(pp)
Bug fix
Description:
HDfprintf was not handling Microsoft's "%I64d" extension to printf for
printing thier '__int64' type.
Solution:
Added code to properly detect and use this extension.
Platforms tested:
None! (Kent will be testing shortly)
Purpose:
Feature Fix
Description:
Instead of outputting the # of kilobytes in a transfer size, output
the total bytes. This helps when you're interested in just doing a
copy-paste type of thing for the transfer buffer size.
Solution:
Changed the output report
Platforms tested:
Linux(pp)
Purpose:
Bug fix
Description:
In several if statements, '>' was used in place of '<='. This
caused exceptions thrown inappropriately. Replaced '>' by '<='
where applicable.
Platforms tested:
SunOS 5.7 (arabica)
Windows 98
Purpose:
Feature Add
Description:
Added output which tells how large the file is (that is, the number
of dsets * number of elements in a dset * sizeof(int)).
Platforms tested:
Linux(pp)
The default minimum xfer size of 1K was way too slow for
parallel file system like the PFS of Tflops. Set it to
128K to complete soon for default settings.
Platforms tested:
Tflops, modi4.
Bug fix
Description:
The value of H5_SIZEOF_SSIZE_T is not being updated to reflect the correct
size of the ssize_t typedef, if we have to define it ourselves.
Solution:
Undef H5_SIZEOF_SSIZE_T at beginning of block where we define the typedef
for ssize_t and then re-define it to the correct size when we've chosen a
size.
Platforms tested:
FreeBSD 4.5 (sleipnir)
Extension
Description:
int64_t type is not available everywhere.
#include H5private.h which has platform dependent hooks
to define int64_t to something available.
Platforms tested:
Tflops
Bug fix.
Description:
__int64 is not a legal type in Tflops.
Set its sizeof to 0 in the cached values.
This is a temporary fix since the real problem is
in configure which hardset __int64 to 8 for cross-compiling cases.
Platforms tested:
Tflops
Document bug
Description:
Mention that h5dump and h5ls are not displaying variable-length string
datatype information correctly. I've also entered a more detailed bug into
the bug database.
Purpose:
Small Fix
Description:
Changed how the list of drivers were listed from:
{ "driver1",
"driver2",
/* ... */
"drivern",
#ifdef FOO
"driverm"
#endif
};
to
{ "driver1"
,"driver2"
/* ... */
,"drivern"
#ifdef FOO
,"driverm"
#endif
};
since it's a nicer way of doing the same thing without the annoying
warning of an extraneous , if FOO isn't defined.
Platforms tested:
Dangermouse, Modi4, Kelgia
Purpose:
Feature Add
Description:
Added support for dumping Group Comments. This involved a
modification of the DDL as well.
Solution:
Steal code from h5ls and put it in the h5dump. The ddl.html file was
updated as normal. And a test was created...
Platforms tested:
Dangermouse, Modi4, Kelgia
Bug Fix.
Description:
Equation to compute size of attribute in memory was incorrectly using the
disk's datatype (and dataspace, but that turns out not to have been the
actual issue) and when a variable length datatype was used for the
attribute, the wrong size is being computed.
Also, the variable-length datatype conversions aren't handling the
default dataset transfer property list (H5P_DEFAULT) correctly.
Solution:
Changed attribute code to compute the attribute size in memory correctly
by using the memory datatype & dataspace.
Changed the variable-length datatype conversion code to use the default
dataset transfer property list when H5P_DEFAULT is passed as the property
list ID.
Platforms tested:
FreeBSD 4.5 (sleipnir)