summaryrefslogtreecommitdiffstats
path: root/src/H5T.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r14004] Description:Quincey Koziol2007-07-241-342/+142
| | | | | | | | | | | | Fix problem with datatype messages where the version of the format for a datatype message could depend on the "use the latest format" flag from the file after it was initially created. Tested on: FreeBSD/32 6.2 (duty) FreeBSD/64 6.2 (liberty) Linux/32 2.6 (kagiso) Mac OS X/32 10.4.10 (amazon)
* [svn-r13884] The second step of optimization for compound data for the ChicagoRaymond Lu2007-06-191-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | company. The I/O is optimized when the source and destination members are a subset of each other one way or another, and the order is the same, and no conversion is needed. For example: struct source { struct destination { TYPE1 A; --> TYPE1 A; TYPE2 B; --> TYPE2 B; TYPE3 C; --> TYPE3 C; }; TYPE4 D; TYPE5 E; }; or struct destination { struct source { TYPE1 A; --> TYPE1 A; TYPE2 B; --> TYPE2 B; TYPE3 C; --> TYPE3 C; }; TYPE4 D; TYPE5 E; }; The optimization is simply moving data from the source to the appropriate places in the buffer and bypass the reading of the background data and data conversion. Tested on smirom, liberty, sol, and copper.
* [svn-r13841] Description:Quincey Koziol2007-06-081-4/+30
| | | | | | | | | | Add a little more information to the debugging routine, for VL datatypes. Minor code cleanups Tested on: Mac OS X/32 10.4.9 (duty) Too minor to require h5committest
* [svn-r13753] Description:Quincey Koziol2007-05-141-34/+41
| | | | | | | | | | | | | Check in "unique, but sharable" optimization to ISOHM code, which allows object header messages that are only used in one object to remain in the sole user's header, but migrates messages that are used in more than one header into the ISOHM heap. Tested on: Mac OS X/32 10.4.9 (amazon) FreeBSD/32 6.2 (duty) Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r13635] Description:Quincey Koziol2007-04-111-2/+2
| | | | | | | Clean up code and reduce compiler warnings... Tested on: Mac OS X/32 10.4.9 (amazon)
* [svn-r13475] There's a configure issue linking szip's shared libraries when ↵Mike McGreevy2007-03-081-6/+6
| | | | | | | | | | | | running on kagiso. The static szip libraries are working as intended, but when shared szip libraries are present and intended for use they cannot be opened. A check has been implemented to test if shared szip libraries are functional on current platform. If they are not, and the user is trying to use them, szip is now disbaled and the user is informed. This issue occurs on kagiso, and the resolution was tested on kagiso.
* [svn-r13253] Updated all C and C++ style source code files with the THG ↵Albert Cheng2007-02-071-2/+3
| | | | | | | | | copyright notice. Tested platform: Kagiso only since it is only a comment block change. If it works in one machine, it should work in all, I hope. Still need to check the parallel build on copper.
* [svn-r13243] Description:Quincey Koziol2007-02-061-1/+1
| | | | | | | | | Add API routines for tracking & indexing the creation order on attributes. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 6.2 (duty)
* [svn-r13240] Description:Quincey Koziol2007-02-051-28/+28
| | | | | | | | | | More cleanups on the object header message handling code, to make it easier to work with and move forward on the creation order coding. Various other minor cleanups & warning fixes. Tested on: FreeBSD/32 6.2 (duty)
* [svn-r13232] Description:Quincey Koziol2007-02-041-39/+37
| | | | | | | | | Remove the "scaffolding" for shared message method invocation and simplify the way shared messages are dealt with in general. Tested on: FreeBSD/32 6.2 (duty) Mac OS X/32 10.4.8 (amazon)
* [svn-r13223] Description:Quincey Koziol2007-01-301-33/+35
| | | | | | | | | | | | Move datatype messages into new shared message method interface Clean up various formatting & compiler warnings Minor optimizations Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r13068] Ran bin/reconfigure. Some of the scripts have been changed or ↵James Laird2006-12-181-18/+18
| | | | | | | | | haven't been run in a while, so many of the source files were updated with tracing macros, etc. No code changes by me. Tested on kagiso and smirom.
* [svn-r13063] Cleaned up some memory issues when copying, in preparation for ↵James Laird2006-12-141-1/+1
| | | | | | | | | checking in code to copy shared messages. Should be fewer memory leaks and fewer "uninitialized memory reads." Tested on kagiso, smirom, and Windows.
* [svn-r13016] Description:Quincey Koziol2006-12-041-3/+3
| | | | | | | | | | | Finish moving object header message routines into their own source code module, along with renaming them to have "H5O_msg_" prefix... Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) Linux/32 2.4 (heping) AIX/32 5.? (copper)
* [svn-r13015] Description:Quincey Koziol2006-12-041-1/+1
| | | | | | | | | | | Migrate more object header routines to use the H5O_msg_ prefix and put them into the src/H5Omessage.c code module. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) Linux/32 2.4 (heping) AIX/32 5.? (copper)
* [svn-r12949] Description:Quincey Koziol2006-11-201-3/+3
| | | | | | | | | | | | | | | | Finish implementation of H5Literate() [still needs real tests] Clean up datatype macro warnings a bit more. Unify iterator callback macros and put up in public header file, with the iterator directions. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) Linux/32 2.4 (heping) Linux/64 2.4 (mir) AIX/32 5.? (copper)
* [svn-r12902] Checkin of Shared Object Header Message work.James Laird2006-11-131-38/+46
| | | | | | | | | | | | This feature is still in progress; Shared Object Header Messages are not complete as a feature and are not thoroughly tested. There are still "TODO" comments in the code (comments with the word "JAMES" in them, so as not to be confused with other TODO comments). Hopefully this checkin will reduce the liklihood of conflicts as I finish implementing this feature. All current tests pass on juniper, copper (parallel), heping, kagiso, and mir.
* [svn-r12842] Description:Quincey Koziol2006-11-021-56/+41
| | | | | | | | | | | | | | | | Refactor generic property list initialization code to put property list specific routines in property list modules, instead of scattered to the four winds. Also, introduce property list class initialization objects, to make adding new property list classes in the library easier. Fix daily test failure by using H5Pget_elink_prefix() API routine instead of looking at the "raw" generic property list information. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) w/threadsafe Linux/32 2.4 (heping) w/C++ & FORTRAN Linux/64 2.4 (mir) w/build-all & 1.6 compat
* [svn-r12803] Description:Quincey Koziol2006-10-231-2/+2
| | | | | | | | | | | | | | Finish new version of the I/O pipeline message, which is much smaller than the previous version. This version is used with the "use the latest version of the format" flag. Closed several memory leaks/overruns (found with valgrind). Also, lots of compiler & formatting cleanups. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12767] Description:Quincey Koziol2006-10-161-2/+2
| | | | | | | | Code cleanup to improve formatting & reduce compiler warnings. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12736] Description:Quincey Koziol2006-10-091-11/+4
| | | | | | | | | | | | | | | | | | | Add "use the latest format" support for dataspace object header encode/ decode routines and clean up format a bit for the latest format (new to 1.8.x releases) Remove storing 'perm' parameter for array datatypes in memory and the file, and add test to make certain that if any user applications are attempting to store them, we get some reports back. (Should be unlikely, since the RefMan says that the parameter is not implemented and is unsupported). Carry those changes into the tests, etc. Clean up a bunch more compiler warnings. Tested on: FreeBSD/32 4.11 (sleipnir) w/threadsafe Linux/32 2.4 (heping) w/FORTRAN & C++ Linux/64 2.4 (mir) w/enable-1.6-compat
* [svn-r12708] Description:Quincey Koziol2006-10-031-34/+48
| | | | | | | | | | | | | | | | | | | Add the "use the latest version of the format" support to datatype messages. And a regression test to check that it's working. Also, found that we have been over-allocating space for compound datatype messages (when they have array datatypes or can use the latest version of the format) and trimmed the size back. Clean up datatype & dataspace encode/decode routines by having them allocate & release "fake" file structures, which gets them out of needing to "know" about the internals of file structures. Other minor whitespace/formatting cleanups, etc. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12700] Alert:Quincey Koziol2006-10-021-19/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | File format is not stable, don't keep files produced! Description: First stage of checkins modifying the format of groups to support creation order. Implement "dense" storage for links in groups. Try to clarify some of the symbols for the H5L API. Add the H5Pset_latest_format() flag for FAPLs, to choose to use the newest file format options (including "dense" link storage in groups) Add the H5Pset_track_creation_order() flag for GCPLs, to enable creation order tracking in groups (although no index on creation order yet). Remove --enable-group-revision configure flag, as file format issues are now handled in a backwardly/forwardly compatible way. Clean up lots of compiler warnings and other minor formatting issues. Tested on: FreeBSD/32 4.11 (sleipnir) w/threadsafe Linux/32 2.4 (heping) w/FORTRAN & C++ Linux/64 2.4 (mir) w/enable-v1.6 compa Mac OSX/32 10.4.8 (amazon) AIX 5.3 (copper) w/parallel & FORTRAN
* [svn-r12528] Added User-Defined links to the library.James Laird2006-08-021-0/+15
| | | | | | | | | | | | | | Users can create external links using H5L_create_external(). These links point to an object in another HDF5 file. Users can alter the behavior of external links or create new kinds of links by registering callbacks using the H5L interface. Added tests, tools support, etc. Also a number of other, minor changes have been made (some restructuring of the H5L interface, for instance). Additional documentation and examples are forthcoming.
* [svn-r12452] Purpose:James Laird2006-07-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | Feature Description: Revised Link APIs. Solution: New link APIs use H5L* H5*create_expand do not create links to the objects created; this must be done manually with H5Llink. Added APIs to link an object given its ID (H5Llink), to copy links (H5Lcopy), and changed creation APIs (H5Lcreate_hard and H5Lcreate_soft) and query API (H5Lget_linkinfo instead of H5Gget_objinfo). All old APIs are still supported in H5Gdeprec.c . Platforms tested: sol, mir, copper Misc. update: Forgot to update MANIFEST and release docs. Will do after checkin.
* [svn-r12440] Purpose:Quincey Koziol2006-06-271-17/+17
| | | | | | | | | | | Code cleanup Description: Trim trailing whitespace in Makefile.am and C/C++ source files to make diffing changes easier. Platforms tested: None necessary, whitespace only change
* [svn-r12435] Purpose: Bug fixRaymond Lu2006-06-231-2/+2
| | | | | | | | | | | | Description: Mac OS 10.4 on PowerPC chip has some errors to convert (unsigned) long long to long double. When the bit sequences are 0x003ff..., 0x007fff..., 0x00ffff..., 0x01ffff..., 0x7fffff..., the converted values are twice as big as they should be. Solution: Detect the error in configure and disable the compiler conversion and test case. Platforms tested: h5committest, Mac OS 10.4, and fuss.
* [svn-r12189] Purpose:Quincey Koziol2006-04-011-0/+6
| | | | | | | | | | | | | | New/expanded features Description: Check in Peter's changed for the object copy code: - Allow/fix copying datasets using named variable-length datatypes - Start adding framework for property list to control how object copying occurs. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r12091] Purpose: Support for VAX floating-point types.Raymond Lu2006-03-141-0/+40
| | | | | | | | | | | | Solution: Support VAX float and double types with new byte order. There're some details not yet included, 1. the alignment detection for VAX order in H5detect.c. 2. support for special values in library conversion functions. 3. the infinity for VAX in H5T_init_inf. 4. support for VAX types in printing hexadecimal format. Platforms tested: h5committest and fuss.
* [svn-r11838] Purpose:Quincey Koziol2005-12-261-2/+11
| | | | | | | | | | | | | | | | Bug fix Description: Retrieving an object's name could fail (in various ways) under certain circumstances (mostly having to do with mounted files). Solution: Re-write & simplify "get object name" code to fix error in a better way than adding yet another hack to the previous pile of hacks... :-) Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r11758] Purpose:Quincey Koziol2005-12-041-34/+0
| | | | | | | | | | | | | New feature Description: Add in a combination of Peter's & my code to support copying variable-length data from one file to another, although currently only supported with contiguous data storage. Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r11738] Purpose:James Laird2005-11-181-0/+1
| | | | | | | | | | | | | | | | | | | Configure feature Description: Added 'make trace' target. Solution: Added tracing to 1.7. This was done automatically in 1.6, but left out of 1.7 until now (oops!). Tracing in 1.7 only happens manually, when the user types 'make trace.' Tracing automatically requires more framework than it's worth. I also fixed a couple of tracing bugs and ran trace. Platforms tested: mir, sleipnir, modi4 Misc. update:
* [svn-r11712] Purpose:Quincey Koziol2005-11-151-304/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-r11686] Purpose:Quincey Koziol2005-11-071-2/+1
| | | | | | | | | | | | | | | | | | | New feature Description: Add in baseline "object copy" code from Peter [in the form of a new API routine: H5Gcopy()]. There's still some work to do (like handling variable- length datatypes and possibly support for references) and it hasn't been tested on mounted files yet, but the core functionality is there and working correctly. I've also got a set of patches to update the 1.6 branch with tweaks to keep the branches mostly in sync, but Elena will kill me if I import them before the 1.6.5 release is out... :-) Platforms tested: FreeBSD 4.11 (sleipnir) h5committested
* [svn-r11490] Purpose:Quincey Koziol2005-10-031-7/+54
| | | | | | | | | | | | | | | Bug fix Description: Fix "double root open" bug and apply same fix to datasets & named datatypes. Also fix bug in symbol table entry lookup code that would "transfer" an object from one file handle to another file handle when the two file handles were opened on the same actual file. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11424] Purpose:Quincey Koziol2005-09-171-9/+11
| | | | | | | | | | | | | | | | | | | | | 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)
* [svn-r11415] Purpose: Internal design change.Raymond Lu2005-09-141-187/+198
| | | | | | | | | | | | | | | | | 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.
* [svn-r11414] Purpose: Rename a API functionRaymond Lu2005-09-141-11/+11
| | | | | | | | | | | 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.
* [svn-r11386] Purpose:Quincey Koziol2005-09-121-1/+1
| | | | | | | | | | | | | | 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
* [svn-r11384] Purpose:Quincey Koziol2005-09-121-15/+48
| | | | | | | | | | | | | | | | | | | | | 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-r11355] Purpose: A new API function and its test.Raymond Lu2005-09-061-0/+77
| | | | | | | | | 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.
* [svn-r11332] Purpose: Minor Change to Macro NamesRaymond Lu2005-09-011-52/+52
| | | | | | | | | 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-52/+52
| | | | | | | | | | | | 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-52/+52
| | | | | | | | | | | | | | | | | | | | 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-123/+123
| | | | | | | | | | | | | | | | | | | | 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-r11145] Purpose:Quincey Koziol2005-07-231-16/+29
| | | | | | | | | | | | | | | | Bug fix Description: If a named datatype is copied and the copy is used to create a dataset, the dataset would inadvertantly refer to the original named datatype instead of a local (possibly modified) copy of the named datatype. Solution: Fixed datatype copying routine. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11144] Purpose:Quincey Koziol2005-07-231-22/+36
| | | | | | | | | | | 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-r11078] Purpose:Quincey Koziol2005-07-171-2/+9
| | | | | | | | | | | | | | | Bug fix Description: Correct memory leak when a dataset is attempted to be opened, but turns out to be a group or named datatype. Also, clean up code that was leading to the leak and zero out empty group entries to help prevent similar errors in the future. Platforms tested: FreebSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10958] Purpose:Quincey Koziol2005-06-201-0/+19
| | | | | | | | | | | | | New feature Description: Add group creation & access property lists, dataset access property lists and named datatype creation & access property lists. Currently have <foo>_extend() API names, which will need to be changed for the final release. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 (heping)
* [svn-r10919] Purpose: Take Out An Unused FunctionRaymond Lu2005-06-141-4/+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: