OCaml en 2021

Posté par  . Édité par Yves Bourguignon, chimrod, Ysabeau, Snark, Benoît Sibaud, yPhil, Bruno Ethvignot, Quidam, tisaac, dourouc05, syntaxerror et Michaël. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
56
25
sept.
2021
Programmation fonctionnelle

La version 4.13.0 du langage OCaml est sortie le 24 septembre 2021, sept mois après OCaml 4.12.0 sortie le 24 février 2021.

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. La plus grande spécificité d’OCaml dans le paysage des langages fonctionnels (Haskell, Rust, F#…) est probablement son système de module : les modules d’OCaml font partie intégrante du langage, et il est par exemple possible de décrire des modules paramétrés par d’autres modules (à travers des foncteurs).

La grande nouveauté de cette année 2021 est la convergence de l’environnement d’exécution entre la version standard d’OCaml et le prototype d’OCaml multi-cœur. Cette convergence amorce une nouvelle étape dans la transition vers OCaml multi-cœur. Au-delà des progrès vers OCaml multi-cœur, cette année 2021 a vu une de nombreuses avancées pour le langage OCaml et son compilateur que ce soit en termes d’architectures supportées, de messages d’erreurs, de fonctionnalités du système de types, mais aussi des améliorations de confort pour les programmeurs que ce soit au niveau des outils de profilage, de la gestion des avertissements ou de la bibliothèque standard.

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.
Étiquettes :
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 Portage de TapTempo en OCaml

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
15
10
mar.
2018

Je me désespérais de voir apparaître le portage de TapTempo en OCaml alors je m'y colle.
Taptempocaml est donc le portage du désormais célèbre TapTempo en OCaml.
Ce portage n’a pas la prétention de présenter l’état de l’art de la programmation fonctionnelle. Le but ici est plutôt de fournir le code le plus simple et le plus proche de l’original et ceci pour trois raisons :
I. Bien que le langage fournisse des fonctionnalités très évoluées, dans 93 % (…)

OCaml 4.04 et 4.05

Posté par  . Édité par octachron, Yves Bourguignon, kantien, palm123, Snark, Davy Defaud, Benoît Sibaud, Xavier Claude, gasche, Ontologia, patrick_g, Dinosaure et Lucas. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
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.

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

Posté par  . Édité par ymz, Benoît Sibaud, Davy Defaud, ZeroHeure, Nils Ratusznik et patrick_g. Modéré par Benoît Sibaud. Licence CC By‑SA.
42
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.

Journal Une petite histoire d'utilisation type fort dans Ocaml

Posté par  . Licence CC By‑SA.
16
14
jan.
2017

Obtenir du code correct par l'utilisation de types

Je vais illustrer cette idée avec un cas trivial mais pragmatique. Pour se mettre à un langage, rien ne vaut un petit projet perso, avant de passer aux choses sérieuses en regardant le code écrit par d'autres. Dans mon cas, il s'agit de l'écriture d'un utilitaire pour afficher des schémas Kicad et les différences entre deux versions (rien de gros ni professionnel comme GNU, comme dirait l'autre). Par avance, mes excuses aux (…)

Journal Après le MOOC OCaml

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
11
28
déc.
2016

J’ai participé au MOOC Ocaml qui s’est terminé le 18 décembre 2016. Tous les exercices du MOOC Ocaml pouvaient être faits dans un environnement du type de celui de Try OCaml

Pour continuer d’apprendre OCaml et développer des projets en Ocaml sur son poste, il faut se frotter aux outils gravitant autour du langage Ocaml, principalement ceux de build.

Dans ce journal je parlerais de la solution qui me semble la plus simple pour démarrer un projet OCaml et ensuite (…)

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

Posté par  . Licence CC By‑SA.
Étiquettes :
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é (…)

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

Posté par  . Licence CC By‑SA.
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 (…)

Découvrir MetaOCaml dans son navigateur

Posté par  . Édité par ZeroHeure, ymz, Benoît Sibaud, Davy Defaud et Pierre Jarillon. Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
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 Découvrir MetaOCaml dans son navigateur

Posté par  . Licence CC By‑SA.
Étiquettes :
19
12
nov.
2016
Ce journal a été promu en dépêche : Découvrir MetaOCaml dans son navigateur.

OCaml est un langage de programmation généraliste, fonctionnel et statiquement typé.

MetaOCaml est une extension, un dialecte non-standard du langage qui a une longue histoire. Dérivée de MetaML il y a environ 15 ans, c'est toujours resté un prototype de recherche, avec une base d'utilisateur petite mais active au fil des années—au contraire de la plupart des prototypes de recherche qui meurent de mort naturelle assez vite. Le "Meta" dans le nom fait référence à la méta-programmation, l'écriture de programmes (…)

Apprendre la programmation fonctionnelle avec le MOOC OCaml

Posté par  . Édité par Benoît Sibaud, palm123, jcr83 et dourouc05. Modéré par ymz. 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.