Product SiteDocumentation Site

4. Canvis en Fedora per als desenvolupadors

4.1. Resum del desenvolupament

Fedora inclou un ampli ventall d'eines per al desenvolupament de programari per a tots els llenguatges de programació més difosos. Aquesta secció ressalta algunes de las noves característiques en Fedora 14.

4.1.1. Nous llenguatges de programació

Fedora 14 introdueix el suport per a D, un llenguatge de programació de sistemes que combina la potència i el rendiment elevat de C/C++ amb la programació productiva dels llenguatges moderns com Ruby i Python.
Per a més detalls aneu al Llenguatge de programació D.

4.1.2. Suport per a GNUStep

L'entorn de desenvolupament de GNUstep arriba a Fedora, permetent el desenvolupament d'aplicacions multi-plataforma damunt de Fedora mitjançant les APIs i les eines de Cocoa (anteriorment anomenades NeXTSTEP/OpenStep). El llenguatge de desenvolupament principal de GNUstep és Objective-C, però no està limitat únicament a aquest llenguatge.

4.1.3. Altres millores

  • Actualitza els llenguatges Python, Erlang i Perl i els entorns de desenvolupament de Netbeans i d'Eclipse.
  • S'ha ampliat el depurador gdb amb noves comandes que faciliten el rastreig i la correcció de la utilització excessiva de memòria en programes i en biblioteques, així com una indexació que accelera la depuració.
Aquestes funcionalitats completen un conjunt d'eines de desenvolupament que amplien les possibilitats per als desenvolupadors. Per a conèixer el llistat amb els centenars d'actualitzacions realitzades als components del desenvolupament, llegiu les Notes tècniques de Fedora 14 a http://docs.fedoraproject.org.

4.2. Entorn d'execució

4.2.1. boost

La biblioteca boost de C++ s'ha actualitzat a la versió 4.4. la qual inclou nombrosos canvis. Para a visualitzar els detalles, consulteu les notes del seu llançament:
Algunes funcionalitats clau inclouen les noves biblioteques per a UML2 com FSMs, Polygons, adaptadors Factory i Forward, i una biblioteca UUID. Les biblioteques que ja existien s'han actualitzat moltes funcionalitats noves, així com millores en el seu rendiment.

4.2.2. libjpeg-turbo

La biblioteca libjpeg s'ha substituït per libjpeg-turbo que té el mateix API/ABI, no obstant és aproximadament dos cops més ràpida en totes les principals arquitectures, i al voltant del 25% més ràpida en arquitectures menys conegudes. per a més detalls aneu a libjpeg-turbo, en la wiki de Fedora.

4.3. Eines per al desenvolupament

4.3.1. Llenguatge de programació D

D és un llenguatge de programació de sistemes. Està enfocat en la combinació de la potència i l'alt rendiment de C i C++ amb la programació productiva dels llenguatges moderns com Ruby i Python. El llenguatge D és de tipus estàtic i es compila directament a codi de màquina. És multi-paradigma, proporcionant suport a diversos estils de programació: imperatiu, oo i meta-programació. És membre de la família de sintaxis de C, i la seva aparença és semblant a C++.
  • Compilador D-LLVM
    LDC és un compilador per al llenguatge de programació D. Està basat en l'últim frontend de DMD i utilitza LLVM com a backend. LLVM proporciona un backend modern i ràpid per a la generació de codi d'alta qualitat.
  • La biblioteca
    Tango és una biblioteca de programari de codi obert multi-plataforma, escrita amb el llenguatge de programació D per als programadors de D. Està estructurada com una biblioteca comprensiva i cohesiva per a un ús de propòsit general, estant suportada per a nombre creixent d'entusiastes reconeguts de D. La disponibilitat d'una documentació sòlida i extensa representa un dels factors principals per a l'accessibilitat de la biblioteca, d'aquesta manera el projecte es centra més en la producció de d'una bona documentació per damunt de la funcionalitat en un primer pla.
Per a més informació:

4.3.2. python

La versió de la pila del sistema de python 2 s'ha actualitzat a la versió 2.7. Per al llistat complet dels canvis, llegiu Novetats en la versió 2.7.
4.3.2.1. Nota: PyCObject i les advertències
Python proporciona diverses APIs per a la utilització amb mòduls d'extensions de C. Ua d'aquestes APIs, PyCObject, va considerar-se com a obsoleta en la versió de Python 2.7, no obstant hi ha un número de mòduls clau que encara no han set portats per a la seva substitució.
Per defecte, s'ignoren les advertències d'obsolets, per aquest motiu no provocarà cap problema.
Tanmateix, si la es sobrecarrega la configuració per a les advertències estàndards, es poden observar problemes amb aquests mòduls. De forma més precisa, si les advertències s'han establert a «error», es possible fer que l'intèrpret de Python avorti encara i quan el segfault importi aquests mòduls.
Si necessiteu habilitar error-for-warnings, afegiu una sobrecàrrega per a PendingDeprecationWarning que registri simplement un cop quan es llanci una excepció:
>>> import warnings
>>> warnings.simplefilter('error')
>>> warnings.simplefilter('default', PendingDeprecationWarning)

