What's New For Developers
The GNOME 2.14 Developers' Platform provides a stable base for independent software developers to create third-party applications. GNOME and its platform are licensed to allow the creation of both free and proprietary software to run on top of GNOME.
Libraries in the GNOME Platform are guaranteed to be API and ABI stable for the rest of the GNOME 2.x release series. Libraries in the GNOME Desktop do not have this guarantee, but most remain consistent from release to release.
- 3.1. GSlice
- 3.2. Service Registration
3.1. GSlice
As of GLib 2.10, the GSlice allocator replaces the older GMemChunk and GTrashStacks APIs available in GLib. GSlice is very similar to the kernel slab allocator and allows for fast, memory-efficient allocation of small structures (e.g. GList elements, GtkWindow structures). GSlice also has none of the locking overhead of GMemChunk, which makes it much faster in multithreaded applications.

GMemChunk has been reimplemented to transparently use GSlice, but the GMemChunk API is considered deprecated.
To allocate memory with the GSlice allocator, use the call g_slice_new (MyStructure);, which will return a pointer (ptr). To free memory allocated with GSlice, use the function g_slice_free (MyStructure, ptr);.
GSlice uses a scalable, thread-local cache of slices of different sizes. For large memory requirements, GSlice will transparently and automatically use the g_malloc allocator for you, so developers do not have to choose the most efficient allocator themselves.
3.2. Service Registration
The latest GNOME now offers a way for developers to register their applications to be started up automatically when GNOME starts. To do this, you only need to install a .desktop file in $prefix/share/gnome/autostart/, /etc/xdg/autostart/ or ~/.config/autostart/. If you want to install a service, but disable it by default, you can add the property X-GNOME-autostart-enabled = False.
There are some caveats to registering services in this way:
- Applications that register themselves with the session in some other way (e.g. nautilus, gnome-panel, vino) should not also register themselves in this way.
- Session managed applications will not be handled cleanly, so ensure that you pass the --sm-disable flag on your Exec line.