Product SiteDocumentation Site

4. Modifications dans Fedora pour les développeurs

4.1. Développement logiciel

Fedora contient une grande variété d'outils pour le développement logiciel dans tous les langages populaires. Cette section met en avant quelques-unes des nouveautés de Fedora 14.

4.1.1. Nouveau langage de programmation

Fedora 14 apporte la prise en charge du D, un langage de programmation alliant la puissance et les grandes performances du C et C++, tout en aillant la même productivité qu'avec les langages modernes tels que le Ruby et le Python.
Pour plus d'informations, référez-vous à D, le langage de programmation.

4.1.2. Prise en charge de GNUStep

L'environnement de développement GNUstep arrive sous Fedora, facilitant le développement d'applications croisées sour Fedora en utilisant l'API Cocoa (formellement NeXTSTEP/OpenStep). Le langage de programmation principale de GNUstep est l'objective-C, mais n'en est pas limité.

4.1.3. Autres améliorations

  • Mise à jour des langages Python, Erlang et Perl et des environnements de développement Netbeans et Eclipse.
  • Le correcteur d'anomalies gdb a été étendu avec de nouvelles commandes qui facilitent la recherche et la correction de l'utilisation excessive de mémoire dans les programmes et bibliothèques, de même qu'un indexe qui augmente grandement la vitesse de correction d'anomalies.
Ces nouveautés complètent un ensemble particulièrement riche d'outils de développement qui augmentent les possibilités des développeurs. Pour une liste exhaustive des centaines de mises à jour effectuées sur les outils de développement, consultez les notes techniques de Fedora 14 sur http://docs.fedoraproject.org.

4.2. Runtime

4.2.1. boost

La bibliothèque C++ boost a été mis à jour vers la version 4.4 qui inclut de nombreuse modifications. Pour plus d'informations, consultez les notes de version :
Parmi les points clés, de nouvelles bibliothèques ont été ajoutées pour l'UML2 FSM, les polygones, la factory et les connecteurs ainsi que la bibliothèque UUID. Des bibliothèques existantes ont été mises à jour avec de nombreuses nouvelles fonctionnalités ainsi que des améliorations de performance.

4.2.2. libjpeg-turbo

La bibliothèque libjpeg a été remplacée par la bibiolothèque libjpeg-turbo qui contient les mêmes API/ABI mais qui est au moins deux fois plus rapide sur toutes les architectures primaires et environ 25 % plus rapide sur les architectures secondaires. Pour plus d'information, consultez libjpeg-turbo sur le wiki Fedora.

4.3. Outils de développement

4.3.1. Langage de programmation D

D est un langage de programmation système. Son but est de combiner la puissance et les grandes performances du C et du C++ avec le même niveau de productivité que les langages modernes tel que le Ruby ou le Python. Le langage D est saisie statiquement puis compilé en langage machine. Il est multiparadigm et prend en compte différents styles de programmations : impératif, orienté objet ainsi que la méta programmation. Sa syntaxe est dans la même famille que celle du C et très proche du C++.
  • Compilateur D LLVM
    LCD est un compilateur pour le langage de programmation D. Il est basé sur la dernière interface DMD et repose sur le moteur LLVM. LLVM fournit un moteur rapide et moderne permettant de générer du code de qualité.
  • La bibliothèque
    Tango est une bibliothèque multi-plateforme écrite en D pour les programmeurs en langage D. Elle est structurée comme une bibliothèque cohérente pour une utilisation à usage général. De plus, cette bibliothèque est soutenue par un nombre croissant d'enthousiastes du langage D. La disponibilité d'une documentation complète représente un facteur primordial dans l'accessibilité de la bibliothèque et donc ce projet est autant sur la production de documentation que sur les fonctionnalités de haut niveau.
Pour plus d'informations :

4.3.2. python

La pile python 2 a été mis à jour vers la version 2.7. Pour obtenir la liste des modifications, consultez Quoi de nouveau dans 2.7.
4.3.2.1. Caveat: PyCObject et avertissements
Python fournit de nombreuses API pouvant être utilisées par des modules d'extension en C. Une de ces API, PyCObject est devenue obsolète dans Python 2.7 mais il y a de nombreux modules clés qui n'ont pas été portés par son remplaçant.
Par défaut, les avertissements en rapport avec un code obsolète sont ignorés, il n'y aura donc pas de problèmes.
Toutefois, si les paramètres standard d'avertissements sont écrasés, vous pouvez constater des problèmes en relation avec ces modules. En particulier, si les avertissements ont été positionnés sur « erreur », il est possible que l'interpréteur s'arrête ou renvoie une segfault lors de l'importation de ces modules.
Si vous avez besoin d'activer les erreurs lors d'avertissement, s'il vous plaît, surchargez PendingDeprecationWarning afin qu'il ait une entrée dans le journal d'événement au lieu d'envoyer une exception :
>>> import warnings
>>> warnings.simplefilter('error')
>>> warnings.simplefilter('default', PendingDeprecationWarning)