4.3.3. python-migrate

La versió de python-migrate s'ha actualitzat a la versió 0.6. El suport per a SQLAlchemy 0.6 i per a les bases de dades de Firebird, pantilles personalitzades i la utilització de l'enregistrament en python es troben entre les noves funcionalitats. Aquesta versió ara també introdueix alguns canvis incompatibles amb versions prèvies:
  • api.test() i les funcions de comparació d'esquemes ara accepten URL com a primer paràmetre i com a segon el repositori.
  • els scripts d'actualització/desactualització de python no importen per art de màgia migrate_engine, si no que reben el motor com a únic paràmetre en la funció (per exemple. def upgrade(migrate_engine):)
  • Column.alter ja no acceptacurrent_name, extrau el nom de la columna antiga..
Per al llistat complet de canvis aneu al registre de canvis

4.3.4. Erlang

En Fedora 14 hi ha una versió nova disponible per a Erlang/OTP disponible. Per a més detalls, aneu a Erlang R14, en la wiki de Fedora.

4.3.5. gdb

gdb ha estat millorat per a eliminar els índexs innecessaris dels fitxxers .debug, i els substituirà amb un índex que accelerarà de forma significativa a gdb.
El depurador gdb ha estat ampliat amb noves comanes per al rastreig i la correcció de l'ús excessiu de memòria en programes i en biblioteques. Aquesta funcionalitat ha estat creada pel contribuïdor de Fedora David Malcolm, i creiem que està únicament disponible per a Fedora 14.
Per a més informació, llegiu la Indexació de Gdb, en la wiki de Fedora.

4.3.6. GNUstep

Aquesta funcionalitat proporciona la possibilitat de crear aplicacions GNUstep a Fedora. GNUstep és una implementació de codi obert de Nextstep. Proporciona la base d'un framework gràfic per al llenguatge de programació d'Objective-C.
El llenguatge de programació d'Objective-C forma part de la col·lecció de compiladors de GNU (gcc).
Podeu trobar un llistat d'aplicacions basades amb GNUstep al Llistat d'aplicacions de GNUstep.
Podeu trobar una introducció detallada al projecte GNUstep a Introducció a GNUstep.

4.3.7. perl

Canvis notables en la versió 5.12 de perl inclouen:
  • Ara perl està compleix millor l'estàndard d'Unicode. A demés, aquest llançament inclou l'actualització a la versió 5.2 de l'estàndard.
  • Les noves APIs experimentals permeten als desenvolupadors ampliar Perl amb paraules reservades «pluggable» i sintaxis.
  • Perl ara disposa d'un millor sentit temporal que us permetrà mantindre dates superiors a la frontera del 2038 ("Y2038").
  • Les noves sintaxis permeten als desenvolupadors especificar els números de les versions dels paquets directament en les sentències «package».
  • Perl ara de forma predetermina adverteix a l'usuari quant a la utilització de funcionalitats obsoletes.
El conjunt de versions de Perl 5.12.x disposa de moltes funcionalitats noves, optimitzacions i correccions d'errors. Podeu trobar un llistat dels canvis en la web de:

4.3.8. rakudo

Fedora ve amb Rakudo Perl, una implementació de l'especificació 6 de Perl basada amb la màquina virtual Parrot, que permet als desenvolupadors escriure noves aplicacions o portar les existents a Perl 6. Per a instal·lar rakudo, utilitzeu l'eina Afegeix/Suprimeix programari o bé executeu:su -c 'yum install rakudo' Per a més informació de les opcions de la línia de comandes executeu: man perl6man rakudo
Per a més informació, aneu a Funcionalitats en Fedora 14: Rakudo * .

4.3.9. depurador de bash

Les fonts de Lisp per al depurador bash d'emacs, emacs-bashdb-el, ara s'inclouen en Fedora. La versió del depurador s'ha actualitzat a la versió 4.1_0.4.

4.3.10. Pyjamas

pyjamas és una novetat en Fedora 14, és una plataforma de desenvolupament RIA (Rich Internet Application), tant per al web com per a escriptoris. Per a més informació quant a aquestes noves capacitats aneu al lloc web pyjs.org.

4.4. GCC

4.4.1. gcc

