Nouveautés pour les développeurs

La plate-forme de développement GNOME 2.14 fournit une base stable aux développeurs de logiciels pour créer des applications tierces. La licence de GNOME et de sa plate-forme permet à la fois la création de logiciels libres et de logiciels propriétaires fonctionnant sous GNOME.

Les bibliothèques de la plate-forme GNOME ont une garantie de rétro-compatibilité et de stabilité API et ABI pour toutes les versions 2.x de GNOME. Les bibliothèques GNOME qui ne font pas partie de la plate-forme n'ont pas cette garantie, mais la plupart d'entre elles garde une compatibilité de version en version.

III.I. GSlice

Depuis la version 2.10 de GLib, l'allocateur GSlice remplace les précédentes APIs GMemChunk et GTrashStacks disponible dans GLib. GSlice est très simulaire à l'allocateur par bloc du noyau et permet des allocations rapides et efficaces en mémoire de petites structures (par exemple, les éléments GList, les structures GtkWindow). GSlice n'a en outre pas la surcharge liée au verrouillage de GMemChunk, ce qui le rend plus rapide pour les applications utilisant plusieurs threads.

Figure 21 Performance de l'allocateur mémoire, allouant et libèrant un million d'éléments GList dans 1 (rouge), 5 (jaune), 10 (vert) et 20 (bleu) threads.

GMemChunk a été réimplémenté pour utiliser GSlice de manière transparente, mais l'API GMemChunk est considérée comme dépréciée.

Pour allouer de la mémoire avec l'allocateur GSlice, utilisez l'appel g_slice_new (MyStructure);, qui retournera un pointeur (ptr). Pour libérer de la mémoire allouée avec GSlice, utilisez la fonction g_slice_free (MyStructure, ptr);.

GSlice utilise un cache, local à chaque thread et qui passe bien à l'échelle, de tranches de différentes tailles. Pour des besoins importants en mémoire, GSlice utilisera de manière transparente et automatique l'allocateur g_malloc pour vous, de telle sorte que les développeurs n'ont pas à choisir eux-mêmes l'allocateur le plus efficace.

III.II. Enregistrement des services

La dernière version de GNOME permet aux développeurs d'enregistrer leurs applications pour qu'elles démarrent automatiquement au démarrage de GNOME. Pour cela, vous avez seulement besoin d'installer un fichier .desktop dans $prefix/share/gnome/autostart/, /etc/xdg/autostart/ ou ~/.config/autostart/. Si vous voulez installer un service et le désactiver par défaut, il suffit d'ajouter la propriété X-GNOME-autostart-enabled = False dans le fichier.

Quelques précautions à suivre pour les services s'enregistrant ainsi :

  • les applications qui s'enregistrent elles-mêmes dans la session d'une autre façon (par exemple, nautilus, gnome-panel, vino) ne doivent pas s'enregistrer de cette façon ;
  • les applications gérées par le gestionnaire de session ne seront pas gérées correctement. Prenez soin d'utiliser l'option --sm-disable dans le champ Exec du fichier .desktop.