Product SiteDocumentation Site

4. Modifications dans Fedora pour les développeurs

4.1. Développement

4.1.1. Scratch

Fedora 19 inclut Scratch, l'environnement de programmation graphique du Lifelong Kindergarten Group au IT Media Lab. Scratch rend facile la création d'histoires interactives, de jeux, d'animations, de musique et d'art.
Installer Scratch avec
        yum install scratch
puis l'exécuter soit depuis le menu application de votre bureau (dans Programmation), soit en tapant « scratch » dans une fenêtre de terminal.

4.1.2. Nouvelle version Ruby 2.0.0

Ruby est disponible dans Fedora 19. La nouvelle version apporte des ajouts au cœur du langage, de nouvelles bibliothèques intégrées, une prise en charge du débogage améliorée, et des améliorations de performance.
Le projet Ruby donne le détails des changements ainsi que des lignes directrices pour la compatibilité dans l'annonce de publication de la nouvelle version disponible à http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/

4.1.3. JRuby 1.7

JRuby a été mis à jour à la version 1.7 et comporte un empaquetage amélioré. Les informations détaillées sur cette versionsont disponibles à http://jruby.org/2012/10/22/jruby-1-7-0.html

4.1.4. Erlang

Le langage de programmation concurrente à usage multiple Erlang et son environnement d'exécution ont été mis à jour à la version R16B. Le journal complet des modifications est disponible à http://www.erlang.org/download/otp_src_R16A_RELEASE_CANDIDATE.readme et http://www.erlang.org/download/otp_src_R16B.readme. La documentation inclut http://vimeo.com/44790646 et http://www.erlang.org/download_release/17

4.1.5. Boost mis à jour à la version 1.53

Fedora 19 inclut Boost version 1.53. Comparé à la version 1.50 qui était disponible dans Fedora 18, Boost 1.53 apporte plusieurs nouvelles bibliothèques :
Context, pour les changements de contexte
Coroutine, une bibliothèque de coroutines
Lockfree, des structures de données ne nécessitant pas de verrous
Multiprecision, des types arithmétiques de précision étendue pour l'arithmétique à virgule flottante, rationnelle ou entière.
Atomic, atomic<> dans le style C++11
Odeint, pour la résolution d'équations différentielles
Plusieurs autres bibliothèques ont été mises à jour. Les notes de version détaillées sont disponibles pour Boost 1.51.0, 1.52.0 et 1.53.0 :
Mises à jour pour Boost 1.50.0
Mises à jour pour Boost 1.51.0 :
Mises à jour pour Boost 1.52.0 :
Mises à jour pour Boost 1.53.0

Rétro-compatibilité

Notez qu'aucune compatibilité API ou ABI avec Boost 1.50 ne peut être prise en charge. Les applications tierces compilées avec les anciennes versions de Boost devront être recompilées, et nécessiteront peut-être d'être modifiées pour fonctionner avec Boost 1.53.

4.1.6. GNU Guile mis à jour à la version 2.0.7

GNU Guile a été mis à jour à la version 2.0.7. Les applications tierces qui dépendent d'une ancienne version de guile peuvent utiliser le paquet compat-guile18. Plus d'informations sur Guile 2 sont disponibles à http://www.gnu.org/software/guile/download.html#releases

4.1.7. Python

4.1.7.1. Pillow remplace PIL
La bibliothèque d'imagerie pour python Python Imaging Library, ou PIL, a été remplacée par Pillow, une version dérivée (fork) activement maintenu, qui offre aussi des modules compatibles pour Python 3. Pillow peut se substituer simplement à PIL, à la différence que l'import de module nécessite maintenant la syntaxe
          from PIL import <Module>
au lieu de
          import <Module>
Ce changement ne casse pas la compatibilité arrière avec l'ancien PIL. La documentation est disponible à https://github.com/python-imaging/Pillow/
4.1.7.2. PyXML a été supprimé, utiliser stdlib
Les programmeurs Python qui utilisent le module xml noteront que quelques uns de ses composants fonctionnent différemment d'auparavant. Ceci est dû au fait que Fedora ne livre plus PyXML. Cette modification permet au module xml python stdlib de devenir visible aux programmeurs. PyXML remplaçait le code stdlib par le sien, moins bien maintenu, et l'abandon de PyXML permet de s'assurer que les fonctions de stdlib lui sont préférées.

4.2. Outils de développement

4.2.1. Point de contrôle et restauration avec crtools

Le projet CRIU (Checkpoint/Restore in User-space, point de contrôle et restauration en espace utilisateur) offre une mise en œuvre en espace utilisateur de la prise de point de contrôle et de la restauration d'un processus ou d'un groupe de processus. Les outils en espace utilisateur crtools étant disponibles dans cette version, il est possible de prendre un point de contrôle sur un processus, et de le restaurer plus tard (par exemple après un plantage), ou de migrer le processus ou le groupe de processus vers un autre système. CRIU vise à être le plus transparent possible, sans instrumentation ou recompilation du processus sur lesquels travailler.
Pour vider un processus, utiliser la commande :
        crtools dump -D /path/to/dump-directory -t <PID>
Pour restaurer un processus, utiliser la commande :
        crtools restore -D /path/to/dump-directory -t <PID>
La page du projet CRIU est http://criu.org

4.2.2. Developer's Assistant

Les nouveaux développeurs peuvent se mettre rapidement le pied à l'étrier avec l'assistant du développeur, Developer's Assistant, un ensemble d'outilspermettant de démarrer rapidement des projets avec une grande variété de langages et cadragiciels. Le paquet devassistant prend actuellement en charge :
C et C++
python dont django et flask
java dont jsf et maven

