Lunchbox 1.8.0

RelNotes.md

00001 Release Notes {#RelNotes}
00002 ============
00003 
00004 [TOC]
00005 
00006 # Introduction {#Introduction}
00007 
00008 Welcome to Lunchbox, a C++ library for multi-threaded programming.
00009 Lunchbox 1.8 adds major new features, most notably runtime-loadable
00010 compression plugins and an UnorderedIntervalSet container.
00011 
00012 Lunchbox 1.8 is a feature release based on the 1.6 Lunchbox API. It is
00013 intended for all application developers creating high-preformance
00014 multi-threaded programs. Lunchbox 1.8 can be retrieved by downloading
00015 the
00016 [source code](http://www.equalizergraphics.com/downloads/Lunchbox-1.8.0.tar.gz)
00017 or any of the
00018 [precompiled packages](http://www.equalizergraphics.com/downloads/major.html).
00019 
00020 ## Features {#Features}
00021 
00022 Lunchbox provides the following major features to facilitate the
00023 development and deployment of multi-threaded applications:
00024 
00025 * OS Abstraction: Utility classes abstracting common operating systems
00026   features, e.g., threads, locks, memory maps, shared library loading
00027   and condition variables.
00028 * High-Performance Primitives: Thread-safe utilities tuned for
00029   performance, e.g., atomic variables, spin locks and lock-free
00030   containers.
00031 * Utility classes: Helper primitives which are not in the standard
00032   library, e.g., logging, pools and random number generation.
00033 
00034 # New in this release {#New}
00035 
00036 Lunchbox 1.8 contains the following features, enhancements, bug fixes
00037 and documentation changes over Lunchbox 1.6:
00038 
00039 ## New Features {#NewFeatures}
00040 
00041 * Runtime-loadable compression and CPU-GPU transfer plugins
00042   ([18](https://github.com/Eyescale/Lunchbox/issues/18))
00043 * UnorderedIntervalSet container
00044 
00045 ## Enhancements {#Enhancements}
00046 
00047 * Improved DSO, MemoryMap, MTQueue, uint128_t, UUID and LFVector APIs
00048 * searchDirectory uses boost::regex for file matching
00049 * [Hide pthread.h from API](https://github.com/Eyescale/Lunchbox/issues/26)
00050 
00051 ## Optimizations {#Optimizations}
00052 
00053 * Increased speed and compression ratio for
00054   [updated snappy compressor](https://github.com/Eyescale/Lunchbox/issues/19)
00055 * [Equalizer#140:](https://github.com/Eyescale/Equalizer/issues/140) Add
00056   LZ-variant byte compressors
00057 
00058 ## Documentation {#Documentation}
00059 
00060 The following documentation has been added or substantially improved
00061 since the last release:
00062 
00063 * [API documentation](http://eyescale.github.io/Lunchbox-1.8/index.html)
00064   of the public Lunchbox API
00065 
00066 ## Bug Fixes {#Fixes}
00067 
00068 Lunchbox 1.8 includes various bugfixes over the 1.6 release, including
00069 the following:
00070 
00071 * [22:](https://github.com/Eyescale/Lunchbox/issues/22) LFVector
00072   iterators with non-default number of slots do not work
00073 * [9:](https://github.com/Eyescale/Lunchbox/issues/9) Memory leak in
00074   Thread::setAffinity
00075 
00076 ## Known Bugs {#Bugs}
00077 
00078 The following bugs were known at release time. Please file a
00079 [Bug Report](https://github.com/Eyescale/Lunchbox/issues) if you find
00080 any other issue with this release.
00081 
00082 * [6:](https://github.com/Eyescale/Lunchbox/issues/6)
00083 Condition::timedWait does not wait on early RHEL 6.1 versions
00084 
00085 # About {#About}
00086 
00087 Lunchbox is a cross-platform library, designed to run on any modern
00088 operating system, including all Unix variants and the Windows operating
00089 system. Lunchbox uses CMake to create a platform-specific build
00090 environment. The following platforms and build environments are tested:
00091 
00092 * Linux: Ubuntu 12.04, 12.10, 13.04, RHEL 6 (Makefile, i386, x64)
00093 * Windows: 7 (Visual Studio 2008, i386, x64)
00094 * Mac OS X: 10.8 (Makefile, XCode, i386, x64)
00095 
00096 The
00097 [API documentation](http://eyescale.github.io/Lunchbox-1.8/index.html)
00098 can be found on [eyescale.github.io](http://eyescale.github.io/). As
00099 with any open source project, the available source code, in particular
00100 the [unit tests](https://github.com/Eyescale/Lunchbox/tree/1.8/tests)
00101 provide a reference for developing applications.
00102 
00103 Technical questions can be posted to the Equalizer
00104   [Developer Mailing List](http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev),
00105   or directly to
00106   [info@equalizergraphics.com](mailto:info@equalizergraphics.com?subject=Lunchbox%20question).
00107 
00108 Commercial support, custom software development and porting services are
00109 available from [Eyescale](http://www.eyescale.ch). Please contact
00110 [info@eyescale.ch](mailto:info@eyescale.ch?subject=Lunchbox%20support)
00111 for further information.
00112 
00113 # Errata