summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r9250] Purpose:Quincey Koziol2004-09-143-12/+10
| | | | | | | | | | | | | | | | | | | | Bug fix Description: Correct typedef for dataset region references to avoid struct alignment issues on Crays. Solution: Change the typedef for hdset_reg_ref_t from a struct to an array of unsigned char's of the correct size and propagate the appropriate adjustments around the code. Platforms tested: FreeBSD 4.10 (sleipnir) Linux 2.4 (verbena) w/fortran Cray T90 (subzero) w/fortran Cray SV1 (wind) w/fortran & parallel Cray T3E (cyclone) w/fortran & parallel
* [svn-r9243] Snapshot version 1.7 release 37HDF Admin2004-09-122-3/+3
|
* [svn-r9234] Purpose:Quincey Koziol2004-09-096-99/+178
| | | | | | | | | | | | | | | | | | | | | | | Code cleanup Description: Tweak recent "forward compatibility" changes to the H5E* API (which allowed for the old H5E API functions to remain unchanged) by allowing for the error stack callback function (H5E_auto_t) to also remain unchanged from the 1.6 branch. This required changing the H5E{get|set}_auto routines to have the old style H5E_auto_t type (which didn't have a stack ID parameter) and the new H5E{get|set}_auto_stack routines to have a newer "H5E_auto_stack_t" type (which has a stack ID parameter). This should make the H5E API changes as forwardly compatible as possible. One side-affect of this change was that it was impossible to determine if the current auto error callback was the old style (H5E_auto_t) or the new style (H5E_auto_stack_t) of callback, so a new API function (H5Eauto_is_stack) was adde to query this. Platforms tested: FreeBSD 4.10 (sleipnir) IRIX64 6.5 (modi4) h5committest
* [svn-r9218] Purpose:Pedro Vicente Nunes2004-09-071-12/+16
| | | | | | | | | | | | | | | | | | bug fix Description: The H5O_mtime_decode function was not handling properly the case for the Code Warrior compiler Solution: Platforms tested: Code Warrior Misc. update:
* [svn-r9212] Purpose:Pedro Vicente Nunes2004-09-071-77/+86
| | | | | | | | | | | | | | | | | | | | | | | | | bug fix Description: on the Cray SV1 an INT type was wrongly converted to a SHORT type by the get_native_integer function Choose the type based on the precision; this is to support cases like the Cray SV1, where the size of short is 8 but precision is 32 (e.g an INT (size 8, prec 64) would be converted to a SHORT (size 8, prec 32) if the size was the deciding factor) Solution: Platforms tested: linux solaris aix Misc. update:
* [svn-r9209] Snapshot version 1.7 release 36HDF Admin2004-09-051-2/+2
|
* [svn-r9208] Purpose: Bug fixRaymond Lu2004-09-045-6/+25
| | | | | | | | Description: A few items were left out when tried to restore the old Error API. There are also a few minor bug fixes. Platforms tested: arabica fuss h5committest.
* [svn-r9203] Purpose:Pedro Vicente Nunes2004-09-031-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug fix Description: Description: the dataset region reference data was not portable between the Cray T3E and other machines Solution: this was due to the fact that the buffer to store the heap ID and index was using a sizeof(int) for its size 4 is used instead of sizeof(int) to permit portability between the Crays and other machines (the heap ID is always encoded as an int32 anyway) Solution: Platforms tested: linux aix solaris Misc. update:
* [svn-r9183] Purpose: New featureRaymond Lu2004-09-0122-413/+194
| | | | | | | | | | | | Description: Restore 6 old error API functions back to the library to be backward compatible with v1.6. They are H5Epush, H5Eprint, H5Ewalk, H5Eclear, H5Eset_auto, H5Eget_auto. These functions do not have error stack as parameter. Solution: Internally, these functions use default error stack. Platforms tested: h5committest and fuss. Misc. update: RELEASE.txt
* [svn-r9172] Purpose:Albert Cheng2004-08-271-2/+2
| | | | | | | | | | | | | | | | | | | | | "bug fix" sort of. Description: The current mpicc at TG-NCSA recognizes uint64_t but not int64_t. hdf5 code rightly assumes when the unsigned type is defined, the corresponding signed type should be valid too. So, when it detected uint64_t is valid, it went ahead using int64_t which ended in compiling failure. Solution: Changed the detection to check on int64_t instead. This does not change any logic, just goes around the mpicc compiler error at TG-NCSA. Platforms tested: h5committested and tested at TG-NCSA (pp) too. Misc. update:
* [svn-r9155] Purpose:Quincey Koziol2004-08-251-2/+80
| | | | | | | | | | | | | | | Bug fix (sorta) Description: Change reading of "missing" chunks from datasets with undefined fill values to not overwrite the application buffer with random garbage from memory. Note that this is almost the same, since whatever garbage the application had in those locations will still be there... Platforms tested: FreeBSD 4.10 (sleipnir) IRIX64 6.5 (modi4) h5committested
* [svn-r9154] Elena Pourmal2004-08-252-0/+4
| | | | | | | | | | | | Purpose: Maintenance/bug fixes (OSF1 C++ and missing Fortran APIs) Description: bringing 1.6 changes to 1.7 Solution: Platforms tested: OSF1, Solaris 2.8, AIX5.1 Misc. update:
* [svn-r9134] Snapshot version 1.7 release 35HDF Admin2004-08-221-2/+2
|
* [svn-r9117] Purpose: Minor Bug FixRaymond Lu2004-08-191-2/+2
| | | | | | | | | | | Description: In H5O_fill_new_decode and H5O_fill_new_encode, UINT32DECODE and UINT32ENCODE were used to decode and encode message size, which is ssize_t. Solution: Change to INT32DECODE and INT32ENCODE. Platforms tested: fuss - very simple change. Misc. update:
* [svn-r9108] Purpose: Bug fixRaymond Lu2004-08-181-16/+4
| | | | | | | | | | | Description: In H5O_fill_new_decode, it tries to read message size(-1) when fill value is undefined for version 1. During UINT32DECODE, if the machine is 64-bit, a value 0x00000000ffffffff is returned, which is like a valid value. Solution: If fill value is undefined, don't read the message size, simply assign -1 to it. Platforms tested: fuss - did h5committest for v1.6 already.
* [svn-r9101] Purpose:Quincey Koziol2004-08-174-308/+278
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fix Description: 1 - Dataset contiguous storage cache information had a bug where it was possible to try to access invalid cache information if the cache wasn't filled the first time it attempted to loop through the list of offset/length vectors. 2 - Additionally, the contiguous storage cache information was being used in certain circumstances from the chunked dataset I/O code path, which was generally fatal since the chunk storage and contiguous storage information were stored together in a union. Solution: 1 - Avoid special case of first trip through loop over offset/length I/O vectors and always check for the contiguous storage sieve buffer buffer being NULL. 2 - Change the union containing the chunk and contiguous storage cache information into a struct, allowing both to be used at the same time. Platforms tested: FreeBSD 4.10 (sleipnir) h5committested
* [svn-r9089] Snapshot version 1.7 release 34HDF Admin2004-08-151-2/+2
|
* [svn-r9066] Purpose:Robert E. McGrath2004-08-111-9/+9
| | | | | | | | | | | | Bug. See other checkin. Description: Solution: Platforms tested: Misc. update:
* [svn-r9053] Purpose:Quincey Koziol2004-08-082-28/+46
| | | | | | | | | | | | | | | | | | | Bug fix Description: Correct possible core dump when a datatype conversion function is registered with the library after a compound datatype has been converted (having it's type conversion information cached by the library). The compound datatype must have been created by inserting the fields in non-increasing offset order to see the bug. Solution: Re-sort the fields in the compound datatypes before recalculating the cached information when performing the conversion on them. Platforms tested: FreeBSD 4.10 (sleipnir) h5committested
* [svn-r9052] Snapshot version 1.7 release 33HDF Admin2004-08-081-2/+2
|
* [svn-r9037] Purpose:Quincey Koziol2004-08-061-1/+1
| | | | | | | | | | | | Code cleanup/bug fix Description: Check for _O_BINARY being defined instead of O_BINARY, since we actually use _O_BINARY. (Note that this only affects Windows) Platforms tested: FreeBSD 4.10 (sleipnir) Not tested w/h5committest
* [svn-r9024] Purpose:Quincey Koziol2004-08-051-1/+2
| | | | | | | | | | | | | Bug fix Description: Correct buffer overrun in "multi" VFL driver that was writing past the end of the "driver name" buffer when encoding the driver info block for the file's superblock. Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r9022] Purpose: Optimization of the cache code in H5C.John Mainzer2004-08-054-953/+1743
| | | | | | | | | | | | | | | | | | | | | | | Description: Cache was running too slowly. Solution: Added a hash table for indexing. Retained the tree, but only for dirty entries. As we need to flush dirty entries in increasing address order, this is sufficient. Updated statistics collection code for the above. Converted a number of local functions into macros to avoid the function call overhead. Added code to disable the clean and dirty LRU lists in serial mode. Updated test code to account for the above changes. Platforms tested: h5committested + serial, parallel, and fp on Eirene. Misc. update:
* [svn-r9018] Purpose:Albert Cheng2004-08-051-4/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | Bug fix (Failures when dataset size >= 1 GB, reported by Bill Loewe.) Description: In the IBM AIX system using 32bit mode, if a dataset size was 1GB or larger, when the "end" of the dataset was selected, MPI would complain it could not keep the Upper bound of a datatype within the range of MPI_Aint. This was because the old algorithm would derive the selection with extent of each row first. After all dimensions were processed, it then calculate the start position and just displace the whole MPI derived type. So, the final MPI type was actually the start position plus the whole dataset. Since the start can be as big as the whole dataset, this made the final derived twice as big as 1GB. That would hit the 2GB MPI_Aint range limit in the 32 bit mode. Solution: Use a different algorithm to include the start position in the defining of MPI type for each dimension. When all dimensions are processed, the MPI type represents the selection exactly. Platforms tested: h5committested Misc. update:
* [svn-r9009] Purpose:Robert E. McGrath2004-08-041-2/+26
| | | | | | | | | | | | | Update Szip to accept 'n-bit' data Description: See earlier checkins. Solution: Platforms tested: Misc. update:
* [svn-r8987] Purpose:Quincey Koziol2004-08-027-23/+19
| | | | | | | | | | | | Code cleanup Description: Fix another batch of minor differences between the development and release branches. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8983] Purpose:Quincey Koziol2004-08-021-4087/+4488
| | | | | | | | | | | | Update dependencies Description: Update dependencies after config/depend1.in bugfix Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel IRIX64 6.5 (modi4) h5committested
* [svn-r8981] Purpose:Quincey Koziol2004-08-0221-723/+683
| | | | | | | | | | | | | Code cleanup Description: Various minor tweaks to clean code up and bring it into closer syncronization with the release branch. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel h5committested IRIX64 6.5 (modi4)
* [svn-r8979] Snapshot version 1.7 release 32HDF Admin2004-08-011-2/+2
|
* [svn-r8969] Purpose:Quincey Koziol2004-07-302-53/+35
| | | | | | | | | | | | | | | | | | | | | | | | Bug fix. Description: Address two problems: - The computation of the scanline in the szip filter was being performed in the "can apply" callback routine instead of the "set local" routine. - The routine which allocated all the chunks for an entire dataset (which is invoked when the allocation time is early or late, rather than incremental) wasn't recording a failed filter in the information for the chunk, causing the library to believe that the chunk had the filter applied when it really hadn't. Solution: - Move the scanline computation to the "set local" callback. - Record the filter mask with each chunk created when allocating them. Platforms tested: FreeBSD 4.10 (sleipnir) w/szip Too obscure to require h5committest
* [svn-r8964] Purpose:Quincey Koziol2004-07-282-6/+43
| | | | | | | | | | | | Revise new feature Description: Add buffer type and version # bytes to the encoded datatype and dataspace buffers (for H5Tencode & H5Sencode) Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r8962] Purpose:Quincey Koziol2004-07-281-3/+3
| | | | | | | | | | | | | | | Bug fix Description: Allow I/O on extendible chunked datasets with (currently) zero-sized dimensions to proceed harmlessly instead of dumping core on an assertion. Solution: Removed assertion and added checks to avoid problem situation in H5TB_end Platforms tested: FreeBSD 4.10 (sleipnir) w/ & w/o parallel Too minor to require h5committest
* [svn-r8958] Purpose:Quincey Koziol2004-07-271-1/+3
| | | | | | | | | | | | | Bug fix Description: Always write fill values to chunks when initializing entire B-tree and any filters are defined. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Too minor to require h5committest
* [svn-r8953] James Laird2004-07-275-0/+59
| | | | | | | | | | | | | | | | Purpose: Bug fix Description: When a simple dataspace is created, its extent should be set before using it, or it will silently function as a NULL dataspace. Solution: Added checks on user-supplied dataspaces. Now dataspaces without extents set will throw errors; users must explicitly set a dataspace to be NULL. Platforms tested: sleipnir, windows
* [svn-r8946] Purpose:Quincey Koziol2004-07-267-20/+50
| | | | | | | | | | | | | | | | | | Code cleanup, sorta Description: Added ifdef sections for "H5_USING_PURIFY" in various places in the code, which are designed to reduce the spurious "uninitialized memory read" warnings from purify which are actually OK. Note that this macro will have to be turned on by adding it to the CFLAGS for the build - I didn't think it was important enough to add a configure flag for. Also, the changes in H5HG.c optimize the walks through the objects in a heap to only look at the 'used' entries instead of all the 'allocated' entries. Platforms tested: Solaris 2.7 (arabica) w/purify Not tested by h5committest
* [svn-r8944] Purpose:Quincey Koziol2004-07-261-2/+4
| | | | | | | | | | | | Code optimization Description: Eliminate duplicated call to H5T_detect_class() Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8943] Purpose:Quincey Koziol2004-07-261-0/+2
| | | | | | | | | | | | Bug fix Description: Close memory leak I introduced in H5Sencode() routine. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8941] Purpose:Quincey Koziol2004-07-261-2/+6
| | | | | | | | | | | | | | Code optimization Description: Changed calloc() calls to malloc() calls allocating background buffers during dataset writes, since the background buffer information will be read from disk anyway, overwriting any existing values. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8938] James Laird2004-07-232-3/+8
| | | | | | | | | | | | | | | | | | | Purpose: Bug fix Description: Modification time test (mtime) would die silently on some systems. This is because the code is very system-dependant (it relies on getting the current time and the timezone from the OS). Solution: mtime test now uses TEST_ERROR macro to print "FAILED" and to output where the failure occurred. Configure script is a little smarter about whether gettimeofday() function returns the timezone correctly. Further bugs will need to be addressed on a system-by-system basis. Platforms tested: sleipnir, arabica, verbena, copper, windows (VC7)
* [svn-r8936] Elena Pourmal2004-07-221-5/+5
| | | | | | | | | | | | | | | | Purpose: Bug fix Description: While working on the SZIP documentation with Frank, I realized that when scanline was less than 4k and bigger than pixels_per_block, it was not adjusted if number_of_blocks_per_scanline was bigger than max_number_of_blocks_per_scanline. Solution: Fixed the code. Unfortunately it didn't help with the problem I had using h5repack with DOQGROD.he5 file. Platforms tested: copper Misc. update:
* [svn-r8932] Purpose:Quincey Koziol2004-07-2211-401/+437
| | | | | | | | | | | | | | | | | | | | Code cleanup Description: Clean up collective chunking code a bit. Also, add '--enable-instrument' configure flag to have a mechanism for determining that optimized operations happened correctly in the library (instead of just the "normal" way) by allowing 'flag' properties to be set outside the library and set when the "right" thing happens. This is mainly for debugging and regression checks, so we make certain we don't break optimized I/O by accident. It's enabled by default when --enable-debug is on (which is on by default in the development branch and off by default in the release branch), but can also be independently controlled with its own configure flag. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel IBM p690 (copper) w/parallel
* [svn-r8927] Purpose:Quincey Koziol2004-07-226-102/+58
| | | | | | | | | | | Code cleanup Description: Clean up various recent changes a little. Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r8923] Purpose:MuQun Yang2004-07-211-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To add a special section of codes for collective-chunk IO tests. Description: The current patch of collective chunk IO support in HDF5 can only handle some special("however, can cover many applications") cases, Inside source code, we did a careful checking to make sure other cases would not fall into this category and would not use collective IO. We also would like to test whether those collective conditions were met in our test programs. The current parallel HDF5 handled those collective IO requests in a special way. If the library finds it cannot do collective IO, it will silently change to independent IO. So basically there is no better way to check whether the library is doing what it should do without "hacking" into HDF5 source codes for the purpose of testing. But the "hacking" should not affect library work and should be easily pulled out after we get more general collective IO algorithm to work. With Quincey's suggestion, we used HDF5 property APIs to finish the job. Solution: The approach includes three parts: 1) In the test program, insert a property inside data transfer property list. Set a default value for this property. 2) Inside H5Dio.c, when the library finds that it cannot do collective IO with chunking storage, it will change the default value. 3) Then the test program will recheck the value after H5Dwrite or H5Dread to evaluate whether the current collective IO case is doing the right thing. Note: The test won't stop after it finds that the library is not doing the right thing and probably it will finish normally. The current approach is that the test program just printed out an error message. It should be changed later. Platforms tested:o copper,arabica,eirene Misc. update:
* [svn-r8922] Purpose: Restore the original codeRaymond Lu2004-07-211-1/+1
| | | | | | | | Description: Line 38, "#define H5_NO_FREE_LISTS" were commented out during debugging Solution: put back in. Platforms tested: No test needed
* [svn-r8921] Purpose: new featureRaymond Lu2004-07-219-24/+298
| | | | | | | | | | | | | | Description: This is the second step of checkin for encoding and decoding objects. H5Tencode and H5Tdecode have been committed in the previous step. H5Sencode and H5Sdecode are checked in this time. Solution: Given object ID, these functions encode and decode object information into and from binary buffer and return new object ID. They take advantage of the existing codes of object header message and encode in the same format. Platforms tested: fuss and h5committest. Misc. update: RELEASE.txt
* [svn-r8915] Elena Pourmal2004-07-211-12/+28
| | | | | | | | | | | | | | | | | | | Purpose: Improvement Description: HDF5 Library set pixels_per_scanline parameter to the size of the chunk's fastest changing dimension. As a result, fastest changing dimension of the chunk could not be bigger than 4K and smaller than pixels_per_block value and szip compression couldn't be used for many real datasets. Solution: Reworked algorithm how HDF5 sets pixels_per_scanline value; only chunks with the total number of elements less than pixels_per_block value are rejected. There is no restriction on the size of the chunk's fastest changing dimension anymore. Platforms tested: verbena, copper, sol Misc. update:
* [svn-r8906] Purpose:MuQun Yang2004-07-207-27/+196
| | | | | | | | | | | | | | | | | | | | | | | Adding the first round of patches about supporting collective chunk IO in HDF5 Description: The current HDF5 library doesn't support collective MPIO with chunk storage. When users set collective option in their data transfer with chunk storage, the library silently converted the option to INDEPENDENT and that caused trememdous performance penalty. Some application like WRF-parallel HDF5 IO module has to use contiguous storage for this reason. However, chunking storage has its own advantage(supporting compression filters and extensible dataset), so to make collective MPIO possible inside HDF5 with chunking storage is a very important task. This check-in make collective chunk IO possible for some special cases. The condition is as follows(either case is fine with using collective chunk IO) 1. for each process, the hyperslab selection of the file data space of each dataset is regular and it is fit in one chunk. 2. for each process, the hyperslab selection of the file data space of each dataset is single and the number of chunks for the hyperslab selection should be equal. Solution: Lift up the contiguous storage requirement for collective IO. Use H5D_isstore_get_addr to get the corresponding chunk address. Then the original library routines will take care of getting the correct address to make sure that MPI FILE TYPE is built correctly for collective IO> Platforms tested: arabica(sol), copper(AIX), eirene(Linux) parallel test is checked at copper. Misc. update:
* [svn-r8905] Purpose:MuQun Yang2004-07-201-1/+2
| | | | | | | | | | | | | | | | bug fix for windows testing Description: A function called H5C_stats_reset doesn't have H5_DLL in front of it, it cause windows DLL test failed. Solution: Add H5_DLL in front of it. Platforms tested: windows xp, sol 2.7, linux 2.4, aix 5.1 Misc. update:
* [svn-r8901] Purpose:Quincey Koziol2004-07-201-4/+2
| | | | | | | | | | | | Bug fix Description: Allow buffer parameter to H5Dread & H5Dwrite to be NULL if there are no elements to transfer. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8899] James Laird2004-07-201-0/+3
| | | | | | | | | | | | | | | | Purpose: Bug Fix Description: Calling H5Sset_extent_simple to change a dataspace's maxdims from nonzero to zero causes errors (infinite loops, seg faults, asserts) because the pointer to the maximum size isn't cleaned up properly Solution: Clean up that pointer. Added a test for this case. Platforms tested: sleipnir (very minor change)