Novedades para los desarrolladores

La plataforma para desarrolladores de Gnome 2.14 proporciona una base estable para desarrolladores de software independientes que crean aplicaciones para terceros. Gnome y su plataforma tienen una licencia que permite la creación tanto de software libre como propietario y su ejecución en Gnome.

Las bibliotecas de la Plataforma Gnome tienen garantizada la estabilidad de su API y de su ABI durante el resto de la serie de lanzamientos 2.x. Las bibliotecas del Escritorio Gnome no tienen esta garantía, pero la mayoría mantienen la consistencia de lanzamiento en lanzamiento.

3.1. GSlice

Como en GLib 2.10, el asignador de memoria GSlice reemplaza las antiguas API GMemChunk y GTrashStacks disponibles en GLib. GSlice es muy parecido al asignador slab del kernel y permite asignaciones rápidas y eficientes en uso de memoria para pequeñas estructuras (ej: elementos GList, estructuras GtkWindow). Además, GSlice no sufre el «locking overhead» de GMemChunk, lo que lo hace mucho más rápido en aplicaciones multihilo.

Figura 21Rendimiento del asignador de memoria reservando y liberando 1 millón de elementos GList usando un hilo (rojo), 5 (amarillo), 10 (verde) y 20 (azul).

GMemChunk ha sido reimplementado para usar GSlice de forma transparente, pero su API se considera obsoleta.

Para reservar memoria con el asignador GSlice, utilice la llamada g_slice_new (MyStructure);, que devolverá un puntero (ptr). Para liberar la memoria reservada con GSlice, use la función g_slice_free (MyStructure, ptr);.

GSlice utiliza una caché escalable de divisiones de distintos tamaños. Para requisitos de memoria elevados, GSlice usa transparente y automáticamente, el asignador g_malloc por usted, de esta manera los desarrolladores no tienen que elegir el asignador más eficiente por sí mismos.

3.2. Registro de servicios

El último Gnome ofrece a los desarrolladores una forma de registrar sus aplicaciones para ser iniciadas automáticamente a la vez que Gnome. Para conseguir esto, sólo necesita instalar un archivo .desktop en $prefix/share/gnome/autostart/, /etc/xdg/autostart/ o ~/.config/autostart/. Si desea instalar un servicio, pero deshabilitado de forma predeterminada, puede añadir la propiedad X-GNOME-autostart-enabled = False.

Algunas advertencias al registrar servicios de esta forma:

  • Las aplicaciones que se registran en la sesión usando otro método (ej: nautilus, gnome-panel, vino) no deberían registrarse de esta nueva forma.
  • Las aplicaciones controladas por la sesión no se gestionarán correctamente, así que asegúrese de pasar la opción --sm-disable en su línea Exec.