Commit Graph

3340 Commits

Author SHA1 Message Date
Albert Cheng
bf9b7eb39c [svn-r11477] Purpose:
feature.

Description:
added the recognition of -lmpich as a form of MPI library.

Platforms tested:
Tested in heping. Real test will be in MCR.
2005-09-29 00:09:21 -05:00
John Mainzer
6baed67905 [svn-r11475] Purpose:
Bug fix

Description:

In production builds, H5MM_malloc was undefined in H5AC.c


Solution:

Include H5MMprivate.h in H5AC.c, which defines H5MM_malloc() in
both debug and production modes.


Platforms tested:

h5committested, serial production build on Heping

Misc. update:
2005-09-28 17:00:55 -05:00
John Mainzer
c100b0bf26 [svn-r11470] Purpose:
Repair synchronization bug in the metadata cache in PHDF5

Also repair numerous other bugs that surfaced in testing the
bug fix.


Description:

While operations modifying metadata must be collective, we allow
independant reads.  This allows metadata caches on different processes
to adjust to different sizes, and to place the entries on their dirty
lists in different orders.  Since only process 0 actually writes
metadata to disk (all other processes thought they did, but the writes
were discarded on the theory that they had to be collective), this made
it possible for another process to modify metadata, flush it, and then
read it back in in its original form (pre-modification) form.  The
possibilities for file corruption should be obvious.


Solution:

Make the policy that only process 0 can write to file explicit, and
visible to the metadata caches.  Thus only process 0 may flush dirty
entries -- all other caches must retain dirty entries until they are
informed by process 0 that the entries are clean.

Synchronization is handled by counting the bytes of dirty cache entries
created, and then synching up between the caches whenever the sum
exceeds an (eventually user specified) limit.  Dirty metadata creation
is consistent across all processes because all operations modifying
metadata must be collective.

This change uncovered may bugs which are repaired in this checkin.
It also required modification of H5HL and H5O to allocate file space
on insertion rather than on flush from cache.


Platforms tested:

H5committest, heping(parallel & serial)

Misc. update:
2005-09-27 00:20:11 -05:00
Albert Cheng
f9fc749ca2 [svn-r11467] Purpose:
Add the detection of the alarm function.

Platforms tested:
Tested in heping.
2005-09-26 22:26:03 -05:00
MuQun Yang
e1eccc4987 [svn-r11466] Purpose:
Code refinement

Description:
Make the re-build hyperslab selection code shorter to be maintained easily

Solution:

Platforms tested:
Sol 2.9, linux 2.4, Aix 5.1

Misc. update:
2005-09-26 21:08:20 -05:00
Quincey Koziol
19b78cae7b [svn-r11463] Purpose:
Code cleanup

Description:
    #ifdef out blksize field in file structure for non-GPFS builds.

Platforms tested:
    None - just eyeballed - very minor.
2005-09-23 17:01:58 -05:00
Pedro Vicente Nunes
d09ca66a26 [svn-r11448] Purpose:
new features

Description:

add support for compiling the library and testphdf5 in Windows


Solution:

Platforms tested:
Linux
AIX
Solaris
Windows VC6

Misc. update:
2005-09-21 08:41:09 -05:00
MuQun Yang
4114f888c6 [svn-r11447] Purpose:
Hyperslab re-build optimization

Description:
Previously only singluar selection can be rebuilt from span-tree application.
This optimization is supposed to rebuild for other regular selection case(such
as count =2, block = 2, stride =3)

Solution:


Platforms tested:
shanti(sol 2.9), heping(Linux 2.4), NCAR SGI(IRIX 6.5)
Misc. update:
2005-09-20 18:10:08 -05:00
James Laird
3267458b64 [svn-r11446] Purpose:
Bug fix

Description:
Massaged the newer script and config/conclude.am to make SX6 happy.


Platforms tested:
SX6, sol, mir
2005-09-20 16:46:24 -05:00
Albert Cheng
c0e83899c3 [svn-r11431] Purpose:
New feature.

Description:
Added the time command to the make check target to report time usage
of the execute of each test and test scripts.  This gives us some idea
how long each test takes and some vague idea it is compute bound or
not.

powerpc-ibm-aix5.x:
Change $RUNPARALLEL default setting to allow it being invoked by the
time command.

Platforms tested:
h5committested.
2005-09-17 22:04:28 -05:00
Quincey Koziol
9e8b7f29a0 [svn-r11424] Purpose:
Code cleanup/bug fix

Description:
    Hoist function call out of inner loop of type conversion by retrieving
