summaryrefslogtreecommitdiffstats
path: root/src/H5detect.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r18871] Description:Quincey Koziol2010-05-211-8/+8
| | | | | | | | | Clean up compiler warnings (on Windows, I hope) by marking some routines as taking 'volatile' parameters. Tested on: Mac OS X/32 10.6.3 (amazon) w/debug (too minor for h5committest)
* [svn-r18799] Description:Quincey Koziol2010-05-131-0/+3
| | | | | | | Added note about use of volatile for variables. Tested on: None - trivial change to comment.
* [svn-r18677] Just mopped up some looseends by using the macro HDxyz instead ↵Albert Cheng2010-04-291-7/+7
| | | | | | | | the xyz function names. Tested: Jam only since this is trivial.
* [svn-r18660] Description:Quincey Koziol2010-04-281-13/+19
| | | | | | | | | Tweak H5detect to be even more careful about its actions, to allow gcc 4.5 to use '-O3'. Also, minor code cleanups in H5Tfloat.c Tested on: FreeBSD/64 6.3 (liberty) w/gcc 4.5 & production mode (h5committest not necessary/appropriate)
* [svn-r18659] Bug: 1764Albert Cheng2010-04-281-65/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: longjmp do not necessary restore signal that is blocked during the signal handling. This caused the Alignment test to fail quietly, resulting in wrong alignment information which will cause failures later. Solution: One can use sigsetjmp/siglongjmp to restore signal handling but not all systems such as Cray XT or VMS supports sigsetjmp. Backup solution is to use sigprocmask to reset the signal. Again, some systems may not support it either. Added code to try the first and then the second solution. Also added tests to verify if the signal_handler routines are working properly. Finally, added code to print results of the verification (in form of comments) to H5Tinit.c for inspection in case of failure. (Note that many platforms do not have alignment limits at all and ALIGNMNET code never raise the SIGBUS or SIGSEGV errors. In those cases, it does not matter whether the signal handlers work or not. Again, this can be deduced from the results comments near the end of the H5Tinit.c. If the sum of signal handlers called equals the total of verify, it means ALIGNMENT does not raise any signals.) For configure.in and configure: Added the test for setjmp, sigsetjmp, sigprocmask which are used by the H5detec.c. Tested: htcommittested, jam(serial).
* [svn-r18627] Description:Quincey Koziol2010-04-251-16/+8
| | | | | | | | | | | | | | | | | | | | | | | More progress toward addressing Bz#1398: add 'volatile' keyword to floating- point types when detecting their properties. Also, minor code formatting cleanups. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.6.3 (amazon) in debug mode Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
* [svn-r18492] Bug fix:Albert Cheng2010-04-011-1/+0
| | | | | | | | | | | | | | | | | Testlibinfo.sh failed again. Solution: Removed the const from H5libhdf5_settings definition, again. Revamp the whole setting so that H5lib_settings.c is compiled individually, just like H5Tinit.c. Hope this will take care of the problem once for all. Tested: Jam using --disable-shared with --enable and --disable-embedded-libinfo. Will test this on the AIX platform after commit (cannot run bin/reconfigure in the AIX platform and it is too clumsy to try to ssh files back and forth and incurred "svn merge inconsistency" later too. Pretty confident this fix should work in all other platforms.
* [svn-r18415] Description:Quincey Koziol2010-03-181-99/+2
| | | | | | | | | | Move the libhdf5.settings information out of src/H5Tinit.c and into a separate header file (src/H5lib_settings.h), which is generated at build time (not configure time) with the src/H5make_libsettings generator program. Tested on: Linux/32 2.6 (jam) Mac OS X/32 10.6.2 (amazon)
* [svn-r18011] Description:Quincey Koziol2009-12-131-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring Coverity changes into the trunk: (also other minor cleanups) r17991: Fix Coverity items 175 and 176. Fixed memory leak on error in print_enum in H5LT.c. r17993: (r17992 was not a Coverity change) Close Coverity issue #206: inconsistently checking whether dt->shared was non-NULL after H5T_alloc() returned a valid 'dt' value (which should guarantee that dt->shared is valid). r17994: Fix Coverity item 149. Fixed file handle leak on error in H5FD_stdio_open. r17995: Fixed Coverity issues 154 to 161: Added H5MP_close routine to error handling in the event *mp has not been freed before error. r17996: Close Coverity issue #126: potentially leaking merged_spans on routine failure. r17997: Fix Coverity items 147 and 148. Fixed resource leaks on error in H5FDloc.c. r17998: Coverity issue 269-272: Added integer result variable to functions that could return negative. Assigned to unsigned after checking. Added H5E_BEGIN_TRY block around H5Tclose and removed H5E_THROW in the catch block. Checked buffer is NULL before free. Changed HGOTO_ERROR outside of the if block to H5E_THROW. r17999: Close Coverity issue #127: release temporary spans in more generic manner. (Also add error checking to previous fix) r18000: Resolved Coverity issues 211 and 212 in H5T.c. Added comments to ignore Coverity warning regarding not checking pointer for NULL, as we are using an assert which catches the issue. r18001: Fix Coverity item 146. Fixed resource leak on error in H5O_layout_copy. r18002: Fix Coverity items 143 and 145. Fixed resource leaks on error in H5D_compact_copy and H5D_contig_copy. r18003: Close Coverity issue #192: close file on error r18004: Fix Coverity issue #125: release temporary spans on error r18005: Resolved Coverity issues 5, 25, and 83 (in H5T.c): Separated embedded functions in order to check for NULL on return of H5I_object before passing into H5T_copy. Check to see if new_dt is NULL within error handling before dereferencing it. Ignore Coverity's dead code warnings as the checks that lead to the code are machine dependent. r18006: Coverity 63,70,73: Checked result of function before assigning to an unsigned variable. r18007: Coverity 78,79: added continue statement if H5Pget_filter2 returns negative. r18008: Fixed Coverity issue # 138: Added support in error handling to free dst pointer (if allocated) on error. r18009: Whitespace & coding style cleanup
* [svn-r17838] Description:Quincey Koziol2009-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Further refactoring of v2 B-tree code, moving toward being able to pass a context information to a client's encode/decode callbacks. Also, clean up of other minor compiler warnings and code formatting issues. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.6.1 (amazon) in debug mode Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
* [svn-r17502] Purpose:Albert Cheng2009-09-211-20/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stage 2 implementation of embedded library information feature. H5.c: added code to print the embedded library information when there is a library versions mis-match occurs. This ensures the library information string is included in the executable. Also modifies the code so that the Library mismatch warning string is included only once in the executable. H5private.h: Added a global reference to the libinfo string variable to prepare for possible stage 3 implementation of a public API. test/testlibinfo.sh.in: A new test added to verify the library information is indeed included in the executables. configure.in: configure: Added entry to auto-generate test/testlibinfo.sh. H5detect.c: Modified the libhdf5settings generating code to allow it to insert the strings to a file other than stdout. This maybe needed in stage 3 implementation. MANIFEST: updated with the newly added file of testlibinfo.sh.in. Tested: h5committest passed. Additional tests: jam serial; jam --disable-embedded-libinfo; jam --disable-shared. All passed.
* [svn-r16829] Bug fix.Albert Cheng2009-04-211-1/+1
| | | | | | | | | | | | | | | | In Up (AIX system), the insert_libhdf5_settings() infinite looped because it never found EOF. Man getc in another system said: "If the integer value returned by getc() is stored into a variable of type char and then compared against the integer constant EOF, the com- parison may never succeed, because sign-extension of a variable of type char on widening to integer is implementation-defined." Solution: Changed inchar from type char to int fixed the problem. Morale of the story: RTFM or HTCW (heed the compiler warnings). Tested: Up (AIX 5.3).
* [svn-r16814] New feature(Bug 230):Albert Cheng2009-04-211-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | Embed the content of libhdf5.settings into the hdf5 executables so that an "orphaned" executables can display (via the Unix strings command, for example) the library settings used to build the executables. This is a prototype implementation. Much improvement is needed. configure.in: Added the --disable-embedded-libinfo option to disable this feature. configure: src/H5config.h.in: Generated by autotools like automake. src/H5detect.c: Implement insert_libhdf5_settings() to insert the contents of libhdf5.settings into the library as an extern string variable so that it is included in all HDF5 executable. Much improvement is needed. fortran/src/Makefile.in: Auto-generated by bin/reconfigure. (i.e., I did make any changes to cause its direct regeneration). Tested: Jam serial, using default and --disable-embedded-libinfo, configure options.
* [svn-r16489] Fixed bug #1459 by eliminating the macro long_long and ↵Allen Byrne2009-02-181-2/+2
| | | | | | | | | | | replacing all instances with long long. Tested: h5comittest fedora 10 x64 Vista 32, VS2005, IVF101 XP32, Cygwin
* [svn-r15609] Description:Quincey Koziol2008-09-101-37/+100
| | | | | | | | Omnibus compiler warning cleanup & some reformatting also. Tested on: Mac OS X/32 10.5.4 (amazon) Too minor to require h5committest
* [svn-r15485] Purpose: Allow library to shut down properly when objects have ↵Neil Fortner2008-08-191-1/+1
| | | | | | | | | | | | | | | | reference count > 1. Description: Added a new field 'app_count' to H5I_id_info_t struct, to track the reference count on an id due to the application. the old 'count' field tracks the total. Generally any id visible to the application gets placed in app_count. Added app_ref boolean parameter to H5I_inc_ref, H5I_dec_ref, H5I_register, H5I_clear_type, and a few other functions, to specify whether the operation(s) being performed on the id(s) are due to the application (TRUE) or not (FALSE). Test added for this case. Tested: kagiso, smirom, linew (h5committest)
* [svn-r15096] Purpose: Windows Project Cleanup-- Unify Windows h5tinitScott Wegner2008-05-291-6/+0
| | | | | | | | | | Description: Previously, there was Windows-dependent code inside H5detect.c, because not all projects could access the gethostname() function. However, we standardize our project-files to link with WS2_32.lib, so now this function is available. Thus, the Windows-specific code has been removed from H5detect.c. Tested: VS2005 on WinXP VS.NET on WinXP no need to test other platforms, Windows-specific source change
* [svn-r14067] Purpose: Revise usage of H5_HAVE_SIGLONGJMPScott Wegner2007-08-101-1/+3
| | | | | | | | Description: The way I had integrated H5_HAVE_SIGLONGJMP previously, we conditionally removed far more functionality than we needed. As a result, Windows type alignment was lost. This commit localizes the ifdef so it only surrounds the actual call to siglongjmp. This is equivalent to what we've done in the past-- simply comment out the line. Tested: VNET on WinXP
* [svn-r14056] Purpose: Take advantage of new H5_HAVE_SIGLONGJMP flag in ↵Scott Wegner2007-08-081-1/+1
| | | | | | | | | | | H5detect.c Description: Visual Studio does not have the function siglongjmp. Therefore, we have created a new configure flag H5_HAVE_SIGLONGJMP that tests for this. We use this within H5detect.c. Tested: VS.NET h5committest
* [svn-r13766] In Visual Studio 2005 for 64-bit, _WIN32 is defined, but not ↵Scott Wegner2007-05-181-1/+1
| | | | | | | WIN32, so I've standardized all #ifdef's to use _WIN32. This should not affect any other platform. Tested: Visual Studio (32- and 64-bit) on Win XP
* [svn-r13700] Updated the copyright generated by the program to the THG notice.Albert Cheng2007-04-241-2/+3
| | | | | Tested: kagiso (no committed test since it is trivial.)
* [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-r12091] Purpose: Support for VAX floating-point types.Raymond Lu2006-03-141-17/+43
| | | | | | | | | | | | 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-r11886] Purpose:Quincey Koziol2006-01-231-4/+0
| | | | | | | | | | | | | Code cleanup Description: Check in some of the code cleanups from working on the external link support. (This doesn't include any of the external link features) Platforms tested: FreeBSD 4.11 (sleipnir) Mac OSX.4 (amazon) Linux 2.4
* [svn-r11396] Purpose:Albert Cheng2005-09-121-1/+1
| | | | | | | | | | | | | | | | 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.
* [svn-r11384] Purpose:Quincey Koziol2005-09-121-10/+7
| | | | | | | | | | | | | | | | | | | | | 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-r11245] Purpose:Quincey Koziol2005-08-131-23/+23
| | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | 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-r11073] Purpose: Small bug fixElena Pourmal2005-07-141-1/+1
| | | | | | | | | | | Description: On VMS assertion failed due to a typo ("/" instead of "%") Solution: Fixed a typo Platforms tested: VMS (code is not exercised on other platforms) Misc. update:
* [svn-r10070] Purpose: Bug fixRaymond Lu2005-02-231-14/+19
| | | | | | | | | | | Description: On some Cray, the size of "short" is 8 byte but only the low-order 4 byte are over used(precision is 4 byte). The "perm" in struct "detect_t" contains "-1" for bytes that aren't used, making detection of order invalid in function print_results(). Solution: Use a "for" loop to search through "perm" find the first non "-1" element, and use it to decide the byte order of the machine. Platforms tested: fuss - already tested for v1.6
* [svn-r9951] Purpose: Minor bug fix.Raymond Lu2005-02-071-6/+20
| | | | | | | | | | | | | Description: The byte order for all 1-byte integer types was fixed as little-endian even on a big-endian machine. This's corrected in h5detect.c. When types are only 1 byte long, a native int is used substitute the type to detect byte order. Some tools like h5dump and h5repack are also corrected in this case. Platforms tested: fuss, copper, sol.(There're some failures from the recent configure change). Misc. update: Information in the RELEASE.txt.
* [svn-r9857] Purpose: MaintenanceElena Pourmal2005-01-221-1/+0
| | | | | | | | | | | | | | Description: Removed PABLO from the source Solution: Platforms tested: arabica with 64-bit, copper with parallel, heping with GNU C and C++ and PGI fortran (but I disabled hl, there is some weird problem only on heping: F9XMODFLAG is not propagated to the Makefile files Misc. update:
* [svn-r9816] Purpose:Albert Cheng2005-01-121-48/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | cleanup warning messages. Description: Compilers complained about local variable shadowed global variables. The global variables d[], m[], nd, na were having the same names as local function arguments. This was a left over when I broke the original one big chunk of code into separated functions to go around the Intel Compiler optimization error. Solution: Appended the global variables with suffix _g, thus d[] => d_g[] m[] => m_g[] nd => nd_g na => na_g This is only an intermediate step. After the changes tested out fine by all machines, need to rename the variables to more meaningful names like dtype_array. Platforms tested: Tested in heping by saving the previous generated H5Tinit.c, regenerated a new H5Tinit.c with the changed code, finally compared the new and old versions were identical.
* [svn-r9329] James Laird2004-09-281-18/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-16/+1
| | | | | | | | | | | | | | | 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-r8565] Purpose:Albert Cheng2004-05-211-3/+93
| | | | | | | | | | | | | | Improvement Description: Break up the C99 integer types detection into even smaller sub-module routines. This has dropped the compile time (with optimization) from 94 seconds to 6 seconds. Platforms tested: h5committested. Misc. update:
* [svn-r8558] Purpose:Albert Cheng2004-05-201-3/+3
| | | | | | | | | | | Code cleanup Description: Changed local variables declaration to static to please compilers. Platforms tested: Tested by generating H5Tinit.c and verified it was same as before. Tested in TG_NCSA.
* [svn-r8548] Purpose:Albert Cheng2004-05-201-39/+157
| | | | | | | | | | | | | | | Improvement. Description: Some compilers, e.g., Intel C v7.0, took a long time to compile with optimization when a module routine contains many code lines. Divide up all those types detections macros into subroutines, both to avoid the compiler optimization error and cleaner codes. Platforms tested: h5committested. Misc. update:
* [svn-r8383] Purpose:Quincey Koziol2004-04-181-1/+1
| | | | | | | | | | | | | Code cleanup Description: Clean up lots of warnings based on those reported from the SGI compilers as well as gcc. Platforms tested: SGI O3900, IRIX64 6.5 (Cheryl's SGI machine) FreeBSD 4.9 (sleipnir) w/ & w/o parallel h5committest
* [svn-r8136] Purpose:Quincey Koziol2004-01-311-1/+14
| | | | | | | | | | | | | 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-r7917] Purpose:Quincey Koziol2003-12-061-1/+1
| | | | | | | | | | | | | | | | | | | Code cleanup Description: Clean up compiler warnings, especially the 'FUNC' variable not used which comes out in production mode. Solution: Had to add a new FUNC_ENTER_NOAPI_NOINIT_NOFUNC macro for those non-API functions which don't need the 'FUNC' variable defined. (This will be _so_ much easier when C99 is standard on all our supposed platforms, since it has a __FUNC__ macro... ) Platforms tested: FreeBSD 4.9 (sleipnir) too minor for h5committest (although there were lots of files changed, the change was minor in each one)
* [svn-r7358] Purpose:Albert Cheng2003-08-131-1/+15
| | | | | | | | | | | | | added formal copyright notice. Description: Solution: Platforms tested: h5committested Misc. update:
* [svn-r7109] Purpose:Quincey Koziol2003-06-261-2/+2
| | | | | | | | | | | Code cleanup Description: Clean up varios compiler warnings flagged by SGI compiler and gcc 3.3 Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7097] Purpose:Quincey Koziol2003-06-241-11/+14
| | | | | | | | | | | | | | | | | | | | | Bug fix Description: Alignment of some types (namely 'short's) was still not being correctly detected on some Crays. Solution: Revert part of last change which accidentally got the offset of 'short's wrong on Crays Correct check for alignment of 'short's on Crays. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest Cray SV1 (wind) Cray T3E (hubble) Cray T90 (gypsy)
* [svn-r7084] Purpose:Quincey Koziol2003-06-231-17/+29
| | | | | | | | | | | | | | | | | | | Bug fix Description: Alignment on Cray SV1 machine was not being detected correctly and was not aligning integer types correctly for type conversion, nor was detecting the proper internal offset of the data in a 'short' type. Solution: Added more checks to detect way Cray aligns pointers in addition to current checks. Corrected 'offset' detection on big-endian machines. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r6546] Purpose:Bill Wendling2003-03-311-5/+13
| | | | | | | | | | | | Update Description: Updated copyright statement in files which hadn't been updated yet. Platforms tested: Linux (Only comment change) Misc. update:
* [svn-r6283] MuQun Yang2003-01-141-0/+6
| | | | | | | | | | | | | | | | | Purpose: Change some macros to make windows happy Description: Currently no srandom and random functions on windows, Function gethostname cannot be resolved when DLL turned on Solution: use srand and rand to replace srandom and random turn off the option to check gethostname Platforms tested: windows 2000, linux 2.2.18smp Misc. update: Update MANIFEST if you add or remove any file. Update release_docs/RELEASE for bug fixes, new features, etc. Update applicable document files too.
* [svn-r6266] Purpose:Quincey Koziol2003-01-101-2/+2
| | | | | | | | | | | | Code cleanup/new feature. Description: Split FUNC_LEAVE into API and non-API specific versions. This allows a solution to compiling this branch with C++, as well as reducing the size of the binaries produced. Platforms tested: FreeBSD 4.7 (sleipnir) w/serial, parallel (including MPE) & thread-safe
* [svn-r6252] Purpose:Quincey Koziol2003-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of performance improvements & a couple new internal API interfaces. Description: Performance Improvements: - Cached file offset & length sizes in shared file struct, to avoid constantly looking them up in the FCPL. - Generic property improvements: - Added "revision" number to generic property classes to speed up comparisons. - Changed method of storing properties from using a hash-table to the TBBT routines in the library. - Share the propery names between classes and the lists derived from them. - Removed redundant 'def_value' buffer from each property. - Switching code to use a "copy on write" strategy for properties in each list, where the properties in each list are shared with the properties in the class, until a property's value is changed in a list. - Fixed error in layout code which was allocating too many buffers. - Redefined public macros of the form (H5open()/H5check, <variable>) internally to only be (<variable>), avoiding innumerable useless calls to H5open() and H5check_version(). - Reuse already zeroed buffers in H5F_contig_fill instead of constantly re-zeroing them. - Don't write fill values if writing entire dataset. - Use gettimeofday() system call instead of time() system when checking the modification time of a dataset. - Added reference counted string API and use it for tracking the names of objects opening in a file (for the ID->name code). - Removed redundant H5P_get() calls in B-tree routines. - Redefine H5T datatype macros internally to the library, to avoid calling H5check redundantly. - Keep dataspace information for dataset locally instead of reading from disk each time. Added new module to track open objects in a file, to allow this (which will be useful eventually for some FPH5 metadata caching issues). - Remove H5AC_find macro which was inlining metadata cache lookups, and call function instead. - Remove redundant memset() calls from H5G_namei() routine. - Remove redundant checking of object type when locating objects in metadata cache and rely on the address only. - Create default dataset object to use when default dataset creation property list is used to create datasets, bypassing querying for all the property list values. - Use default I/O vector size when performing raw data with the default dataset transfer property list, instead of querying for I/O vector size. - Remove H5P_DEFAULT internally to the library, replacing it with more specific default property list based on the type of property list needed. - Remove redundant memset() calls in object header message (H5O*) routines. - Remove redunant memset() calls in data I/O routines. - Split free-list allocation routines into malloc() and calloc()- like routines, instead of one combined routine. - Remove lots of indirection in H5O*() routines. - Simplify metadata cache entry comparison routine (used when flushing entire cache out). - Only enable metadata cache statistics when H5AC_DEBUG is turned on, instead of always tracking them. - Simplify address comparison macro (H5F_addr_eq). - Remove redundant metadata cache entry protections during dataset creation by protecting the object header once and making all the modifications necessary for the dataset creation before unprotecting it. - Reduce # of "number of element in extent" computations performed by computing and storing the value during dataspace creation. - Simplify checking for group location's file information, when file has not been involving in file-mounting operations. - Use binary encoding for modification time, instead of ASCII. - Hoist H5HL_peek calls (to get information in a local heap) out of loops in many group routine. - Use static variable for iterators of selections, instead of dynamically allocation them each time. - Lookup & insert new entries in one step, avoiding traversing group's B-tree twice. - Fixed memory leak in H5Gget_objname_idx() routine (tangential to performance improvements, but fixed along the way). - Use free-list for reference counted strings. - Don't bother copying object names into cached group entries, since they are re-created when an object is opened. The benchmark I used to measure these results created several thousand small (2K) datasets in a file and wrote out the data for them. This is Elena's "regular.c" benchmark. These changes resulted in approximately ~4.3x speedup of the development branch when compared to the previous code in the development branch and ~1.4x speedup compared to the release branch. Additionally, these changes reduce the total memory used (code and data) by the development branch by ~800KB, bringing the development branch back into the same ballpark as the release branch. I'll send out a more detailed description of the benchmark results as a followup note. New internal API routines: Added "reference counted strings" API for tracking strings that get used by multiple owners without duplicating the strings. Added "ternary search tree" API for text->object mappings. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} Other platforms/configurations tested? FreeBSD 4.7 (sleipnir) serial & parallel Solaris 2.6 (baldric) serial
* [svn-r6195] Raymond Lu2002-12-111-36/+69
| | | | | | | | | | Purpose: Cleanup H5Tget_native_type code Description: improve code cosmetics. Solution: Platforms tested: modi4, eirene, arabica