Blog
The OCaml Planet RSS
Articles and videos contributed by both experts, companies and passionate developers from the OCaml community. From in-depth technical articles, project highlights, community news, or insights into Open Source projects, the OCaml Planet RSS feed aggregator has something for everyone.
Want your Blog Posts or Videos to Show Here?
To contribute a blog post, or add your RSS feed, check out the Contributing Guide on GitHub.
Enseignement 2023-2024 : Structures de contrôle : de « goto » aux effets algébriques Cours du 25 janvier 2024 : Naissance des structures de contrôle : du « goto » à la programmation structurée Professeur : Xavier Leroy Chaire Sciences du logiciel Un programme informatique décrit non seulement les calculs élémentaires à effectuer sur les données d'entrée, mais aussi dans quel ordre et sous quelles conditions effectuer ces calculs. Pour exprimer cet enchaînement des calculs, les langages de programmation fournissent des mécanismes appelés structures de contrôle. Depuis les branchements « goto » des premiers langages de programmation, de nombreuses structures de contrôle ont été mises en œuvre : boucles, procédures et fonctions, exceptions, itérateurs, coroutines, exceptions… Après des rappels sur ces structures classiques et sur leur contexte historique d'apparition, le cours développera une approche plus moderne du contrôle vu comme un objet manipulable par le programme, permettant ainsi au programmeur de définir ses propres structures de contrôles. Initiée au siècle dernier par les travaux sur les continuations et leurs opérateurs de contrôle, cette approche est en plein renouvellement avec la théorie des effets algébriques et sa déclinaison sous forme d'effets et de gestionnaires d'effets définis par le programmeur dans des langages comme OCaml 5. Retrouvez les enregistrements audios et vidéos du cycle et son texte de présentation : https://www.college-de-france.fr/fr/agenda/cours/structures-de-controle-de-goto-aux-effets-algebriques Retrouvez tous les enseignements du Pr Xavier Leroy : https://www.college-de-france.fr/chaire/xavier-leroy-sciences-du-logiciel-chaire-statutaire https://www.youtube.com/playlist?list=PLtimy8tnozICbD45yhB7Ha_zIBJTIK3im Le Collège de France est une institution de recherche fondamentale dans tous les domaines de la connaissance et un lieu de diffusion du « savoir en train de se faire » ouvert à tous. Les cours, séminaires, colloques sont enregistrés puis mis à disposition du public sur le site internet du Collège de France. Découvrez toutes les ressources du Collège de France : https://www.college-de-france.fr Suivez-nous sur : Facebook : https://www.facebook.com/College.de.France Instagram : https://www.instagram.com/collegedefrance X (ex-Twitter) : https://twitter.com/cdf1530 LinkedIn : https://fr.linkedin.com/company/collègedefrance
This is the second installment in the video series explaining OCaml's locals. In this video, I explain how we can annotate variables and return types with local_. Code for this video: https://github.com/goldfirere/janestreet-videos/tree/main/locals/02-local-variables-and-returns View instructions to get the compiler I use in this video: https://github.com/janestreet/opam-repository/tree/with-extensions Playlist for videos in this series: https://www.youtube.com/playlist?list=PLCiAikFFaMJrgFrWRKn0-1EI3gVZLQJtJ
This is the second installment in the video series explaining OCaml's locals. In this video, I explain how we can annotate variables and return types with local_. Code for this video: https://github.com/goldfirere/janestreet-videos/tree/main/locals/02-local-variables-and-returns View instructions to get the compiler I use in this video: https://github.com/janestreet/opam-repository/tree/with-extensions Playlist for videos in this series: https://www.youtube.com/playlist?list=PLCiAikFFaMJrgFrWRKn0-1EI3gVZLQJtJ
This presentation gives an overview of the Ocsigen framework, which is used in particular to develop the Be Sport social network. Ocsigen is a set a tools to develop Web sites and applications. Amongst other things, it contains js_of_ocaml, a comp...
Lightweight asynchronous programming (using futures, goroutines or green threads) has been widely adopted to organize programs with many concurrent tasks, more than are traditionally feasible with thread-per-task models of concurrency. With the...
This video introduces how to make and use local parameters in OCaml. As demonstrated in the video, a local parameter to a function is not allowed to be stored or returned. Using local parameters can allow us to allocate less garbage-collected memory, as later videos will demonstrate. View instructions to get the compiler I use in this video: https://github.com/janestreet/opam-repository/tree/with-extensions
This video introduces how to make and use local parameters in OCaml. As demonstrated in the video, a local parameter to a function is not allowed to be stored or returned. Using local parameters can allow us to allocate less garbage-collected memory, as later videos will demonstrate. View instructions to get the compiler I use in this video: https://github.com/janestreet/opam-repository/tree/with-extensions
[OCaML'23] Modern DSL compiler architecture in OCaml our experience with Catala Louis Gesbert, Denis Merigoux In this presentation, we intend to show a state-of-the-art DSL implementation in OCaml, with concrete examples and experience reports. In particular, we found that some advanced practices, while accepted among the hardcore OCaml developers (e.g. use of row type variables through object types), lacked visibility and documentation: some of them deserve to be better known. Our experience is based on the Catala compiler, a DSL for the implementation of algorithms defined in law.
[OCaML'23] Modern DSL compiler architecture in OCaml our experience with Catala Louis Gesbert, Denis Merigoux In this presentation, we intend to show a state-of-the-art DSL implementation in OCaml, with concrete examples and experience reports. In particular, we found that some advanced practices, while accepted among the hardcore OCaml developers (e.g. use of row type variables through object types), lacked visibility and documentation: some of them deserve to be better known. Our experience is based on the Catala compiler, a DSL for the implementation of algorithms defined in law.
[OCaML'23] Runtime Detection of Data Races in OCaml with ThreadSanitizer Olivier Nicole, Fabrice Buoro The possibility to write truly parallel OCaml code brings forth new possibilities of bugs. Among those, data races (concurrent accesses to the same data) are hard to detect and dangerous, as they are non-deterministic, possibly silent, and can lead to highly unexpected results. ThreadSanitizer (TSan) is an open-source library and program instrumentation pass to reliably detect data races at runtime. TSan has been instrumental in finding thousands of data races across many programming languages. We will describe the core principles of data race detection in TSan, explain why it was challenging to apply it to OCaml, and the adaptations needed to the runtime system. We plan to demo how you can already use it in your own code, and explain the limitations to be aware of.




