Sortie de Ruby 2.0.0-rc2

Ruby 2.0.0-rc2 est disponible ! Il s'agit de la dernière release candidate avant la version 2.0.0.

N'hésitez pas à la tester et à rapporter tout problème rencontré.

Téléchargement

Vous pouvez obtenir cette version depuis :

Nouvelles fonctionnalités de Ruby 2.0.0

  • arguments « mots-clé »
  • Enumerable#lazy
  • Module#prepend
  • #to_h: convention pour la conversion vers un Hash
  • %i: un literal pour produire un tableau de symboles (à l'instar de %s pour les chaînes de caractères)
  • Moteur d'expression régulière mis à jour : Onigmo (un fork d'Oniguruma)
  • Enumerator#size et Range#size font leur apparition
  • support de DTrace
  • TracePoint
  • de meilleurs performances pour la directive require (en particulier sous Windows)
  • support de NativeClient
  • amélioration générale de la documentation
  • meilleure gestion des interruptions asynchrones
  • apparition de paramètres pour modifier la taille du stack de démarrage
  • Refinements (expérimental !)

… et bien plus encore. Voir le fichiers NEWS pour tous les détails.

Voici quelques articles sur ces différents sujets récemment publiés :

S'il vous prend l'envie d'écrire un article, prévenez-nous pour qu'il soit cité dans la prochaine actualité.

Notes

Incompatibilités

Il en existe à notre connaissance trois principales :

  • L'encodage par défaut des scripts ruby est désormais UTF-8 [#6679]. Certaines personnes ont mentionné le fait que cela affecte le fonctionnement de programmes existant, par exemple des systèmes de benchmarking qui deviennent très lents [ruby-dev:46547]. La spécification pourrait de ce fait encore évoluer d'ici la release finale.
  • iconv a finalement été retiré, après avoir été déprécié lors de l'introduction de M17N dans ruby 1.9. Utilisez désormais String#encode et autres.
  • L'ABI (Application Binary Interface) connaît un changement majeur [ruby-core:48984]. A priori, une simple réinstallation des extensions doit faire l'affaire, mais soyez bien attentifs à ne pas copier les fichiers .so ou .bundle depuis une installation 1.9 ("DO NOT COPY .so OR .bundle FILES FROM 1.9"), faute de quoi Ruby ne fonctionnera pas.

Il existe par ailleurs quelques incompatibilités mineurs, voir [ruby-core:49119]. Merci de rapporter tout autre problème de ce type d'ici la release.

Bon à savoir : nous avons créé des notes de mise-à-jour, bien qu'une partie d'entre elles soient déjà dépassées.

À propose des Refinements

Ruby 2.0.0 apportera les Refinements en tant que « fonctionnalité expérimentale », faute d'un accord final sur leur spécification.

Notez donc que leur comportement pourrait changer dans les prochaines versions.

Remerciements spéciaux

Merci à tous ceux et celles qui ont testé les preview et release candidates ! Je suis très honoré du travail acharné de tous ces contributeurs pour résoudre les bugs : je vous remercie tous chaleureusement.