Episode3-Youtube

Everything you need to know to install and use the DkML distribution of OCaml on Windows. Includes a 5-minute quick install for learners. Includes how to setup projects and configuring IDEs for sof...

08 Dec 2023

Watch OCaml

Read Article
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