4.3.3. python-migrate

python-migrate a été mis a jour vers la version 0.6. Il prend en charge SQLAlchemy 0.6 ainsi que les bases de données Firebird. L'ajout de modèles personnalisés et l'utilisation de journaux d'événements python font entre autres partis des nouvelles fonctionnalités. La nouvelle version introduit également quelques modification non rétro-compatibles :
  • api.test() ainsi que les fonctions de comparaison de schéma acceptent maintenant l'url comme premier argument et le dépôt en second.
  • les scripts de mise à jour/annulation de mise à jour de python n'importent pas migrate_engine automatiquement et ne reçoivent que le moteur en argument de la fonction (ex : def upgrade(migrate_engine):)
  • Column.alter n'accepte plus current_name, il récupère le nom depuis l'ancienne colonne.
Pour la liste complète des modifications, consultez les notes de modifications.

4.3.4. Erlang

Une nouvelle version de Erlang/OTP est disponible dans Fedora 14. Pour plus d'informations, consultez Erlang R14 sur le wiki Fedora.

4.3.5. gdb

gdb a été amélioré afin d'enlever les indices non nécessaires des fichiers .debug et de les remplacer par un index, ce qui rend gdb bien plus rapide.
Le correcteur d'anomalie gdb a été étendu avec de nouvelles commandes lui permettant de surveiller et de corriger l'utilisation excessive de mémoire par des programmes ou bibliothèques. Cette fonctionnalité a été développée par un contributeur Fedora, David Malcolm et nous pensons qu'elle est uniquement dans Fedora 14.
Pour plus de plus d'informations, consultez Gdb Index sur le wiki Fedora.

4.3.6. GNUstep

Cette fonctionnalité offre la possibilité de développer des applications GNUstep sur Fedora. GNUstep est une ré-implémentation libre de Nextstep. Il propose un framework pour interface graphique basé sur le langage de programmation Objective-C.
Le langage de programmation Objective-C fait partis de la collection du compilateur GNU (gcc).
Vous pouvez trouver une liste des applications basées sur GNUstep sur liste des applications GNUstep.
Une introduction au projet GNUstep peut être consultée sur introduction à GNUstep.

4.3.7. perl

Modifications significatives dans perl 5.12 :
  • Perl est maintenant plus conforme à la norme Unicode. En outre, cette version inclut une mise à jour vers la version 5.2 de la norme.
  • De nouvelles API expérimentales permettent aux développeurs d'étendre Perl par des mots clés et syntaxes ajoutés.
  • Perl a maintenant une meilleure notion de temps et pourra garder sa précision après la barrière de l'année 2038 passée.
  • Une nouvelle syntaxe permet aux développeurs de spécifier la version du paquet directement dans la déclaration « package ».
  • Perl préviens maintenant par défaut l'utilisateur lorsqu'il utilise des fonctionnalités obsolètes.
Perl 5.12.x apporte de nombreuses nouvelles fonctionnalités, optimisations et corrections. Vous pouvez consulter la liste complètes des modifications sur internet à l'adresse :

4.3.8. rakudo

Fedora inclut Rakudo Perl, une implémentation de la spécification de Perl 6 basé sur la machine virtuelle Parrot, ce qui permet aux développeurs d'écrire de nouvelles applications ou de porter des applications existantes sur Perl 6. Afin d'installer rakudo, utilisez l'outils Ajouter/supprimer des logiciels ou lancez la commande : su -c 'yum install rakudo'Pour obtenir des informations sur les options de la ligne de commande, executez : man perl6man rakudo
Pour plus d'informations, consultez Fedora 14 : Rakudo * .

4.3.9. correcteur d'anomalie pour bash

Les sources Lisp pour le correcteur d'anomalie de bash sous emacs, emacs-bashdb-el sont maintenant incluses dans Fedora. Le correcteur d'anomalie a été mis a jour vers la version 4.1_0.4.

4.3.10. Pyjamas

pyjamas est nouveau dans Fedora 14. Il s'agit d'une plateforme de développement d'applications internet riches (RIA) pour internet et la bureautique. Découvrez toutes les possibilités offertes sur le site internet pyjs.org.

4.4. GCC

4.4.1. gcc

