news 28 Posted September 29, 2009 We are very pleased to announce version 0.5.0 of Libgee, the GObject collection library. Libgee 0.5.0 is now available for download at: http://download.gnome.org/sources/libgee/0.5/ Also please note that now Libgee has its own mailing-list http://mail.gnome.org/mailman/listinfo/libgee-list and its own #gee IRC channel. New in 0.5.0 ------------ * API changes * Introduce Functions hash, equal and compare function factory * Introduce Comparable interface * Implementations provides defaults when constructed without function * ReadOnly* made internal in favor of a `read_only_view` properties * Iterator is now mutable and resettable * Introduction of BidirIterator bidirectional iterators * List.list_iterator () returns a specialized ListIterator * Various API contracts clarifications and enhancements * Introduce List.sort () with TimSort implementation * Complete Map API rework * Introduce Queue and Deque interfaces * Introduce MultiSet and MultiMap interfaces (Ali Sabil) * Introduce SortedSet interface (Maciej Pietchotka) * New implementations * HashMultiSet and HashMultiMap (Ali Sabil) * TreeMultiSet and TreeMultiMap. * PriorityQueue * LinkedList now implements Deque * TreeSet now implements SortedSet (Maciej Pietchotka) * Infrastructure * New test framework and complete tests refactoring (Julien Peters) * New doc/ documentation directory (--enable-doc) * Test coverage analysis using lcov (--enable-coverage) * Basic benchmark framework and sort benchmark (--enable-benchmark) * Use silent rules by default for users of automake 1.11 * Code Quality * Many bug fixes * Many optimizations * Lots of additional documentation * Better overall encapsulation, public setters have been removed * Better test coverage (more than 90%) For more information about the 0.5.0 release, see: http://live.gnome.org/Libgee/NewAndNoteworthy-0.5 http://live.gnome.org/Libgee/Migration-0.5 Libgee is a collection library providing GObject-based interfaces and classes for commonly used data structures. Libgee provides the following interfaces: * Iterable o Collection + List + Set + MultiSet + Queue # Deque * Iterator * Map * MultiMap The ArrayList, HashSet, HashMap, HashMultiSet, HashMultiMap, LinkedList, PriorityQueue, TreeSet, TreeMap, TreeMultiSet, and TreeMultiMap classes provide a reasonable sample implementation of those interfaces. In addition, a set of abstract classes are provided to ease the implementation of new collections. Around that, the API provide means to retrieve read-only views, efficient sort algorithms, simple, bi-directional or index-based mutable iterators depending on the collection type. Libgee is written in Vala and can be used like any GObject-based C library. It's planned to provide bindings for further languages. More information about Vala is available at http://live.gnome.org/Libgee Didier 'Ptitjes' Villevalois _______________________________________________ Share this post Link to post