BT

Haskell supporte iOS et bénéficie de nombreuses améliorations

| par Roopesh Shenoy Suivre 0 Abonnés , traduit par Olivier Gonthier Suivre 0 Abonnés le 21 mai 2014. Durée de lecture estimée: 2 minutes |

GHC 7.8.1 a récemment été rendu disponible, apportant de nombreuses améliorations à l'écosystème Haskell. Haskell peut maintenant être compilé pour iOS, et porte de nouvelles fonctionnalités comme les Closed Type Families, Roles, Overloaded Lists, et Pattern Synonyms, en plus de multiples progrès sur les performances.

Haskell peut maintenant être compilé pour iOS via clang, et supporte le développement en utilisant XCode 5. A cause du manque de librairies d'interfaces cross-plateforme en Haskell, vous devrez développer votre UI séparément et appeler des fonctions Haskell depuis du code Objective-C. Bien que ce support avait été annoncé il y a un peu plus de 8 mois, c'est la première version majeure de GHC à inclure ce support.

A noter que Template Haskell n'est pas encore disponible pour iOS.

La compilation cross-plateforme à évolué de manière générale avec par exemple un meilleur support du dynamic linking. GHCi (version interactive de GHC) utilise maintenant le système de dynamic linking par défaut, au lieu du linker statique. Avec GHC, vous pouvez utiliser un nouveau flag "--dynamic-too", pour émettre à la fois des objets statiques et dynamiques. (Par défaut GHC utilise toujours du static linking).

Quelques autres fonctionnalités de cette version :

  • Closed Type Families - Les familles de type sont utilisées pour surcharger des types data. Une famille de type est définie en un endroit et ne peut être étendue, ce qui est pratique pour éviter des effets de bords non voulus par le développeur initial.
  • Roles - pour éliminer les définitions incomplètes en utilisant GeneralizedNewTypeDeriving.
  • Overloaded Lists - Sucre syntaxique pour utiliser la notation des listes pour des structures comme les Set, Map, IntMap, Vector, Text et Array.
  • Pattern Synonyms.
  • Typeable est maintenant polyforme, rendant Typeable1, Typeable2, etc. obsolètes et dépréciés.
  • Un tout nouveau gestionnaire I/O qui scale linéairement jusqu'à 32 Cœurs.
  • De nombreuses améliorations sur Haskell Template, comme le support des Roles, annotation pragmas, et les expressions Template Haskell typées.
  • Un mode parallèle pour make.
  • Un résolveur pour les types naturels amélioré en termes de performances.

Un potentiel changement cassant la rétro-compatibilité est à prévoir dans la prochaine version (7.10), puisque Applicative deviendra une classe parente à Monad. Pour faciliter cette transition, la version courante de GHC émet un warning si un type est instance de Monad mais pas d'Applicative, ou instance de MonadPlus mais pas d'Alternative, ou encore si une fonction locale nommée join, <*> ou pure est définie.

Il y a bien d'autres changements, que vous pouvez trouver dans les release notes.

A noter que la plateforme Haskell, qui regroupe GHC et des outils pour travailler avec Haskell, n'a pas encore été mise à jour avec cette dernière version.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT