GetData 0.8.4 is known to compile and pass the test suite on the following
systems (including C++ and Fortran bindings):
* x86, x86_64, ARM under (variously) Debian, Slackware, Ubuntu, RHEL
* x86 and x86_64, using Xcode 3.2/gcc 4.2, under MacOS X Snow Leopard
* x86_64, using gcc 4.3
* x86_64, using mingw/gcc 4.5, under MSys
* X86_64, using MSVC 10
* x86, using gcc 4.2
The Python bindings have been tested with Python 2.4 through Python 2.7.
The IDL bindings have been tested with IDL 6.0 and IDL 7.1.
The Perl bindings have been tested with Perl 5.8 through Perl 5.16.
The MATLAB bindings have been tested with MATLAB R2009b and MATLAB R2012a.
Four packages are available:
* getdata-0.8.4.tar.bz2/.gz: the full source code to the library, with
bindings. This package uses the GNU autotools build system, and is
designed for POSIX systems (UNIX, Linux, BSD, MacOS X, Cygwin, MSys,
* getdata_win-0.8.4.zip: a reduced source code package, with the CMake
build system designed to be built on Microsoft Windows, either using
the free MinGW compiler, or else Microsoft's Visual C++ compiler.
(The full source package above can also be built using MinGW, if the
MSys shell is used to run the build system.) Currently, the only
bindings provided by this package are the C++ bindings, and the
package lacks support for compressed dirfiles, the Legacy API, and a
few other features. This build is used in native Microsoft Windows
builds of kst2.
* idl_getdata-0.8.4.tar.bz2/.gz: the Interactive Data Language (IDL)
bindings, packaged separately with an autotools build system, designed
to be built against an already installed version of GetData. Due to
licensing restrictions, pre-built packages rarely come with these
bindings, and this package allows end-users to add support for IDL
* matlab_getdata-0.8.4.tar.bz2/.gz: the MATLAB bindings, packaged separately
with an autotools build system, designed to be built against an already
installed version of GetData. Due to licensing restrictions, pre-built
packages rarely come with these bindings, and this package allows end-users
to add support for MATLAB without having to recompile the whole GetData
New in version 0.8.4rc2:
* CLARIFICATION: Inconsistant behaviour in the library, coupled with
contradictory statements in the Dirfile Standards, has resulted in confusion
over the meaning of the final, optional, parameter in a MPLEX definition.
To be clear: this parameter is simply the expected period between successive
occurances of the "count" value in the index vector. (It is used by GetData
only to figure out a resonable length for the MPLEX lookback.) The
following clarifications and corrections have been made to the definition
of the MPLEX field type in dirfile-format(5):
- The final, optional parameter has been renamed from "max" to "period".
- This parameter indicates not the maximal range of the index vector, as
previously stated, but the expected number of samples between successive
occurances of the specified "count" value in the index vector; as before,
it should be regarded as a hint, and does not place any actual restriction
on the contents of the index vector.
- The incorrect requirement that the "count" parameter be non-negative has
- The incorrect requirement that "count" be less than or equal to "max", if
"max" is present and non-zero, has been deleted.
- The meaning of an omitted or zero "period", indicating that the spacing of
"count" in the index vector is unknown or non-uniform, is now explicitly
- Different MPLEX fields using the same index vector may specify different
See also the related library bug fixes below.
* The count_max member of the gd_entry_t object has been renamed period. The
corresponding dummy argument in various function prototypes has been
* BUG FIX: The library no longer incorrectly rejects negative count_val MPLEX
parameters. Furthermore, a count_val of -1 in gd_alter_entry or
gd_[m]alter_mplex calls is not a special value: it just sets count_val to
* BUG FIX: The library no longer incorrectly rejects MPLEX fields where
count_val is greater than the period (formerly called count_max).
* BUG FIX: The default MPLEX period, if none is specified, is 2*count_val + 1,
not simply 2 * count_val, when count_val is greater than 5.
* BUG FIX: Trying to position an I/O pointer to before sample zero with
gd_seek() now properly fails. Previously it would allow it, causing bizarre
things to happen later.
* BUG FIX: Using gd_tell to get the I/O pointer position of a derived field
with exactly two input fields (MULTIPLY, DIVIDE, MPLEX, WINDOW) now properly
reports an error in the "multiposition" case (ie. when the two inputs are
ultimately reading from different locations in the same RAW field).
* BUG FIX: Trying to read sample zero of a gzipped RAW field the second time
now works as expected. Previously, the request to reposition the I/O
pointer back to zero would be ignored by the gzip framework. Reported by
* BUG FIX: The field code of a reference field declared in a subfragment
included with affixes is no longer corrupted by spurious application of the
affixes when the subfragment's metadata are (re-)written. Reported by Seth.
* C++: The Entry and MplexEntry member functions CountMax and SetCountMax have
been renamed to Period and SetPeriod for consistency with the changes listed
above. CountMax and SetCountMax are still avaialbe as aliases, but are
* IDL BUG FIX: GD_ENTRY structures representing MPLEX fields are now properly
interpreted. Previously, the underlying gd_entry_t object was being
* PYTHON BUG FIX: Numpy arrays returned by dirfile.getdata() are now the
correct length. Previously they would always be the length requested (or
the length of the dirfile, if no length was explicitly given) even if fewer
samples were returned. Extra elements would contain uninitialised memory.