Fedora 14 inclou la versió 4.5 de gcc i la immensa varietat de compiladors que depenen de gcc. Els detalls complets dels canvis es poden consultar al Registre de canvis, dels quals en destaquem els següents.
4.4.1.1. Suport i característiques obsolets
Els ports per als següents sistemes individuals d'arquitectures concretes s'han convertit en obsoletes:
  • Versions d'IRIX anteriors a la versió 6.5 (mips-sgi-irix5*, mips-sgi-irix6.[0-4])
  • Solaris 7 (*-*-solaris2.7)
  • Versions de Tru64 UNIX anteriors a la versió V5.1 (alpha*-dec-osf4*, alpha-dec-osf5.0*)
  • Els detalls per a les versions obsoletes d'IRIX, de Solaris 7, i de Tru64 UNIX les podreu trobar en l'anunci.
  • El suport per a l'arquitectura classic de POWER implementada als processadors originals de RIOS i RIOS2 de la línia de productes RS/600 d'IBM es van convertir en obsolets en la port a rs6000. Això no afecta la nova generació d'arquitectures de Power i de PowerPC.
El suport també ha estat eliminat per a un número de funcionalitats obsoletes en la versió 4.4.

Rendiment reduït segons la norma C99

En objectius X86, el codi que conté operacions en punt flotant poden executar-se de forma significativament més lenta quan es compilen amb la versió 4.5 de GCC 4.5 amb la norma C99, en comparació amb el que succeia amb versions anteriors de GCC. Això es degut a la norma més estricta amb l'estàndard del compilador, que pot evitar-se utilitzant l'opció -fexcess-precision=fast.

4.4.2. Millores en l'optimitzador

  • L'opció -save-temps ara disposa d'un argument opcional. Les opcions -save-temps i -save-temps=cwd escriuen a fitxers temporals al directori actual basant-se amb el fitxers dels fonts original. L'opció -save-temps=obj escriurà els fitxers al directori que s'hagi especificat amb l'opció -o, els noms dels fitxers intermedis estan basats amb el fitxer de sortida.
  • Els bolcats de la depuració ara es creen al mateix directori del fitxer de l'objecte en lloc de fer-ho en l'actual directori.
  • S'ha afegit una nova optimització per al temps d'enllaçament (-flto). Quan s'utilitza aquesta opció, GCC genera una representació en codi binari per a cada fitxer d'entrada i escriu en ells seccions especials ELF en cada un dels fitxers d'objecte.
  • L'etapa de paralelització automàtica ha estat millorada per a suportar la paralelització de bucles intensius.
  • GCC ara optimitza el codi per al tractament d'excepcions.
Aneu a la pàgina superior amb els canvis per a més detalls per a aquestes i altres optimitzacions.

4.4.3. Millores específiques del llenguatge

Hi han noves funcionalitats específiques per al llenguatges d'Ada, C, C++, Fortran i Java.

4.4.4. Nous objectius

Hi han nous processadors per a les famílies de processadors d'AIX, ARM, AVR, IA32, M68K, MeP, MIPS, RS/6000 i RX.

4.4.5. Canvis en la instal·lació

El moviment a autotools ha provocat el canvi en alguns artefactes del directori on es trobaven localitzats. Per a més detalls, així com els anteriors citats,aneu a la pàgina dels canvis.

4.5. Java

4.5.1. NetBeans

L'IDE NetBeans 6.9 és una actualització major de l' IDE NetBeans 6.8.
L'IDE NetBeans 6.9 introdueix la interacció d'OSGi a les aplicacions de la Plataforma NetBeans, i el suport per al desenvolupament d'empaquetaments OSGi amb Maven; suport per a JavaFX SDK 1.3 amb el nou JavaFX Composer, una eina de disseny visual per al disseny visual d'aplicacions gràfiques JavaFX, semblant al constructor d'interfícies gràfiques de Swing per a les aplicacions de Java SE, també suport per al framework PHP de Zend, i Ruby on Rails 3.0; així com millores en l'editor de Java, el depurador de Java, el seguiment d'incidències, i d'altres.

4.5.2. yydebug

yydebug és una novetat en Fedora, és un depurador per a l'anàlisi sintàctic del codi generat per jay. Per al detalls complets aneu a yyDebug de cs.rit.edu.

4.6. Haskell

GHC s'ha actualitzat a la versió 6.12.3, i haskell-platform a la versió estable 2010.2.0.0.
S'han realitzat millores addicionals a ghc-rpm-macros i cabal2spec, que inclouen la combinació dels subpaquets -doc amb els -devel.
La forma més senzilla per a instal·lar Haskell a Fedora és instal·lar el conjunt Haskell de yum des d'Anaconda o des de YUM.
 yum install @haskell

4.7. Eclipse

eclipse s'ha actualitzat a la versió Helios. Entre les noves funcionalitats s'inclou un suport millorat per a C/C++, una app store, suport per a git, plataforma d'enes web, suport millorat per a JavaScript, i d'altres.
Per a més informació:

4.8. Nucli de Linux

Fedora 14 inclou la versió 2.6.35 del nucli de Linux.