LWN.net Logo

[ANNOUNCE] Libgee 0.5.0 - GObject collection library

From:  Didier 'Ptitjes' <ptitjes-AT-free.fr>
To:  libgee-list <libgee-list-AT-gnome.org>
Subject:  [ANNOUNCE] Libgee 0.5.0 - GObject collection library
Date:  Mon, 28 Sep 2009 21:10:20 +0200
Message-ID:  <4AC10A1C.2080504@free.fr>
Cc:  gnome-announce-list-AT-gnome.org, vala-list <vala-list-AT-gnome.org>
Archive-link:  Article, Thread

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<G> interface
    * Implementations provides defaults when constructed without function
    * ReadOnly* made internal in favor of a `read_only_view` properties
    * Iterator<G> is now mutable and resettable
    * Introduction of BidirIterator<G> bidirectional iterators
    * List<G>.list_iterator () returns a specialized ListIterator<G>
    * Various API contracts clarifications and enhancements
    * Introduce List<G>.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

_______________________________________________
gnome-announce-list mailing list
gnome-announce-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gnome-announce-list



(Log in to post comments)

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds