Product SiteDocumentation Site

4. Modificaciones en Fedora para desarrolladores

4.1. Repaso sobre el Desarrollo

Fedora incluye un amplio rango de herramientas para el desarrollo de software en todos los lenguajes de programación populares. Esta sección resalta algunas de las características nuevas en Fedora 14.

4.1.1. Nuevo Lenguaje de Programación

Fedora 14 introduce el soporte para D, un lenguaje de programación de sistemas que combina el poder y la alta performance del C y C++ con la productividad del programador de lenguajes modernos como Ruby y Python.
Para más detalle, lea en El Lenguaje de Programación D.

4.1.2. Soporte para GNUStep

El entorno de desarrollo GNUstep llega a Fedora, permitiendo el desarrollo de aplicaciones multiplataforma sobre Fedora usando los APIs y herramientas de Cocoa (antes llamado NeXTSTEP/OpenStep). El lenguaje de desarrollo principal de GNUstep es Objective-C, pero no está limitado solamente a ese.

4.1.3. Otras mejoras

  • Actualiza los lenguajes Python, Erlang y Perl y los entornos de desarrollo Netbeans y Eclipse.
  • El depurador gdb fue extendido con nuevos comandos que facilitan rastrear y corregir uso de memoria extensivo en programas y bibliotecas, así como un índice que acelera mucho la depuración.
Estas características completan un conjunto de herramientas de desarrollo que extienden las posibilidades para los desarrolladores. Para conocer la lista completa con los cientos de actualizaciones realizadas a los componentes de desarrollo, consulte las Notas técnicas de Fedora 14 en http://docs.fedoraproject.org.

4.2. Tiempo de ejecución

4.2.1. boost

Las biblioteca C++ boost se actualizaron a la versión 4.4. que incluye numerosos cambios. Para los detalles, vea sus notas del lanzamiento:
Algunas características claves incluyen a las nuevas bibliotecas de ML2 FSMs, Polygons, Factory y adaptadores Forward, y una biblioteca UUID. Las bibliotecas existentes fueron actualizadas con muchas características nuevas, así como mejoras en la performance.

4.2.2. libjpeg-turbo

La biblioteca libjpeg fue reemplazada por libjpeg-turbo que tiene elmismo API/ABI, perl al menos dos veces más rápida en todas las arquitecturas principales, y cerca del 25% más rápida en arquitecturas menos conocidas. Para más detalles vea libjpeg-turbo, en la wiki de Fedora.

4.3. Development Tools

4.3.1. Lenguaje de Programación D

D es un lenguaje de programación de sistemas. Se concentra en combinar el poder y la alta performance de C y C++ con la productividad del programador de lenguajes modernos como Ruby y Python. El lenguaje D es tipado estáticamente y compila directamente a código de máquina. Es multiparadigma, dando soporte a muchos estilos de programación: imperativo, orientado a objetos y metaprogramación. Es un miembro de la familia de sintaxis del C, y su apariencia es similar al C++.
  • Compilador D LLVM
    LDC es un compilador para el lenguaje de programación D. Está basado en el último frontend de DMD y usa LLVM como backend. LLVM provee un backend moderno y rápido para generación de código de alta calidad.
  • La biblioteca
    Tango es una biblioteca de software de código abierto multiplataforma, escrita en el lenguaje de programación D para programadores de D. Está estructurado como una biblioteca comprensiva y cohesiva para uso de propósito genera, y tiene soporte de un número creciente de entusiastas de D reconocidos. La disponibilidad de documentación sólida y extensiva representa un factor principal en la accesibilidad de la biblioteca, y así este proyecto es más sobre la producción de documentación como también sobre la funcionalidad de primer nivel.
Para más información:

4.3.2. python

La pila del sistema python 2 ha sido actualizada a 2.7. Para una lista de los cambios vea lo Qué hay de nuevo en 2.7.
4.3.2.1. Notas: PyCObject y los avisos
Python provee varios APIs para usar en módulos de extensión de C. Uno de estos APIs, PyCObject, se hizo obsoleto en Python 2.7, pero hay un número de módulos clave que todavía no han sido portados para su reemplazo.
Por defecto, los avisos de obsolescencia son ignorados, por lo que esto no causará problemas.
Sin embargo, si la configuración de avisos estándares son modificados, puede observar problemas con estos módulos. En particular, si los avisos se pusieron a "error", es posible hacer que el intérprete Python aborte o aún haga segfault cuando importe estos módulos.
Si necesita habilitar error-for-warnings, por favor también agrege una anulación para que PendingDeprecationWarning sea simplemente registrada en vez de lanzar una excepción:
>>> import warnings
>>> warnings.simplefilter('error')
>>> warnings.simplefilter('default', PendingDeprecationWarning)

4.3.3. python-migrate

python-migrate fue actualizada a la versión 0.6. El soporte para SQLAlchemy 0.6 y bases de datos Firebird, plantillas personalizadas y uso de registrado de python están entre las innumerables características. Esta versión nueva introduce también cambios incompatibles hacia atrás:
  • api.test() y las funciones de comparación de esquemas ahora aceptan URL como el primer parámetro y el repositorio como el segundo.
  • python upgrade/downgrade scripts do not import migrate_engine magically, but receive engine as the only parameter to function (eg. def upgrade(migrate_engine):)
  • Column.alter ya no acepta current_name, sino que extrae el nombre desde la columna anterior.
Para una lista completa de los cambios, consulte el changelog

4.3.4. Erlang

Hay una versión nueva de Erlang/OTP disponible en Fedora 14. Para detalles, vea Erlang R14, en la wiki de Fedora.

4.3.5. gdb

gdb has been enhanced to remove the unncecessary indices from the .debug files, and will replace them with an index that greatly speeds up gdb.
El depurador gdb fue extendido para facilitar el rastreo y corrección de uso excesivo de memoria en programas y bibliotecas. Esta funcionalidad fue creada por el contribuidor de Fedora David Malcolm, y creemos que solamente está disponible para Fedora 14.
Para más información, vea el Indice Gdb, en la wiki de Fedora.

4.3.6. GNUstep

Esta característica ofrece la posibilidad de crear aplicaciones GNUstep en Fedora. GNUstep es una implementación de código abierto de Nextstep. Provee un marco de trabajo base en modo gráfico del lenguaje de programación Objective-C.
El lenguaje de programación Objective-C es parte de la colección de compiladores de GNU (gcc).
Una lista de las aplicaciones basadas en GNUstep se puede encontrar en Lista de aplicaciones GNUstep.
Se puede encontrar una introducción detallada al proyecto GNUstep en Introducción a GNUstep.

4.3.7. perl

Los cambios notables en perl 5.12 incluyen a:
  • Perl ahora conforma mucho mejor al estándar Unicode. Adicionalmente, este lanzamiento incluye una actualización a la versión 5.2 del estándar.
  • Los APIs experimentales nuevos permiten a los desarrolladores extender Perl con "pluggable" palabras clave y sintaxis.
  • Perl tiene ahora un mejor sentido del tiempo y le podrá mantener correctamente fechas mayores a la barrera del año 2038 ("Y2038").
  • La nueva sintaxis permite a los desarrolladores especificar los números de versión de paquete directamente en las sentencias "package".
  • Perl ahora por defecto avisa al usuario acerca del uso de características obsoletas.
Perl 5.12.x tiene numerosas características nuevas, optimizaciones y correcciones de errores. Puede encontrar una lista completa de estos cambios en la web en:

4.3.8. rakudo

Fedora viene con Rakudo Perl, una implementación de la especificación 6 de Perl basada en la máquina virtual Parrot, que permite a los desarrolladores escribir aplicaciones nuevas o portar las existentes a Perl 6. Para instalar rakudo, use la herramienta Añadir/Quitar software o ejecute:su -c 'yum install rakudo' Para información sobre las opciones de la línea de comando ejecute: man perl6man rakudo
Para más información, vea Característica en Fedora 14: Rakudo * .

4.3.9. depurador de bash

The Lisp sources for the emacs bash debugger, emacs-bashdb-el are now included in Fedora. The debugger has been upgraded to version 4.1_0.4.

4.3.10. Pyjamas

pyjamas es nuevo en Fedora 14, y es una plataforma de desarrollo de aplicación rica en internet, para la web y para el escritorio. Lea sobre estas nuevas capacidades en el sitio web pyjs.org.

4.4. GCC

4.4.1. gcc

Fedora 14 incluye la versión 4.5 de gcc y la variedad de compiladores que dependen de gcc. Los detalles completos de los cambios los puede consultar en el Registro de Cambios, de los que se destacan los siguientes.
4.4.1.1. Soporte y características obsoletas
Los siguientes ports para sistemas individuales en arquitecturas particulares se volvieron obsoletas:
  • versiones IRIX previas a la 6.5 (mips-sgi-irix5*, mips-sgi-irix6.[0-4])
  • Solaris 7 (*-*-solaris2.7)
  • versiones Tru64 UNIX anteriores a la V5.1 (alpha*-dec-osf4*, alpha-dec-osf5.0*)
  • Los detalles sobre este tema en IRIX, Solaris 7, y Tru64 UNIX las encontrará en el anuncio.
  • Soporte para la arquitectura clásica POWER implementada en los procesadores RIOS original y RIOS2 de la línea RS/600 de productos IBM se hizo obsoleta en el port de rs6000. Esto no afecta la nueva generación de código para arquitecturas Power y PowerPC.
El soporte también fue eliminado para un número de características obsoletas en 4.4.

Se redujo la performance según C99

En destinos X86, el código que tiene cálculos de punto flotante pueden correr significativamente más lento cuando se compilan con GCC 4.5 en modo conforme a C99, de lo que lo hacían con versiones anteriores de GCC. Esto se debe a la conformidad más estricta con el estándar del compilador, y se puede evitar usando la opción -fexcess-precision=fast.

4.4.2. Mejoras al optimizador

  • La opción -save-temps tiene ahora un argumento opciona. Las opciones -save-temps y -save-temps=cwd escriben a archivos temporales el el directorio actual basado en el archivo fuente original. Las opción -save-temps=obj escribirá los archivos en el directorio especificado con la opción -o, y los nombres de archivos intermedio están basados en el archivo de salida.
  • Los vuelcos de depuración se crean ahora en el mismo directorio del archivo objeto en vez de hacerlo en el directorio actual.
  • Se agregó un nuevo optimizador en el tiempo de encadenamiento (-flto). Cuando se use esta opción, GCC genera una representación en código byte de cada archivo de entrada y lo escribe a secciones especiales del ELF en cada archivo objeto.
  • El paso de paralelización automático fue mejorado para dar soporte a la paralelización de bucles más externos.
  • GCC ahora optimiza el código de manejo de excepción.
Vaya a la página de cambios de arriba para más detalles sobre estas y otras optimizaciones.

4.4.3. Mejoras específicas a los lenguajes.

Hay características nuevas específicas a los lenguajes Ada, C, C++, Fortran y Java.

4.4.4. Nuevos destinos

Hay nuevos procesadores destino dentro de la familias de procesadores AIX, ARM, AVR, IA32, M68K, MeP, MIPS, RS/6000 y RX.

4.4.5. Cambios en la Instalación

El movimiento a autotools resultó en que se cambia a directorios en donde se encuentran los archivos. Para detalles, como en todos cambios los anteriores, vea la página de cambios.

4.5. Java

4.5.1. NetBeans

NetBeans IDE 6.9 es una actualización importante del NetBeans IDE 6.8.
NetBeans IDE 6.9 introduce la interoperabilidad OSGi para las aplicaciones de la Plataforma NetBeans y el soporte para el desarrollo OSGi viene con Maven; soporte para JavaFX SDK 1.3 con el nuevo compositor JavaFX, una herramienta de diseño visual para el diseño visual de aplicaciones gráficas JavaFX, similar al constructor de interfases gráficas Swing para aplicaciones Java SE, también soporte para el marco de trabajo PHP Zend y Ruby on Rails 3.0; así como mejoras al Editor Java, al Depurador Java, el trazador de cuestiones y más.

4.5.2. yydebug

yydebug, un depurador para código analizador sintáctico generado por jay es nuevo en Fedora. Para los detalles completos lea yyDebug de cs.rit.edu.

4.6. Haskell

GHC fue actualizado a 6.12.3, y haskell-platform a la versión estable 2010.2.0.0.
Algunas mejoras adicionales se realizaron a ghc-rpm-macros y cabal2spec, que incluyen la mezcla de los subpaquetes -doc con -devel.
La mejor forma de instalar el soporte para Haskell en Fedora es instalar el grupo yum Haskell desde Anaconda o YUM.
 yum install @haskell

4.7. Eclipse

eclipse fue actualizado a la versión Helios. Entre las nuevas características se encuentra un mejor soporte para C/C++, un almacén de aplicaciones, soporte para git, plataforma de herramientas web, un soporte mejorado de JavaScript, y mucho más.
Para mayor información:

4.8. Kernel

Fedora 14 incluye la versión 2.6.35 del kernel Linux