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.

International Disability Day 2023: Why It Matters

When I was in my early 20s, I developed a chronic illness that (amongst other things) has affected my mobility. Becoming disabled is an eye…

05 Dec 2023

Tarides

Read Article
[OCaML'23] Modern DSL compiler architecture in OCaml our experience with Catala

[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.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video
[OCaML'23] Modern DSL compiler architecture in OCaml our experience with Catala

[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.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video
[OCaML'23] Runtime Detection of Data Races in OCaml with ThreadSanitizer

[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.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video
[OCaML'23] Runtime Detection of Data Races in OCaml with ThreadSanitizer

[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.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video
[OCaML'23] Buck2 for OCaml Users & Developers

[OCaML'23] Buck2 for OCaml Users & Developers Shayne Fletcher, Neil Mitchell Buck2 is an open-source large scale build system used by thousands of developers at Meta every day. Buck2 can be used to build OCaml with some useful advantages over alternatives (e.g. Dune or Bazel). In this talk we’ll discuss what those advantages are, why they arise, and how to use Buck2 for your OCaml development.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video
[OCaML'23] Buck2 for OCaml Users & Developers

[OCaML'23] Buck2 for OCaml Users & Developers Shayne Fletcher, Neil Mitchell Buck2 is an open-source large scale build system used by thousands of developers at Meta every day. Buck2 can be used to build OCaml with some useful advantages over alternatives (e.g. Dune or Bazel). In this talk we’ll discuss what those advantages are, why they arise, and how to use Buck2 for your OCaml development.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video
[OCaML'23] MetaOCaml Theory and Implementation

[OCaML'23] MetaOCaml Theory and Implementation Oleg Kiselyov Quasi-quotation (or, code templates) has long been used as a convenient tool for code generation, commonly implemented as a pre-processing/translation into code-generation combinators. The original MetaOCaml was also based on such translation, done post type checking. BER MetaOCaml employs a significantly different, efficient (especially in version N114) translation integrated with type-checking, in the least intrusive way. This paper presents the integrated efficient translation for the first time.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video
[OCaML'23] MetaOCaml Theory and Implementation

[OCaML'23] MetaOCaml Theory and Implementation Oleg Kiselyov Quasi-quotation (or, code templates) has long been used as a convenient tool for code generation, commonly implemented as a pre-processing/translation into code-generation combinators. The original MetaOCaml was also based on such translation, done post type checking. BER MetaOCaml employs a significantly different, efficient (especially in version N114) translation integrated with type-checking, in the least intrusive way. This paper presents the integrated efficient translation for the first time.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video
[OCaML'23] Owi: an interpreter and a toolkit for WebAssembly written in OCaml

[OCaML'23] Owi: an interpreter and a toolkit for WebAssembly written in OCaml Léo Andrès, Pierre Chambart, Eric Patrizio, Dario Pinto This presentation introduces Owi, an OCaml-based interpreter and toolkit for WebAssembly (Wasm). Owi aims to provide a fast and easily maintainable solution for Wasm code execution. Unlike competing interpreters, Owi focuses on facilitating experimentation, research, and symbolic manipulations of Wasm. We describe the different passes and intermediate representations of Owi. Additionally, we discuss the linker, the interpreter and its support for various Wasm-specific extensions. Owi’s API leverages Generalized Algebraic Data Types (GADTs) for improved error detection at link-time. We also describe the testing methods used, including a Crowbar-based fuzzer. Future work includes incorporating missing Wasm extensions, implementing advanced optimization passes, and potentially porting the WASP execution engine to perform concolic execution.

01 Dec 2023

OCAML Workshop at ICFP 2023

View Video