OCaml 4.03

73
2
mai
2016
Programmation fonctionnelle

La version 4.03.0 du langage OCaml est paru le 25 avril 2016. OCaml est un langage fonctionnel de la famille des langages ML (dont font partie SML et F#, ou Rust avec une définition élargie).

OCaml est entre autre utilisé pour implémenter le langage Coccinelle (régulièrement utilisé dans la communauté des développeurs du noyau Linux) ou MirageOS (ensemble de bibliothèques pour construire des unikernels). On compte aussi l'implémentation du langage Hack chez Facebook, l'interpréteur de référence pour le projet WebAssembly, ou encore l'analyseur statique de Code C Frama-C.

OCaml

Il s'agit d'un langage fonctionnel multi-paradigmes fortement typé qui permet de mélanger librement les paradigmes fonctionnel, impératif et objet. Cette version 4.03 fait suite à la version 4.02 publiée en juillet 2015.

Journal Xavier Leroy est le lauréat 2016 du Prix Milner.

Posté par . Licence CC by-sa.
52
25
nov.
2016

Hier, jeudi 24 novembre 2016, Xavier Leroy a reçu le prix Milner à Londres à la Royal Society. Le prix Milner est le plus grand prix européen en informatique; il est décerné conjointement par la Royal Society, l'Académie des Sciences et l'académie allemande Leopoldina. Il est décerné en l'honneur de l'informaticien britannique Robin Milner qui fut lauréat du Prix Turing en 1992.

Le prix revient cette année à Xavier Leroy pour ses travaux tant théoriques que pratiques sur la fiabilité (...)

OCaml 4.02

48
7
sept.
2014
Programmation fonctionnelle

La version 4.02 du langage OCaml a été annoncée vendredi 29 août. Elle fait suite à la version 4.01 publiée en septembre 2013. Il s'agit de l'implémentation la plus vivace du langage ML (Meta language) et l'un des langages fonctionnels les plus utilisés (comme Haskell, XSL, Lisp…)

OCaml 4.00.0 est sorti

Posté par (page perso) . Édité par Lucas Bonnet, Xavier Teyssier, rootix et Bruno Michel. Modéré par Nÿco. Licence CC by-sa.
42
11
août
2012
Programmation fonctionnelle

La nouvelle version 4.00.0 du langage OCaml est disponible en ligne depuis le 26 juillet 2012. Aussi, la réunion des développeurs OCaml (OUD'2012) aura lieu cette années à Copenhague le 14 septembre. Venez nombreux !

Parmi les dernières nouveautés disponibles dans cette version 4.00.0 :

  • l'introduction des types de données algébriques généralisés (Generalized Algebraic Data Types - GADTs), qui permettent de détecter encore plus de bugs dès la compilation ;
  • le générateur de code pour ARM a été complètement réécrit ;
  • les types des modules de première classe sont maintenant inférés quand cela est possible, et les modules peuvent eux-mêmes être extraits par filtrage ;
  • le compilateur est disponible sous forme de bibliothèque, et une nouvelle option -bin-annot permet de sauver l'arbre de syntaxe typé, ce qui devrait permettre l'apparition de nouveaux outils de développement plus évolués (refactoring, etc.) ;
  • optimisation des fonctions partielles ;
  • détection de code mort ou inutile (variables, open, champs, constructeurs, labels, etc.) ;
  • émission de directives CFI pour améliorer le debuggage sous GDB.

Qui est le coupable ? Le processeur ! Retour sur un bogue important des SkyLake & Kaby Lake Intel

41
6
juil.
2017
Matériel

Certains d’entre vous ont peut‐être vu passer l’information : les derniers processeurs Intel des familles Skylake et Kaby Lake sont victimes d’un bogue lorsque l’hyper‐threading est activé. On trouve par exemple un article sur Ars Technica, et Debian propose des instructions détaillées pour corriger le problème en mettant à jour le microcode (firmware) du processeur.

Cette dépêche propose revenir sur les événements qui ont mené à la découverte du problème. Xavier Leroy le décrit en détail dans un article sur le blog de l’équipe Gallium, dont je proposerai un résumé pour les lecteurs francophones.

Ocsigen : repenser le développement des applications HTML5

Posté par . Édité par baud123, Nÿco, Xavier Claude, Pierre Jarillon et Bruno Michel. Modéré par Pierre Jarillon. Licence CC by-sa.
Tags :
39
28
juin
2012
Programmation fonctionnelle

Ocsigen est une technologie libre de développement de sites et applications Web client-serveur. Une de ses particularités est d'offrir la possibilité d'écrire les côtés client et serveur non seulement dans le même langage, OCaml, mais comme un seul et même programme. Particulièrement bien adaptée au développement d'applications HTML5 très dynamiques, Ocsigen permet également de repenser et simplifier l'implémentation des comportements standard des sites Web traditionnels (signets, bouton « back », liens, formulaires, etc.). En outre, il permet de combiner ces deux approches de manière très naturelle.

Ocsigen met l'accent essentiellement sur deux points : d'une part, offrir un langage très expressif, ce qui permet d'écrire du code simple et court ; d'autre part, aider à produire du code et des applications fiables et faciles à maintenir. C'est la raison pour laquelle Ocsigen utilise OCaml, un langage de programmation compilé très puissant et au système de type très riche. La grande expressivité d'OCaml est complétée par un grand nombre de nouveaux concepts inédits et spécifiques au Web (services, sessions sophistiquées, etc.) qui permettent de simplifier l'implémentation de comportements dynamiques complexes. De plus, Ocsigen exploite au maximum le typage d'OCaml pour qu'un maximum de garanties de fiabilité soient données dès la compilation (par exemple la validité des liens). Cela va même jusqu'à la vérification à la compilation que les pages générées seront conformes aux recommandations du W3C !

NdM : Ocsigen est sous licence LGPL 2.1

OCaml 4.04 et 4.05

39
16
juil.
2017
Programmation fonctionnelle

La version 4.05.0 du langage OCaml vient d’être publiée, le 13 juillet 2017 ; quelque mois après la sortie de la version 4.04.0, annoncée le 4 novembre 2016. OCaml est un langage fonctionnel de la famille des langages ML (dont font partie SML et F#). Il s’agit d’un langage fonctionnel multi‐paradigme fortement typé qui permet de mélanger librement les paradigmes fonctionnel, impératif et objet.

LOGO

Il s’agit des deux premières versions après le passage à un cycle court de développement (6 mois). Elles contiennent assez peu de changements majeurs et peuvent être considérées comme des versions de maturation, en particulier pour la nouvelle phase d’optimisation Flambda introduite dans la version 4.03.

On note cependant l’intégration de deux nouveaux outils dans le compilateur : un profileur de mémoire et un fuzzer ; mais aussi quelques améliorations du langage et de la bibliothèque standard. Pas mal de changements ont aussi eu lieu dans les entrailles du compilateur et n’ont pas encore débouché sur des changements visibles à la surface du langage.

Une des nouveautés les plus surprenantes de ces cycles de développement est probablement l’apparition d’une nouvelle syntaxe alternative à OCaml, nommé Reason(ml), sous l’impulsion d’une équipe de Facebook.

OCaml 4.06 et 4.07

Posté par . Édité par ZeroHeure, Snark, Julien Jorge, Davy Defaud, Pierre Jarillon, Nils Ratusznik et j_m. Modéré par Pierre Jarillon. Licence CC by-sa.
Tags :
37
2
oct.
2018
Programmation fonctionnelle

La version 4.07.0 du langage OCaml a été publiée le 10 juillet 2018 soit quelques mois après la sortie de la version 4.06.0, annoncée le 3 novembre 2017. OCaml est un langage fonctionnel de la famille des langages ML (dont font partie SML et F#). Il s’agit d’un langage fonctionnel multi‐paradigme fortement typé qui permet de mélanger librement les trois paradigmes : fonctionnel, impératif et objet.

Logo OCaml

OCaml arrive en version 4.07 avec un tout nouvel espace de noms, Stdlib, pour sa bibliothèque standard. Ce nouvel espace de noms présage l’intégration progressive de nouveaux modules dans la bibliothèque standard.

Un autre changement majeur, OCaml 4.06 marque la fin de la transition vers des chaînes de caractères immuables, changement amorcé dès OCaml 4.02 .

À côté de ces changements majeurs, on retrouve de nombreuses améliorations de qualité de vie : de nouveaux opérateurs d’indexation et des champs hérités pour les types objets. Mais aussi pas mal de travail de fond pour préparer l’intégration de la branche multicore, améliorer les passes d’optimisations Flambda, ou faire évoluer le système de types en fixant des irrégularités.

Journal Tagless-final ou l'art de l'interprétation modulaire.

32
22
nov.
2016

Dans la lignée du journal EDSL et F-algèbres, ce journal présente une méthode pour plonger un langage dans un autre (ici OCaml) qui généralise la précédente et centrée autour de la notion d'interprétation. Contrairement aux méthodes plus courantes pour résoudre cette question, la méthode tagless-final permet également de résoudre le problème de l'extensibilité : étendre un type de donnés, ajouter des opérations dessus, sans avoir à réécrire du code déjà compilé et cela avec la sécurité du (...)

Journal Quelques projets intéressants en OCaml

Posté par (page perso) . Licence CC by-sa.
32
28
fév.
2013

Ocaml est souvent enseigné aux étudiant par un prof chiant qui nous impose une soupe théorique qu'on est pas forcément prêt à avaler (plus tard, on comprend son intérêt, mais plus tard).
C'est pourtant un langage puissant et généraliste, tout à fait adapté à faire des logiciels de la vraie vie. Et non, il n'y a pas que ML Donkey.

Je recense donc dans ce journal bookmark quelques projets sympa en OCaml, très divers, mais utiles.
Je précise que je (...)

Découvrir MetaOCaml dans son navigateur

Posté par . Édité par ZeroHeure, tankey, Benoît Sibaud, Davy Defaud et Pierre Jarillon. Modéré par Florent Zara. Licence CC by-sa.
29
13
nov.
2016
Programmation fonctionnelle

OCaml est un langage de programmation généraliste, fonctionnel et statiquement typé. MetaOCaml est une extension. Le « Meta » dans le nom fait référence à la méta‐programmation, l’écriture de programmes qui manipulent des programmes.

Un cours sur MetaOCaml est disponible en ligne sur le site de l’université de Cambridge.

Journal The Future of Functional Programming Languages

Posté par (page perso) . Licence CC by-sa.
27
18
oct.
2012

Juste un journal bookmark pour signaler cette très intéressante discussion entre un groupe de personnes qu’il est assez unique de voir ensemble : Xavier Leroy (OCaml), David MacQueen (un des concepteur de ML), Martin Odersky (Scala), Simon Peyton‐Jones(Haskell) et Don Syme (F#).

La discussion est intitulée « The Future of Functional Programming Languages ». Y sont abordés les succès et insuccès de l’approche fonctionnelle, comment elle infuse ailleurs, quelles sont les perspectives, etc.

Cela se passe ici, et c’est disponible en divers formats.

Apprendre la programmation fonctionnelle avec le MOOC OCaml

Posté par . Édité par Benoît Sibaud, palm123, jcr83 et dourouc05. Modéré par tankey. Licence CC by-sa.
26
15
sept.
2016
Éducation

Pour la deuxième année consécutive, l'université Paris Diderot, en partenariat avec la Sorbonne, INRIA, IRILL et OCamlPro, organise un MOOC d'initiation à la programmation fonctionnelle avec le langage OCaml. Les leçons débuteront le 26 septembre 2016 et se termineront le 12 décembre. Les cours seront donnés en anglais mais des sous-titres sont disponibles aussi bien en anglais qu'en français. Il est toutefois possible de s'inscrire jusqu'au 25 novembre pour les retardataires.

Journal Malfunction: réutiliser la représentation intermédiaire du compilateur OCaml

Posté par . Licence CC by-sa.
24
24
juin
2016

Stephen Dolan (github, vielle page perso) est un étudiant en thèse d'informatique à Cambridge, UK, et il a de nombreux talents et des centres d'intérêt variés au sein de la discipline. D'un côté il a un goût pour l'élégance mathématique assez visible dans ses travaux (en particulier son travail de thèse très intéressant sur le sous-typage, avec une forte inspiration algébrique), de l'autre c'est aussi un hacker qui s'intéresse à l'implémentation, et a par exemple fait une (...)

Sortie de Stog en version 0.15

Posté par (page perso) . Édité par tankey, Benoît Sibaud et tuiu pol. Modéré par patrick_g. Licence CC by-sa.
21
8
juil.
2015
Internet

Stog est un générateur de sites web statiques, écrit en OCaml. La version 0.15 vient de sortir et propose notamment un éditeur en ligne.

Stog est écrit en Ocaml et peut utiliser des greffons OCaml mais il n'est pas nécessaire de connaître le langage pour utiliser le générateur.
La licence utilisée pour le projet est GPL v3.