summaryrefslogtreecommitdiffstats
path: root/src/H5Tpkg.h
Commit message (Collapse)AuthorAgeFilesLines
...
* [svn-r12425] Purpose: Bug fixRaymond Lu2006-06-201-6/+7
| | | | | | | | | | | | | | | Description: Data conversion from long double to (unsigned) long long returns some incorrect values on Mac OS 10.4 and SGI IRIX64 6.5. The conversions start to go wrong when the long double is 20041683600089727.779961 (0x4351ccf385ebc8a0bfcc2a...). If adjusting the values higher by assigning 0x...c8a0cf... or 0x...c8a0df..., the converted values go wild. Solution: Detect this error in configure.in and disable compiler conversions from long double to (unsigned) long long for Mac OS 10.4 and IRIX64 6.5. Platforms tested: h5committest, Mac OS 10.4, and IRIX64 6.5.
* [svn-r11712] Purpose:Quincey Koziol2005-11-151-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New feature Description: Check in baseline for compact group revisions, which radically revises the source code for managing groups and object headers. WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! This initiates the "unstable" phase of the 1.7.x branch, leading up to the 1.8.0 release. Please test this code, but do _NOT_ keep files created with it - the format will change again before the release and you will not be able to read your old files!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! Solution: There's too many changes to really describe them all, but some of them include: - Stop abusing the H5G_entry_t structure and split it into two separate structures for non-symbol table node use within the library: H5O_loc_t for object locations in a file and H5G_name_t to store the path to an opened object. H5G_entry_t is now only used for storing symbol table entries on disk. - Retire H5G_namei() in favor of a more general mechanism for traversing group paths and issuing callbacks on objects located. This gets us out of the business of hacking H5G_namei() for new features, generally. - Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t - Lots more... Platforms tested: h5committested and maybe another dozen configurations.... :-)
* [svn-r11384] Purpose:Quincey Koziol2005-09-121-0/+1
| | | | | | | | | | | | | | | | | | | | | 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
* [svn-r11332] Purpose: Minor Change to Macro NamesRaymond Lu2005-09-011-26/+26
| | | | | | | | | 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
* [svn-r11317] Purpose: Minor change to macro namesRaymond Lu2005-08-301-13/+13
| | | | | | | | | | | | 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.
* [svn-r11311] Purpose: New features.Raymond Lu2005-08-291-0/+96
| | | | | | | | | | | | | | | | | | | | 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.
* [svn-r11245] Purpose:Quincey Koziol2005-08-131-2/+2
| | | | | | | | | | | | | | | | | | | | Code cleanup Description: Trim trailing whitespace, which is making 'diff'ing the two branches difficult. Solution: Ran this script in each directory: foreach f (*.[ch] *.cpp) sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f end Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11144] Purpose:Quincey Koziol2005-07-231-0/+6
| | | | | | | | | | | New port Description: Elena asked me to check in her NEC SX-6 work, so here it is! :-) Platforms tested: FreeBSD 4.11 (sleipnir) NEC SX-6 (by Elena)
* [svn-r10919] Purpose: Take Out An Unused FunctionRaymond Lu2005-06-141-6/+0
| | | | | | | | | | | Description: Data conversion function H5T_conv_i32le_f64le() was unused. Because we have new conversion functions for integers and floating numbers, this old function is taken out. Platforms tested: fuss - simple change. Misc. update:
* [svn-r10238] Purpose:Quincey Koziol2005-03-201-1/+1
| | | | | | | | | | | | | | | | Optimization Description: Speed up I/O on enumerated datatypes (including those nested in compound datatypes, arrays, etc.) if the destination datatype is a proper superset of the source datatype. Solution: Detect the situation and treat as no-op datatype conversion. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10087] Purpose: New feature and testRaymond Lu2005-02-251-3/+20
| | | | | | | | | | | Description: Somehow, the hardware conversions between "long double" and other native floating-point types were left out. Solution: Added the hardware conversion functions in H5Tconv.c and test cases in dtypes.c. Platforms tested: h5committest and fuss. Misc. update: updated MANIFEST to replace bin/reconfigure.sh with bin/reconfigure
* [svn-r9984] Purpose: New feature and testRaymond Lu2005-02-101-0/+103
| | | | | | | | | | Description: Added support of hardware conversion between "long double" and integers(mainly in H5Tconv.c) and some test cases(mainly in test/dtypes.c). Platforms tested: h5committest and fuss. Misc. update: RELEASE.txt
* [svn-r9727] Purpose:Quincey Koziol2004-12-291-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-) Description: Generally speaking, this is the "signed->unsigned" change to selections. However, in the process of merging code back, things got stickier and stickier until I ended up doing a big "sync the two branches up" operation. So... I brought back all the "infrastructure" fixes from the development branch to the release branch (which I think were actually making some improvement in performance) as well as fixed several bugs which had been fixed in one branch, but not the other. I've also tagged the repository before making this checkin with the label "before_signed_unsigned_changes". Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel & fphdf5 FreeBSD 4.10 (sleipnir) w/threadsafe FreeBSD 4.10 (sleipnir) w/backward compatibility Solaris 2.7 (arabica) w/"purify options" Solaris 2.8 (sol) w/FORTRAN & C++ AIX 5.x (copper) w/parallel & FORTRAN IRIX64 6.5 (modi4) w/FORTRAN Linux 2.4 (heping) w/FORTRAN & C++ Misc. update:
* [svn-r9469] Purpose:Quincey Koziol2004-10-271-3/+3
| | | | | | | | | | | | | Code cleanup Description: Clear up some inconsistencies, inefficiencies and possible errors between the release and development branch. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Linux 2.4 (heping) w/C++ & FORTRAN
* [svn-r9445] Purpose: Bug fixRaymond Lu2004-10-211-4/+4
| | | | | | | | | | | Description: "char" was considered as always "signed char" in data type conversion. However, ISO C leaves the definition of "char" to individual implementation. i.e. for IBM AIX C compiler, it's treated as "unsigned char". Solution: Changed all "char" to "signed char". Don't even do "char" anymore because its definition is up to each vendor. Platforms tested: h5committest
* [svn-r9375] Purpose:Quincey Koziol2004-10-061-0/+1
| | | | | | | | | | | | | Bug fix Description: Close a couple of memory leaks Platforms tested: FreeBSD 4.10 (sleipnir) Solaris 2.7 (arabica) w/purify Linux 2.4 (verbena) too minor for h5committest
* [svn-r9350] *** empty log message ***Raymond Lu2004-10-011-0/+1
|
* [svn-r9329] James Laird2004-09-281-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: Feature Description: Datatypes and groups now use H5FO "file object" code that was previously only used by datasets. These objects will hold a file open if the file is closed but they have not yet been closed. If these objects are unlinked then relinked, they will not be destroyed. If they are opened twice (even by two different names), both IDs will "see" changes made to the object using the other ID. When an object is opened using two different names (e.g., if a dataset was opened under one name, then mounted and opened under its new name), calling H5Iget_name() on a given hid_t will return the name used to open that hid_t, not the current name of the object (this is a feature, and a change from the previous behavior of datasets). Solution: Used H5FO code that was already in place for datasets. Broke H5D_t's, H5T_t's, and H5G_t's into a "shared" struct and a private struct. The shared structs (H5D_shared_t, etc.) hold the object's information and are used by all IDs that point to a given object in the file. The private structs are pointed to by the hid_t and contain the object's group entry information (including its name) and a pointer to the shared struct for that object. This changed the naming of structs throughout the library (e.g., datatype->size is now datatype->shared->size). I added an updated H5Tinit.c to windows.zip. Platforms tested: Visual Studio 7, sleipnir, arabica, verbena Misc. update:
* [svn-r8731] Purpose:Quincey Koziol2004-06-231-1/+0
| | | | | | | | | | | | | | | Code cleanup & minor optimization Description: Re-work the way interface initialization routines are specified in the library to avoid the overhead of checking for them in routines where there is no interface initialization routine. This cleans up warnings with gcc 3.4, reduces the library binary size a bit (about 2-3%) and should speedup the library's execution slightly. Platforms tested: FreeBSD 4.10 (sleipnir) w/gcc34 h5committest
* [svn-r8683] Purpose:Quincey Koziol2004-06-141-193/+185
| | | | | | | | | | | | | Code optimization Description: Use 'size_t' instead of 'hsize_t' to track the number of elements in memory buffers, especially for type conversion. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8670] Purpose:Quincey Koziol2004-06-131-0/+2
| | | | | | | | | | | | | Code optimization Description: Avoid a memory copy by directly reading from the variable-length sequence buffer when there is no type conversion on the way to disk. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8507] Purpose:Quincey Koziol2004-05-121-0/+1
| | | | | | | | | | | | | | | | | Code optimization Description: Eliminate many redundant lookups to check for no-op type conversion by remembering that a type conversion path is the no-op path. Also, don't allow non-no-op conversions which happen to be no-ops on a particular machine (such as int<->long conversions on machines where int and long are the same size and format, etc.) to replace the default no-op conversion. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel
* [svn-r8427] Purpose:Quincey Koziol2004-04-281-0/+2
| | | | | | | | | | | | | | | | Bug fix (sorta) Description: Add hack to allow the MS Visual Studio 6 compiler to build the library. It cannot cast unsigned long long values to float or double values. So, add another configuration macro to disable this conversion in the library. Just the "hardware" conversion is disabled, so the library will still correctly convert unsigned long long to float and double values, it will just happen more slowly with the "software" conversion routine. Platforms tested: FreeBSD 4.9 (sleipnir) with "Windows" setting faked inappropriate for h5committest
* [svn-r8424] *** empty log message ***Raymond Lu2004-04-271-3/+0
|
* [svn-r8416] Purpose:Quincey Koziol2004-04-241-2/+2
| | | | | | | | | | | | | Code cleanup Description: Reduce warnings w/PC-Lint in various ways Platforms tested: PC-Lint too minor to require h5committest Misc. update:
* [svn-r8412] Purpose:Quincey Koziol2004-04-231-3/+3
| | | | | | | | | | | Code cleanup Description: Run lint on module Platforms tested: PC-Lint Too minor to require h5committest
* [svn-r8344] Purpose: Internal function changeRaymond Lu2004-04-121-1/+1
| | | | | | | | Description: H5T_bit_shift wasn't general enough to handle arbitory start, length. Solution: Make it be so. Platforms tested: h5committest
* [svn-r8270] Purpose: code cleanupRaymond Lu2004-03-221-1/+0
| | | | | | | Description: took out function of older algorithm(H5T_bit_neg2). Platforms tested: fuss
* [svn-r8266] Purpose: Internal function changeRaymond Lu2004-03-191-0/+1
| | | | | | | | | Description: The algorithm of H5T_bit_neg wasn't general enough. Solution: Changed it to handle arbitory starting position and size in a bit sequence. Platforms tested: h5committest.
* [svn-r8265] Purpose: Code cleanupRaymond Lu2004-03-181-1/+0
| | | | | | | | Description: Some printing commands left there for debugging. Solution: Took them out. Platforms tested: fuss(RH8). Simple change
* [svn-r8264] Purpose: Internal algorithm changeRaymond Lu2004-03-171-1/+2
| | | | | | | | | Description: The H5T_bit_dec algorithm wasn't general enough. Solution: Changed it to handle bit sequence starting at any position and of any length. Platforms tested: h5committest
* [svn-r8259] *** empty log message ***Raymond Lu2004-03-131-0/+4
|
* [svn-r8157] Purpose:Quincey Koziol2004-02-061-1/+1
| | | | | | | | | | | | Code cleanup/optimization Description: Hoist property list queries up out of inner loops to cache the values at a higher level and pass them into the lower-level routines. Platforms tested: IBM p690 (copper) w/parallel & fphdf5 h5committest
* [svn-r8154] Purpose:Quincey Koziol2004-02-051-1/+1
| | | | | | | | | | | Code cleanup Description: Minor tweaks, cleanups & optimizations to new bit operation routines. Platforms tested: FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8153] *** empty log message ***Raymond Lu2004-02-041-0/+7
|
* [svn-r8136] Purpose:Quincey Koziol2004-01-311-0/+3
| | | | | | | | | | | | | Optimization Description: Speed up various parts of the library by setting a global variable for the endianness of the machine at library startup and use that variable instead of repeatedly querying the endianness of the native int datatype. Platforms tested: IBM p690 (copper) too minor to require h5committest
* [svn-r7875] Purpose:Quincey Koziol2003-11-241-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Omnibus floating-point bug fix changes Description: There are a number of problems in the floating-point conversion code that were exposed by Ray's recent int<->float checkin: - The 'my_isnan' code in test/dtypes.c was broken and would always return true. The meant that the actual values in the float<->float conversion tests were _never_ checked, hiding the other bugs included in this checkin. - A recent change I made to the type conversion code used "FLT_MIN" instead of "-FLT_MAX" for the most negative 'float' value for the double->float conversion, which meant that any the negative number that was converted from a double to a float would have been mapped to zero, essentially. - A change that Robb appeared to have made ~2.5 years ago to the "generic" float->float conversion routine appears to be incorrect and I've backed it out. - Floating-point conversions on SGI's which converted denormalized values would be mapped to zero instead of being propertly preserved in the new type. This was addressed by an SGI-specific system call to prevent the behavior. Solution: Described above, generally. Platforms tested: FreeBSD 4.9 (sleipnir) h5committest Misc. update: release_docs/RELEASE update forthcoming...
* [svn-r7868] Purpose: new featureRaymond Lu2003-11-211-0/+200
| | | | | | | | | | Description: data type conversion between integers and float numbers. (Cover your ears. It's going to explode.:) Solution: covers all native type conversion. Mainly uses hardware conversion but handles overflow more gracefully. Platforms tested: h5committest
* [svn-r7842] Purpose:Quincey Koziol2003-11-131-12/+7
| | | | | | | | | | | | | | | | | | | Bug fix Description: Variable length strings and sequences with NULL pointers were not handled by library, causing problems access the data. This also affected fill values for variable-length datatypes. Solution: Address the issues in the library by detecting NULL sequences/strings and avoid trying to convert them. Patched up dumper to display NULL sequences/strings. Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r7616] Purpose:Quincey Koziol2003-10-131-8/+8
| | | | | | | | | | | | | | | Code cleanup Description: Change field member count and indices for compound and enumerated types from 'int' to 'unsigned' to better reflect actual use. Cleaned up a few other minor compiler warnings, etc. Platforms tested: FreeBSD 4.9 (sleipnir) Linux 2.4 (verbena) too minor to require h5committest
* [svn-r7468] Purpose:Quincey Koziol2003-09-121-1/+5
| | | | | | | | | | | | | | | | | | Code cleanup, etc. Description: Generalize Ray's datatype fixes to handle packing compound datatypes which are the base type of an array or variable-length type, etc. Also track "packedness" of a compound datatype from it's creation, instead of only setting the 'packed' flag after the datatype was explicitly packed. Updated docs to reflect that a compound datatype is allowed to grow (but not shrink). Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r7461] Purpose: bug #1017Raymond Lu2003-09-101-0/+1
| | | | | | | | Description: H5Tpack fails if called twice or datatype is locked. Compound datatype wasn't expandable. Platforms tested: h5committest
* [svn-r7438] Purpose:Quincey Koziol2003-09-021-18/+25
| | | | | | | | | | | Code cleanup Description: More de-linting... Platforms tested: FreeBSD 4.9 (sleipnir) too small to need h5committest
* [svn-r7434] Purpose:Quincey Koziol2003-08-311-4/+7
| | | | | | | | | | | | | | | | | | | | Bug Fix and code cleanup Description: Correct error in H5T_detect_class that was causing nested compound datatypes with to not detect the datatype class of fields correctly, which caused errors with fill-values, variable-length datatypes and chunks later on. Return the rank of the array datatype from H5Tget_array_dims(), like H5Sget_dims(). Lots of cleanups to datatype code, to make the handling of arrays, compound types, variable-length strings and sequences and enumerated types more consistent and robust. Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r7431] Purpose:Quincey Koziol2003-08-291-3/+5
| | | | | | | | | | | Code cleanup Description: De-linted more code. Platforms tested: FreeBSD 4.9 (sleipnir) too small to need h5committest
* [svn-r7334] Purpose:Quincey Koziol2003-08-111-23/+25
| | | | | | | | | | | | | | Bug fix Description: Object references were not getting written out correctly to the file, with recent changes to their memory structure. Solution: Convert the object references correctly. Platforms tested: h5committested
* [svn-r6837] Purpose:Quincey Koziol2003-05-081-4/+37
| | | | | | | | | | | | | | | Code cleanup. Description: Move many package or internal function prototypes and macro definitions into tighter scope according to their current use. Added more comments where appropriate. Eliminate ancient, unused functions. Added a couple "accessor" functions to get parts of data structures which were moved out of scope. Platforms tested: h5committested
* [svn-r6546] Purpose:Bill Wendling2003-03-311-3/+14
| | | | | | | | | | | | Update Description: Updated copyright statement in files which hadn't been updated yet. Platforms tested: Linux (Only comment change) Misc. update:
* [svn-r6395] Purpose:Quincey Koziol2003-02-121-0/+23
| | | | | | | | | | | | | | | | | | | | | | | Code cleanup. Description: Break up the ~9350 line H5T.c module into smaller pieces, which contain code for a particular feature or support for a datatype class. This should make the "main" H5T code (still in H5T.c) easier to support, as well as removing some of the "minor" routines from the user applications which don't use them (my rough estimates show about 4% reduction (~30K on a FreeBSD machine) in optimized, staticly-linked binaries for very simple programs) Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) Misc. update: Update MANIFEST
* [svn-r6387] Purpose:Quincey Koziol2003-02-101-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Bug Fix Description: Metadata cache in parallel I/O can cause hangs in applications which perform independent I/O on chunked datasets, because the metadata cache can attempt to flush out dirty metadata from only a single process, instead of collectively from all processes. Solution: Pass a dataset transfer property list down from every API function which could possibly trigger metadata I/O. Then, split the metadata cache into two sets of entries to allow dirty metadata to be set aside when a hash table collision occurs during independent I/O. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) serial & parallel Misc. update: Updated release_docs/RELEASE