4.2.3. MEMSTOMP

Fedora 19 offre MEMSTOMP, un objet partagé dynamique qui peut être préchargé dans une application afin de découvrir les recouvrements d'arguments mémoire sur certaines fonctions, à un coût d'exécution moindre que valgrind.

4.2.4. Nouveaux outils

recode ajoute la capacité de convertir des fichiers d'un jeu de caractères à un autre, d'un usage à un autre
comdemod est un outil qui aide sur la refactorisation de grandes bases de code.
jimtcl, une mise en œuvre légère de Tcl.
fox, un jeu d'outils C++ pour le développement facile et efficace d'interfaces graphiques

4.3. Outils GCC

4.3.1. GCC 4.8.x

Dans Fedora 19, GCC 4.8.x est le GCC par défaut. De plus, tous les paquets Fedora ont été recompilés avec GCC 4.8.x (et avec GLIBC 2.17 ; voir ci-dessous)
Les utilisateurs observeront des améliorations au code compilé, et utiliseront les nouvelles fonctionnalités, comme une prise en charge C++11 et C11 améliorée, le support de la vectorisation, etc.
La mise à jour de GCC inclut le compilateur croisé MinGW. L'un des changements les plus significatifs est que le modèle de gestion d'exception par défaut pour la cible win64 a changé deSjLj à SEH. La cible win32 utilise toujours le modèle de gestion d'exception SjLj. Ceci implique que tous les binaires ciblant win64 et qui utilisent la gestion d'exception dépendent maintenant de libgcc_s_seh-1.dll au lieu delibgcc_s_sjlj-1.dll.
Pour plus d'informations sur les changement dans GCC 4.8.x, merci de visiter http://gcc.gnu.org/gcc-4.8/changes.html

4.3.2. GLIBC 2.17

Dans Fedora 19, GLIBC 2.17 est maintenant la GLIBC par défaut. Tous les paquets Fedora ont été reconstruits avec GLIBC 2.17 (et avec GCC 4.8.x ; voir ci-dessus).
Pour plus d'informations sur les changement dans GLIBC 2.17, merci de vous reporter à http://sourceware.org/ml/libc-announce/2012/msg00001.html

4.4. D

4.5. Haskell

GHC a été mis à jour à la version 7.4.2, Haskell Platform en version 2012.4, et plusieurs mises à jours de bibliothèques.

4.6. Java

4.6.1. Aperçu technologique Java 8

Cette version de Fedora inclut un aperçu technologique de Java 8, au travers des paquets java-1.8.0-openjdk et java-1.8.0-openjdk-devel.
Java 7 continue à être le JDK par défaut pour cette version de Fedora. L'inclusion de Java 8 et OpenJDK8 permettra aux développeurs de développer et de tester en parallèle leurs applications pour la prochaine version de Java, alors que les autres utilisateurs continueront à utiliser la version stable Java 7 pour tous les jours.
Les nouvelles fonctionnalités de OpenJDK8 sont énumérées à http://openjdk.java.net/projects/jdk8/features/

4.6.2. Simplification de l'empaquetage de Maven

Une manière améliorée et simplifiée de créer des paquets RPM à partir de projets Apache Maven a été introduite. Les informations détaillées et les recettes de conversion depuis les anciens fichiers spec sont disponibles à http://mizdebsk.fedorapeople.org/xmvn/cookbook/

4.6.3. Thermostat 1.0

Fedora 19 inclut Thermostat 1.0, la première version de thermostat ayant une API stable. Thermostat est un outil de surveillance, d'instrumentation et de maintenance interne pour OpenJDK.
Pour les informations sur son utilisation, consulter le guide d'utilisation de Thermostat disponible à http://icedtea.classpath.org/wiki/Thermostat/UserGuide

4.7. Développement Web

4.7.1. PHP mis à jour à la version 5.5.0

Le populaire langage de programmation PHP a été mis à jour en version 5.5.0. Cela inclut un grand nombre de nouvelles fonctionnalités, dont la prise en charge des Generators, le nouveau cache d'opcode Zend Optimizer+, ainsi qu'un certain nombre d'améliorations de performances.
Pour les informations détaillées sur la migration de PHP 5.4.x à PHP 5.5.x, les développeurs PHP sont invités à lire /usr/share/doc/php-common-*/NEWS afin d'en savoir plus sur les changements, ainsi qu'à consulter le guide de migration disponible à http://www.php.net/manual/en/migration55.php.

4.7.2. Node.js

Fedora 19 inclut maintenant l'environnement d'exécution JavaScript Node.js qui permet le développement d'applications rapides et capables de passer à l'échelle utilisant le langage de programmation JavaScript. Le gestionnaire de paquets npm est aussi inclut, et fournit l'accès à plus de 20 000 bibliothèques et applications disponibles sous des licences libres et open source.
Pour plus d'informations sur Node.js, visitez le site http://nodejs.org ou consultez la documentation dans le paquet nodejs-docs.
Pour plus d'informations sur npm, dont un annuaire des bibliothèques et programmes disponibles, consulter le site http://npmjs.org/.

4.7.3. Django 1.5

Fedora 19 comporte la version 1.5 du cadragiciel de développement d'applications web Django. Cette version apporte des améliorations qui facilitent l'utilisation de mécanismes d'authentification personnalisés, une prise en charge améliorée de la mise en cache, une nouvelle balise de modèle qui facilite l'utilisation de modèles JavaScript au sein de modèles Django, et plus encore.
Pour les informations complètes, consulter les notes de version de Django 1.5 à https://docs.djangoproject.com/en/dev/releases/1.5/.