Vad är nytt för utvecklare

GNOME 2.14-utvecklarplattformen tillhandahåller en stabil grund för oberoende programvaruutvecklare för att skapa tredjepartsprogram. GNOME och dess plattform är licensierad för att tillåta skapandet av både fria och proprietära programvaror som kan köra ovanpå GNOME.

Bibliotek i GNOME-plattformen är garanterade att vara API- och ABI-stabila för resten av utgivningsserien GNOME 2.x. Bibliotek som ingår i GNOME-skrivbordet har inte denna garanti, men de flesta förblir konsistenta från utgåva till utgåva.

3.1. GSlice

Från och med GLib 2.10 ersätter GSlice-allokatorn de äldre API:erna GMemChunk och GTrashStacks som är tillgängliga i GLib. GSlice är mycket lik kärnans slab-allokator och erbjuder en snabb, minneseffektiv allokering av små strukturer (exempelvis GList-element, GtWindow-strukturer). GSlice har heller inga av de långsamma låsningar som GMemChunk gjorde, vilket gör den mycket snabbare i flertrådade program.

Figur 21Prestanda för minnesallokatorn där allokering och frigörning av 1 miljon GList-element i 1 (röd), 5 (gul), 10 (grön) och 20 (blå) trådar.

GMemChunk har blivit återimplementerad för att transparent använda GSlice, men API:et GMemChunk ska anses som utfasat.

Använd anropet g_slice_new (MyStructure);, som kommer att returnera en pekare (ptr), för att allokera minne med GSlice-allokeraren. Använd funktionen g_slice_free (MyStructure, ptr); för att allokera minne med GSlice-allokeraren.

GSlice använder en skalbar, lokalt trådad cache av delar i olika storlekar. För stora minneskrav kan GSlice transparent och automatiskt använda allokatorn g_malloc åt dig, så att utvecklarna inte behöver välja den mest effektiva allokatorn själva.

3.2. Tjänsteregistrering

Den senaste versionen av GNOME erbjuder nu ett sätt för utvecklare att registrera sina program för att startas upp automatiskt när GNOME startar. För att göra detta behöver du endast installera en .desktop-fil i $prefix/share/gnome/autostart/, /etc/xdg/autostart/ eller ~/.config/autostart/. Om du vill installera en tjänst men inaktivera den som standard, kan du lägga till egenskapen X-GNOME-autostart-enabled = False.

Det finns vissa fallgropar vid registrering av tjänster på detta sätt:

  • Program som registrerar sig själva med sessionen på något annat sätt (exempelvis nautilus, gnome-panel, vino) bör inte även registrera sig själva på detta sätt.
  • Sessionshanterade program kommer inte att hanteras på ett bra sätt, så se till att du skickar med flaggan --sm-disable på din Kör-rad.