Fedora 14 inclut la version 4.5 de gcc ainsi que des divers compilateurs dépendant de gcc. La liste complète des changements peut être trouvée sur Change Logs, mais le détail des principales nouveautés suit ci-dessous.
4.4.1.1. Prises en charge et fonctionnalités obsolètes
Les portages suivants pour des systèmes d'exploitation sur des architectures particulières ont été rendu obsolète :
  • Versions de IRIX précédant la 6.5 (mips-sgi-irix5*, mips-sgi-irix6.[0-4])
  • Solaris 7 (*-*-solaris2.7)
  • Versions de Tru64 UNIX précédant la V5.1 (alpha*-dec-osf4*, alpha-dec-osf5.0*)
  • Les détails sur l'obsolescence de IRIX, Solaris 7, and Tru64 UNIX peut être trouvés dans l'annonce.
  • La prise en charge de l'architecture POWER classique implantée dans les processeurs RIOS et RIOS2 originaux de la vieille gamme de produits IBM RS/6000 a été rendu obsolète dans le portage rs6000. Ceci n'affecte pas la nouvelle génération des architectures Power et PowerPC.
Un certain nombre de fonctionnalités rendue obsolètes dans la version 4.4 ne sont plus prises en charge.

Performances réduites avec la conformité à C99

Sur les cibles x86, le code contenant des calculs avec des nombres à virgules flottantes s’exécutera de manière significativement plus lente lorsqu'il est compilé avec GCC 4.5 dans le mode de conformité stricte à C99 que lorsqu'il était compilé avec les versions précédentes de GCC. Ceci est dû à la stricte conformité au standard du compilateur et peut être évité en utilisant l'option -fexcess-precision=fast.

4.4.2. Améliorations de l'optimisation réalisée par gcc

  • -save-temps peut prendre maintenant un argument optionnel. Les commutateurs -save-temps et -save-temps=cwd écrivent les fichiers temporaires dans le dossier courant d'après le fichier source original. Le commutateur -save-temps=obj écrira les fichiers dans le répertoire précisé par l'option -o. Les noms de fichiers intermédiaires sont basés sur le fichier de sortie.
  • Les dumps de débogage sont maintenant créés dans le même dossier que le fichier objet plutôt que le répertoire de travail.
  • Un nouvel optimiseur de link-time a été ajouté (-flto). Lorsque cette option est utilisée, GCC génère une représentation en bytecode des fichiers d'entrée et l'écrit dans une sections ELF spéciale dans chaque fichier objet.
  • La passe de parallélisation automatique a été amélioré de sorte à prendre en charge la parallélisation des boucles sortantes.
  • GCC sait maintenant optimiser les codes de gestion d’exceptions.
Référez-vous à la page des changements ci-dessous pour plus de détails sur ces optimisations et d'autres.

4.4.3. Améliorations spécifiques aux langages

Il y a de nouvelles fonctionnalités spécifiques aux langages suivants : Ada, C, C++, Fortan et Java.

4.4.4. Nouvelles cibles

Il y a de nouvelles cibles dans la famille des processeurs AIX, ARM, AVR, IA32, M68K, MeP, MIPS, RS/6000 et RX.

4.4.5. Changements dans l'installation

Le passage à autotools a eu pour conséquence certaines modifications, comme le changement de dossiers où ils sont dorénavant disponibles. Pour de plus amples informations sur ce sujet comme sur toutes les informations précédentes, consultez la page des modifications.

4.5. Java

4.5.1. NetBeans

NetBeans IDE 6.9 est une grande évolution de NetBeans IDE 6.8.
NetBeans IDE 6.9 introduit l'interopérabilité de OSGi pour la plateforme NetBeans et prend en charge le développement de composants OSGI avec Maven. Il prend en charge également le JavaFX SDK 1.3 avec le nouveau JavaFX Composer, un outils de composition pour construire visuellement des application graphiques en JavaFX, de la même manière que l'interface Swing pour Java SE, ainsi que le framework PHP Zend, Ruby on Rails 3.0 et contient des améliorations de l'éditeur Java, de son correcteur d'anomalie, concernant la recherche d'erreurs et bien plus encore.

4.5.2. yydebug

yydebug, un correcteur d'anomalie pour du code filtré par jay est nouveau dans Fedora. Pour plus d'informations, consultez yyDebug à partir de cs.rit.edu.

4.6. Haskell

GHC a été mis à jour vers sa version 6.12.3 et haskell-platform à la version stable 2010.2.0.0.
Certaines améliorations ont été apportées à ghc-rpm-macros et cabal2spec, y compris la fusion des sous-paquetages -doc en -devel.
La manière la plus simple d'ajouter la prise en charge d'Haskell dans Fedora est d'installer le groupe yum Haskell à partir d'Anaconda ou de YUM.
 yum install @haskell

4.7. Eclipse

eclipse a été mis à jour vers la version Helios. Les nouvelles fonctionnalités incluent une meilleure prise en charge du C/C++, une bibliothèque de logiciels, la prise en charge de git, une plateforme d'outils internet, une meilleure gestion du JavaScript et bien plus.
Pour plus d'informations :

4.8. Le noyau Linux

Fedora 14 inclut le noyau Linux version 2.6.35.