2.4.0

08/09/2010

Release version 2.4.0 of OML

100%

33 closed (100%)   0 open (0%)

OML2 v2.4.0

We are proud to announce the release of OML2 version 2.4.0!

Release date: 2010-09-08

This release includes several new features and fixes many bugs, and maintains source and binary backwards compatibility with the OML 2.3.x release series.

What's new

  • OML now supports four new integer types:
    • OML_INT32_VALUE
    • OML_UINT32_VALUE
    • OML_INT64_VALUE
    • OML_UINT64_VALUE
The OML_LONG_VALUE is also now deprecated because it changes width between 32-bit and 64-bit x86 platforms. New applications should use one of the four types above for integers. OML_LONG_VALUE will remain supported in OML2; we plan to remove it with the future release of OML3. The behaviour of OML_LONG_VALUE has changed slightly (for the better) on 64-bit platforms. Previously it would result in errors in values transmitted over the binary protocol, which only reserves space for 32 bits for OML_LONG_VALUES. With this release, OML_LONG_VALUES are automatically clamped to [INT_MIN, INT_MAX] by the client library, liboml2, and internally mapped to OML_INT32_VALUE on the server. This should result in greater portability for older applications.
  • We added three new filters:
    • last -- like first, but takes the last sample and throws away the rest;
    • sum -- computes the sum of each sample set; and
    • delta -- computes the change in the input value over the sample set.
Thanks to Olivier Mehani for contributing this code. For more details on these filters, try man liboml2.conf or go here.
  • The OML client and server now have improved checks for the names of applications, measurement points, and measurement point fields. This removes a large class of bugs encountered when trying to parse the network protocol, and in setting up the experiment database on the server. Names must now conform to C identifier rules: they must consist of alphanumeric characters and underscores, and must start with a leading letter or underscore.
  • The SQLite backend now uses transactions, resulting in a significant increase in performance.
  • The OML binary protocol writer (client) and parser (server) have been extensively refactored and should now be much more robust.
  • OML now has a unit test suite for testing critical subsystems, which we run on 32-bit and 64-bit x86 Linux as well as Mac OS X to detect portability issues. If you want to port OML to a different platform, please run the unit test suite ('make check') as a first check for portability problems. We are always interested to hear bug reports and we accept patches via git; send email to our mailing list.
  • We now test oml2-server under Valgrind. This uncovered numerous memory leaks, which we fixed.
  • The oml2-proxy-server has been substantially re-written and should be much more robust and correct.
  • We have found and fixed numerous server segfaults.
  • The server connection handling was reworked to avoid losing measurements at the end of the measurement stream.
  • Various other bugs have been fixed; see our issue tracker
  • The OML Applications have been split off into a separate project and repository. We are releasing a new version of the applications simultaneously that link against this new version of OML.
  • OML now has a comprehensive set of UNIX man pages for the client API, the servers, and how to run and configure OML applications. They are included in our Ubuntu packages and also available in HTML form; see the "Reference Manual" section under the Documentation wiki page.

See the Release Notes for more details of what's new and improved.

Time tracking
Estimated time 198.00 hours
Issues by
apps

2/2

build

1/1

client

6/6

client+server

5/5

doc

6/6

packaging

1/1

proxy-server

1/1

server

7/7

tools

2/2