source & destination precisions once, outside the loop.

    There's still some overhead because this information is stored in
variables set at run-time, when it's really constant for the particular
machine.  Further work to set compiler macros would allow this code to be
optimized better by the compiler with dead code removal.  We'll continue
to work on this area...

    Also, made new internal H5T_compiler_conv routine static instead of of
private, until we need to reference it from another source code module.

Platforms tested:
    h5committest
    FreeBSD 4.11 (sleipnir)
2005-09-17 10:42:02 -05:00
James Laird
ae2a313b5b [svn-r11421] Purpose:
Feature

Description:
Added H5_CFLAGS, etc. to 1.7 branch.
Now compilation flags can be put in H5_*FLAGS and they'll be used when
building hdf5 but not in h5cc.


Platforms tested:
mir, sleipnir, modi4

Misc. update:
2005-09-16 16:26:17 -05:00
James Laird
b656c90c8a [svn-r11420] Purpose:
Bug fix

Description:
Disabled C++ shared libraries for Sun Workshop compiler.

Solution:
This bug only seems to happen when using the -xarch=v9 flag to compile in
64-bit mode, but disabling shared libraries entirely for this compiler is
an easier fix (I don't know how to detect 64 bit mode from the command line).
The framework for disabling shared libraries for other C++ compilers is
in place.

Platforms tested:
sol, mir, sleipnir, modi4
2005-09-16 16:16:11 -05:00
James Laird
cc8f7d98bf [svn-r11418] Purpose:
Bug fix/feature

Description:
Disabled shared libraries for a number of Fortran compilers that don't
support them.
This allows other compilers to support shared Fortran libraries.

Solution:
Added a conditional, SHARED_FORTRAN_CONDITIONAL, which is true if
Fortran supports shared libraries.  It is set in configure.in.

Platforms tested:
mir, sleipnir, colonelk, heping
2005-09-15 16:30:06 -05:00
Raymond Lu
1143f47e2d [svn-r11415] Purpose: Internal design change.
Description: H5T_register() replaces any existing data conversion path
with a new path.

Solution: Added a parameter to H5T_register() and H5T_path_find() to
signal the library whether the new conversion path is from API function
H5Tregister() or from private function like H5T_init_interface().  If it
is from H5Tregister(), replace existing path.  If it's from H5T_init_interface()
and the library is trying to register default hard conversion functions,
don't replace existing path because the path is registered by the library.
For example, the library registered H5T_conv_int_float() and is trying to
register H5T_conv_long_float().  The size of long is equal to int.  There's
no need to replace the path H5T_conv_int_float().

Platforms tested: h5committest and fuss.
2005-09-14 16:54:19 -05:00
Raymond Lu
f7c075c736 [svn-r11414] Purpose: Rename a API function
Description:  The API function H5Tis_hard() which was recently checked
in has been renamed to H5Tcompiler_conv() to be more descriptive.  No
other changes.


Platforms tested: fuss - simple change.

Misc. update: config/lt_vers.am to update libtool version.
2005-09-14 14:10:37 -05:00
James Laird
33beeb7f55 [svn-r11411] Purpose:
Bug fix

Description:
Building with --disable-static seems to have been broken on several platforms.
Fixed this.
Configure will now disable shared libraries automatically when using pgf90
or when building on Cygwin.

Solution:
To avoid errors when using shared libraries with pgf90 (which I had not
realized were compiler-specific), I had manually set convenience libraries
to use the -static linking flag.  Apparently, this is not necessary, and
caused these libraries to be created as empty archives when --disable-static
was used.
Also, some libraries were including other libraries, which was not
necessary.
I also fixed code in configure.in to correctly detect whether shared
or static libraries are enabled, and moved code that disables shared libraries
to before libtool is created (rather than editing libtool after the fact).
Despite repeated warnings that only one shared library can be linked at a
time, I have yet to have shared libraries break the linking of tests on
any system.  We'll see if the Daily Tests turn up anything.

Platforms tested:
mir (fortran, C++), sleipnir (C++), modi4 (fortran, C++, parallel),
sol (fortran, C++), cygwin
2005-09-13 17:30:33 -05:00
Elena Pourmal
b379a469c0 [svn-r11402] Purpose: Maintenance
Description: Compiler complained about const type * variables that were
             used in the functions that require "non const" parameters.
             Compilation failed.

Solution: Use casting to avoid compilation errors.

Platforms tested: SX-6, heping and mir with new g95

Misc. update:
2005-09-12 22:19:58 -05:00
Albert Cheng
2e819451e9 [svn-r11396] Purpose:
Code cleanup.

Description:
g++ on sleipnir complained and exited failed because the
malloc statement in ALIGNMENT was not properly casted.

Solution:
added the proper (char * ) casting.

Platforms tested:
Passed heping using gcc.
Sleipnir g++ passed too but that was also because the default development
mode is used.
2005-09-12 16:30:07 -05:00
Raymond Lu
93e661f16b [svn-r11395] Purpose: Bug fix
Description: Quincey added the condition branch (else if (*((ST*)S) != (ST)((DT)(*((ST*)S)))))
in the definition of the macro H5T_CONV_Fx_CORE.  It handles a special situation
when the source is "float" and assigned the value of "INT_MAX".  Compilers do roundup
making this value "INT_MAX+1".  This branch is to check that situation and return
exception for some compilers, mainly GCC.

The branch if (*((ST*)S) > (DT)(D_MAX) || (S_PREC < D_PREC && *((ST*)S) ==
(DT)(D_MAX))) is for some compilers like Sun, HP, IBM, and SGI where under
the same situation the "int" doesn't overflow.

A test was added to dt_arith.c to check 2 conversions, from float to int where the
float is INT_MAX, and from double to signed char where the double is SCHAR_MAX.


Platforms tested: h5committest and fuss.
2005-09-12 14:39:16 -05:00
Quincey Koziol
5ad2673fde [svn-r11386] Purpose:
Code cleanup/reorganization

Description:
    Merge back some more changes extracted from the "compact group" set.
This bunch cleans up and prepares the H5G_* routines for eventual import of
new features.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Mac OS X.4
2005-09-12 09:29:54 -05:00
Quincey Koziol
5ffde305cd [svn-r11384] Purpose:
Code cleanup

Description:
    Merge back changes from "compact group" work that improve the
infrastructure of the library and may impact others.  In this round of
merging, that includes:
    - Move datatype allocation into single internal routine, instead of
        duplicated code that was spread out in a dozen or so places.
    - Clean up guts of object header routines (H5O_*) to allow for some of
        the fancieroperations that need to be performed on groups, along with
        some general improvements.
    - Added a new error code
    - Some minor cleanups in other code....

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Mac OS X
2005-09-12 01:02:55 -05:00
James Laird
edfb6b70e2 [svn-r11361] Purpose:
Bug fix

Description:
Cygwin was failing (seemingly only when I built in parallel) when it couldn't
find or build H5detect.
Fixed a dependency.

Solution:
H5init.c was depending on H5detect instead of H5detect$(EXEEXT).  On Cygwin,
applications end in .exe !

Platforms tested:
mir, cygwin (finrod)
2005-09-07 13:51:35 -05:00
Raymond Lu
7ef46b524b [svn-r11355] Purpose: A new API function and its test.
Description:  Put in a new API funciton, H5Tis_hard.  It checks whether
the conversion function from a native type to another native type is a
compiler (hard) conversion.  Also checked a test in test/dt_arith.c.


Platforms tested: h5committest and fuss.
2005-09-06 13:39:46 -05:00
Quincey Koziol
1fa5f8bccb [svn-r11346] Purpose:
Bug fix & code cleanup

Description:
    Fix problem with detecting precision overflows in a more portable way.
(I was depending on the compiler not removing some temporary variables, which
was a bad bet... :-)

    Also, hoist the checking for the exception handling routine out of the
inner conversion loop, which should speed up conversions which don't have an
exception handling routine defined.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    h5committest
2005-09-03 17:05:20 -05:00
Quincey Koziol
01a3d9d780 [svn-r11345] Purpose:
Bug fix & code cleanup

Description:
    Address most of datatype conversion exception handling bug that Ed
Hartnett reported.  (He's reported a different problem now, but we're closer
at least).

    Also, condense exception handling #ifdef's into one location instead of
spread out in so many places.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-09-03 12:11:00 -05:00
James Laird
8d9d70388e [svn-r11341]
Purpose:
Bug fix

Description:
H5Tinit.c wasn't being cleaned properly.

Solution:
Clean H5Tinit.c.

Platforms tested:
sleipnir only (very minor change)
2005-09-02 11:02:28 -05:00
Quincey Koziol
3eea9abb5f [svn-r11338] Purpose:
Bug fix

Description:
    Check in fix that John found for bug in H5FD_extend() code - adjust
beginning as well as size of free block when "extending" another block of
space in the file.

Platforms tested:
    FreeBsd 4.11 (sleipnir)
    Too minor to require h5committest
2005-09-01 22:11:25 -05:00
Quincey Koziol
90103afad6 [svn-r11337] Purpose:
Code cleanup

Description:
    Changed some scale+offset filter symbols from H5_SO_... -> H5Z_SO_...
to indicate that they are in the H5Z package.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-09-01 17:46:16 -05:00
Raymond Lu
572688a4e5 [svn-r11332] Purpose: Minor Change to Macro Names
Description:  Changed the names of macros defined in H5Tpkg.h from
H5T_CONV_INTERIM_XXX_XXX to H5T_CONV_INTERNAL_XXX_XXX to be more
descriptive.


Platforms tested: fuss - simple change
2005-09-01 13:33:32 -05:00
MuQun Yang
71e345cd4e [svn-r11326] Purpose:
Updating scale offset filter.

Description:
Using enum to represent scale_offset type.
Change the order of parameters of H5Pset_scaleoffset.

Solution:

Platforms tested:
sol 2.9, Liunx 2.4, AIX 5.1

Misc. update:
2005-08-31 17:10:54 -05:00
MuQun Yang
9d7b250371 [svn-r11325] Purpose:
Update scaleoffset filter.

Description:
1. Using enum type to describe scale offset type(int, Dscale or Escale)
2. Changing some macro names
3. Fixing some minor bugs

Solution:

Platforms tested:
sol 2.8, linux 2.4, aix 5.1(32-bit and 64-bit)

Misc. update:
2005-08-31 17:08:21 -05:00
Albert Cheng
6d3715e537 [svn-r11323] Purpose:
tidy up.

Description:
MPE option created *.clog file whenever it is executed in MPI.
The cleanup of *.clog files were done in individual Makefile.in.
Often, it is forgotten.

Solution:
Moved the cleaning of *.clog files to CHECK_CLEANFILES in commence.am
so that it is applied whenever check-clean is called.

Platforms tested:
heping pp using MPE.
2005-08-31 15:03:52 -05:00
MuQun Yang
f1179bc82c [svn-r11321]
Purpose:
Add some comments and error checking codes for collective chunk IO code.
Description:

Solution:

Platforms tested:
AIX 5.1(copper), too minor to test at other platforms.

Misc. update:
2005-08-31 10:54:32 -05:00
James Laird
66af6dce17 [svn-r11319] Purpose:
Bug fixes

Description:
This checkin fixes an occasional error on kelgia on sol during distclean.
It also causes test scripts to depend properly on the programs they're
supposed to be testing.

Solution:
The kelgia bug was due to some files being cleaned by automake and manually.
Removed the manual cleaning in src/Makefile.am.
Test script dependencies now need to be specified manually, since the
makefile can't guess what they test from their name.  Currently all test
scripts in a given directory have a single list of dependencies--this was
easy and seems to be sufficient.
These dependencies are listed in the SCRIPT_DEPEND variable in the Makefile.am.

Platforms tested:
heping, mir, modi4, sol

Misc. update:
2005-08-30 18:42:39 -05:00
Raymond Lu
581ba3d6f0 [svn-r11317] Purpose: Minor change to macro names
Description:  Changed the names of the interim macros for data conversion
checked in yesterday from the SOURCE_DESTINATION style (like FP_FP or
LDOUBLE_LLONG) to the H5T_CONV_INTERIM_SOURCE_DESTINATION style (like
H5T_CONV_INTERIM_FP_FP OR H5T_CONV_INTERIM_LDOUBLE_LLONG), to be more
descriptive.  These macros are defined in H5Tpkg.h and used in H5Tconv.c
and H5T.c for interim purpose.


Platforms tested: fuss - simple change.
2005-08-30 13:49:41 -05:00
MuQun Yang
1e7062e6b2 [svn-r11316]
Purpose:
bug fix for collective chunk IO
Description:
When using calloc to allocate an MPI datatype, one should use sizeof(MPI datatype) instead of sizeof(equalivent non-MPI datatype) to assign the value, this causes the problem at 64-bit platforms such IRIX65 and AIX 5.1.
Solution:
Correct it.

Platforms tested:
AIX 5.1 and IRIX6.5(at NCAR).

Misc. update:
2005-08-30 11:39:00 -05:00
Albert Cheng
ec65db7972 [svn-r11314] Purpose:
Bug #281

Description:
A dataset created in serial mode with H5D_ALLOC_TIME_INCR allocation setting
was not extendible, either explicitly by H5Dextend or implicitly by writing
to unallocated chunks.  This was because parallel mode expects the allocation
mode be H5D_ALLOC_TIME_INCR only.

Solution:
Modified library to allocate more space when needed or directed if the
file is opened by parallel mode, independent of what the dataset allocation
mode is.

Platforms tested:
Heping pp.
2005-08-29 23:47:57 -05:00
Raymond Lu
bd4312d049 [svn-r11311] Purpose: New features.
Description:  Added 2 new configure options, --enable-exception and --enable-accuracy.

--enable-exception lets the library check whether user's exception handling
functions are present during compiler data conversions and use them if they are.
When it's disabled, this step is skipped to improve conversion speed.  This
step isn't implemented yet for soft conversions because there would be little
gain in speed.

--enable-accuracy guarantees data accuracy during data conversions.  It means
the library will choose compiler conversions only if the accurate data is
secured.  Otherwise, the library will go for the library's own conversions.  If
this option is disabled, the library uses compiler conversions in favor of
their speed as long as they work even if data can be incorrect.


Platforms tested: h5committest and fuss.  Some systems may fail after this
checkin.
2005-08-29 10:21:58 -05:00
Quincey Koziol
e1747e456c [svn-r11307] Purpose:
Code cleanup

Description:
    Clean up internals of group creation & iteration code.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Mac OS X (nile)
    Too minor to require h5committest
2005-08-29 00:36:16 -05:00
Quincey Koziol
fefbe61aca [svn-r11304] Purpose:
Code cleanup (sorta)

Description:
    Adjust H5G_stat_t to prepare for eventual "external link" information.
This also puts the information for regular objects and soft links into more
obviously separate places.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-27 08:34:28 -05:00
Albert Cheng
538d37a1bc [svn-r11303] Purpose:
minor tidy up.

Description:
Changed both test programs and test scripts to use the same suffixes
(.chkexe and .chklog).  Changed from .log to .chklog to avoid running
into potential conflicts by other "things" (e.g., config.log).

Tested:
Heping.
2005-08-26 17:24:27 -05:00
Quincey Koziol
a8b272ac25 [svn-r11300] Purpose:
Code cleanup

Description:
    Prevent memory leak when too many links are traversed.  Also add test to
traverse too many links.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-25 16:49:31 -05:00
Quincey Koziol
ab6656c52c [svn-r11295] Purpose:
Bug fix

Description:
    Fix "strong" file closing to handle a dangling dataset which uses a
dangling named datatype.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor too require h5committest
2005-08-25 12:16:02 -05:00
Albert Cheng
827ba4f4e8 [svn-r11289] Purpose:
cleanup

Description:
Changed the conditional definitions of HDvsnrintf and HDsnprint be
dependent on TFLOPS being defined so that these are consistent with
the condition in H5.c in which the two functions are coded.

Platforms tested:
heping.

Misc. update:
2005-08-22 15:58:58 -05:00
Fang Guo
16dd775f8f [svn-r11288] Purpose:
Maintenance on Windows
Description:
Move Win32 Macros(snprintf and vsnprintf) to the right places
Solution:

Platforms tested:
MSVS 6.0 on Windows XP
heping
Misc. update:
2005-08-22 14:03:00 -05:00
Quincey Koziol
b7d43b0cf0 [svn-r11283] Purpose:
Code cleanup

Description:
    Clean up code somewhat:
        - Move from HDmemset() -> H5G_ent_reset() to clear out group entry info
        - Simplify H5G_unlink() call
        - Use portability macros instead of direct system calls in more places
        - Improve readbility by neatening whitespace, etc.
        - Move some macros into source code module instead of header files

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-20 14:28:40 -05:00
Quincey Koziol
96b3c145b7 [svn-r11282] Purpose:
New debugging feature

Description:
    Add some code to track where memory from the internal free list allocator
is allocated within the library.  It's not quite ready for "prime time" yet,
but it's close enough to be useful.

    This is disabled by default and requires the H5FL_TRACK macro in
src/H5FLprivate.h to be uncommented to activate during debugging.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Too minor to require full h5committest
2005-08-20 13:09:28 -05:00
Quincey Koziol
d29082f165 [svn-r11280] Purpose:
Code cleanup

Description:
    Clean up unused variables & use portability macros better

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-20 12:49:41 -05:00
Quincey Koziol
a0530d368b [svn-r11277] Purpose:
Bug fix

Description:
    Fix core dump when checking whether to invalidate the name of an object
when unlinking an object in a group opened through an object reference.

Solution:
    Check if names of various objects are valid before comparing them, etc.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-20 11:32:55 -05:00