<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://watch.ocaml.org/about/instance</loc></url><url><loc>https://watch.ocaml.org/videos/local</loc></url><url><loc>https://watch.ocaml.org/w/2KbfRNv2oLtkKXkbd5u9F1</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/4fd6a51f-686c-4f6f-8026-83692304b432.jpg</video:thumbnail_loc><video:title>State of the OCaml Platform 2020</video:title><video:description>This talk covers:

- Integrated Development Environments
- Next Steps for the OCaml Platform
- Plans for 2020-2021</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/0e2070fd-798b-47f7-8e69-ef75e967e516/374600b9-a0a6-4586-b979-92118f00bd04-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/2KbfRNv2oLtkKXkbd5u9F1</video:player_loc><video:duration>3600</video:duration><video:rating>0</video:rating><video:view_count>291</video:view_count><video:publication_date>2021-04-19T16:51:43.383Z</video:publication_date><video:tag>ocaml2020</video:tag><video:tag>icfp</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/2Y6YWPrEjrLk1A8Vg1Ep6A</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/596f39a9-8654-4922-8bec-6e7ac5dcc319.jpg</video:thumbnail_loc><video:title>OCaml-CI : A Zero-Configuration CI</video:title><video:description>OCaml-CI

is a CI service for OCaml projects. It
uses metadata from the project’s opam and dune
files to work out what to build, and uses caching
to make builds fast. It automatically tests projects
against multiple OCaml versions and OS platforms.
The CI has been deployed on around 50 projects
so far on GitHub, and many of them see response
times an order of magnitude quicker than with less
integrated CI solutions. This talk will introduce the
CI service and then look at some of the technologies
used to build it.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/0fee79e8-715a-400b-bfcc-34c3610f4890/d1a9c440-f418-4685-b375-29395e6f4152-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/2Y6YWPrEjrLk1A8Vg1Ep6A</video:player_loc><video:duration>1210</video:duration><video:rating>0</video:rating><video:view_count>18</video:view_count><video:publication_date>2021-04-19T17:30:16.262Z</video:publication_date><video:tag>#ocaml2020</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/6hAk7gJcwxoKkT1Edq7rpF</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c877a501-c705-44f7-8826-e7ce846a5e42.jpg</video:thumbnail_loc><video:title>The final pieces of the OCaml documentation puzzle</video:title><video:description>Rendering OCaml document is widely known as a very difficult task: The ever-evolving OCaml module system is extremely rich and can include complex set of inter-dependencies that are both difficult to compute and to render in a concise document. Its tasks are even harder than the typechecker as it also needs to keep track of documentation comments precisely and efficiently. As an example, signatures such as include F(X).T and destructive substitutions were never handled properly by any documentation generator.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/2acebff9-25fa-4733-83cc-620a65b12251/c6a1f347-bee0-4b05-b5f7-045d4f0b8534-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/6hAk7gJcwxoKkT1Edq7rpF</video:player_loc><video:duration>1218</video:duration><video:rating>0</video:rating><video:view_count>19</video:view_count><video:publication_date>2021-04-19T17:53:40.280Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/qfMaiCg3mcokWiRqrTkzMc</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/eef64419-3c34-4c15-9419-edcbc455e54d.jpg</video:thumbnail_loc><video:title>API migration: compare transformed</video:title><video:description>In this talk we describe our experience in using an automatic API-migration strategy dedicated at changing the signatures of OCaml functions, using the Rotor refactoring tool for OCaml. We perform a case study on open source Jane Street libraries by using Rotor to refactor comparison functions so that they return a more precise variant type rather than an integer. We discuss the difficulties of refactoring the Jane Street code base, which makes extensive use of ppx macros, and ongoing work implementing new refactorings.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c46b925b-bd77-404f-ac5d-5dab65047529/dc8ab07e-e29a-48fa-9995-dee93739a54e-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/qfMaiCg3mcokWiRqrTkzMc</video:player_loc><video:duration>1231</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2021-04-19T18:11:17.396Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/rsinVPs9DQUYWwfszgbP8e</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/30bc6019-ecab-40e5-a7b6-c294ac9a7344.jpg</video:thumbnail_loc><video:title>Parallelising your OCaml Code with Multicore OCaml</video:title><video:description>Slides, speaker notes and runnable examples mentioned in this talk are available at: https://github.com/ocaml-multicore/ocaml2020-workshop-parallel

With the availability of multicore variants of the recent OCaml versions (4.10 and 4.11) that maintain backwards compatibility with the existing OCaml C-API there has been increasing interest in the wider OCaml community for parallelising existing OCaml code. From our experience with a range of programs, linear speedups on up to 24 cores are possible. 

This presentation will take the attendees through the following steps aimed at developing parallel programs with Multicore OCaml:
∙ Installing the latest Multicore OCaml compiler
∙ Brief overview of the low-level API for parallel programming
∙ A tour of domainslib – a high-level parallel programming library for Multicore OCaml
∙ Common pitfalls when parallelising
∙ Tools for diagnosing Multicore OCaml performance</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/ce20839e-4bfc-4d74-925b-485a6b052ddf/131a9e1b-ee66-41ce-8391-7accd4d22e7d-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/rsinVPs9DQUYWwfszgbP8e</video:player_loc><video:duration>1197</video:duration><video:rating>0</video:rating><video:view_count>45</video:view_count><video:publication_date>2021-04-19T18:40:30.965Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/25ky5qVd7Dvh8vTnzMZkC4</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/316ddad9-dbc3-4d46-9f43-5da72689e93b.jpg</video:thumbnail_loc><video:title>A Simple State-Machine Framework for Property-Based Testing in OCaml</video:title><video:description>Since their inception, state-machine frameworks have proven their worth by finding defects in everything from the underlying AUTOSAR components of Volvo cars to digital invoicing systems. These case studies were carried out with Erlang’s commercial QuickCheck state-machine framework from Quviq, but such frameworks are now also available for Haskell, F#, Scala, Elixir, Java, etc. We present a typed state-machine framework for OCaml based on the QCheck library and illustrate a number of concepts common to all such frameworks: state modeling, commands, interpreting commands, preconditions, and agreement checking.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/08b429ea-2eb8-427d-a625-5495f4ee0fef/474502b0-97ac-48c4-85cd-5e83d3f18c74-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/25ky5qVd7Dvh8vTnzMZkC4</video:player_loc><video:duration>1120</video:duration><video:rating>0</video:rating><video:view_count>14</video:view_count><video:publication_date>2021-04-19T18:53:45.658Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/5YQVzn5jvc3TXAqVE8fW79</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/dde19660-653d-4dc3-9e81-54b2e3ab22a2.jpg</video:thumbnail_loc><video:title>The ImpFS filesystem</video:title><video:description>This proposal describes a presentation to be given at the OCaml’20 workshop. The presentation will cover a new OCaml filesystem, ImpFS, and the related libraries. The filesystem makes use of a B-tree library presented at OCaml’17, and a key-value store presented at ML’19. In addition, there are a number of other support libraries that may be of interest to the community. ImpFS represents a single point in the filesystem design space, but we hope that the libraries we have developed will enable others to build further filesystems with novel features.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/28545b27-4637-47a5-8edd-6b904daef19c/13cf8d71-67b6-442f-8496-438a116edc7c-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/5YQVzn5jvc3TXAqVE8fW79</video:player_loc><video:duration>1164</video:duration><video:rating>0</video:rating><video:view_count>14</video:view_count><video:publication_date>2021-04-19T19:04:57.238Z</video:publication_date><video:tag>icfp</video:tag><video:tag>ocaml2020</video:tag><video:tag>ocaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/bmRdxaQrXtxVpnma3osq76</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/138e7c05-185b-4e54-95d0-d15018905a39.jpg</video:thumbnail_loc><video:title>Irmin v2</video:title><video:description>Irmin is an OCaml library for building distributed databases with the same design principles as Git. Existing Git users will find many familiar features: branching/merging, immutable causal history for all changes, and the ability to restore to any previous state. It has been extensively used by major software projects over the past few years such as Docker for Mac/Windows, and noticeably through DataKit, which powers hundreds of thousands monthly builds on the opam-repository CI contributors may be familiar with.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/53e497b0-898f-4c85-8da9-39f65ef0e0b1/e84956c4-2930-43bb-a9a8-7b06c884c74c-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/bmRdxaQrXtxVpnma3osq76</video:player_loc><video:duration>1267</video:duration><video:rating>0</video:rating><video:view_count>20</video:view_count><video:publication_date>2021-04-19T19:10:21.010Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/qW5BVcBZ38bua9Zs79P7nE</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/eb972fd2-668e-4998-a798-e9fbdcadba20.jpg</video:thumbnail_loc><video:title>AD-OCaml: Algorithmic Differentiation for OCaml</video:title><video:description>AD-OCaml is a library framework for calculating mathematically exact derivatives and deep power series approximations of almost arbitrary OCaml programs via algorithmic differentiation. Unlike similar frameworks, this includes programs with side effects, aliasing, and programs with nested derivative operators. The framework also offers implicit parallelization of both user programs and their transformations.


The presentation will provide a short introduction to the mathematical problem, the difficulties of implementing a solution, the design of the library, and a demonstration of its capabilities.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c9e85690-732f-4b03-836f-2ee0fd8f0658/6b9439f3-d2d8-4490-be17-1d0489a2a0b1-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/qW5BVcBZ38bua9Zs79P7nE</video:player_loc><video:duration>1093</video:duration><video:rating>0</video:rating><video:view_count>48</video:view_count><video:publication_date>2021-04-19T19:24:10.203Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/fmMd4aVkiDRTXYisABZLyh</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/e1ac5b07-3648-40c1-b62c-5e88471741dc.jpg</video:thumbnail_loc><video:title>OCaml Under The Hood: SmartPy</video:title><video:description>SmartPy is a complete system to develop smart-contracts for the Tezos blockchain. It is an embedded EDSL in python to write contracts and their test scenarios. It includes an online IDE, a chain explorer, and a command-line interface. Python is used to generate programs in an imperative, type-inferred, intermediate language called SmartML. SmartML is also the name of the OCaml library which provides an interpreter, a compiler to Michelson (the smart-contract language of Tezos), as well as a scenario “on-chain” interpreter. The IDE uses a mix of OCaml built with js_of_ocaml and pure Javascript. The command-line interface also builds with js_of_ocaml to run on Node.js.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/7446ad4d-4ae2-4e1a-bc38-af8f71e8ebd8/14c8871a-d1a1-4174-af9d-a6db36f0c6ff-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/fmMd4aVkiDRTXYisABZLyh</video:player_loc><video:duration>1222</video:duration><video:rating>0</video:rating><video:view_count>12</video:view_count><video:publication_date>2021-04-19T19:37:44.765Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/msUpyYZgRh8Bob8Lc8kzhR</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/92c0a0e3-5326-42aa-86a3-6adb3927e111.jpg</video:thumbnail_loc><video:title>A Declarative Syntax Definition for OCaml</video:title><video:description>In this talk, we present our work on a syntax definition for the OCaml language in the syntax definition formalism SDF3. SDF3 supports the high-level definition of concrete and abstract syntax through declarative disambiguation and definition of constructors, enabling a direct mapping to abstract syntax. Based on the SDF3 syntax definition, the Spoofax language workbench produces a complete syntax aware editor with a parser, syntax checking, parse error recovery, syntax highlighting, formatting with correct parenthesis insertion, and syntactic completion. The syntax definition should provide a good basis for experiments with the design of OCaml and the development of further tooling. In the talk, we will highlight interesting aspects of the syntax definition, discuss issues we encountered in the syntax of OCaml, and demonstrate the editor.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/a5b86864-8e43-4138-b6d6-ed48d2d4b63d/92327a64-1573-48b9-8cc1-c701fb13dd1a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/msUpyYZgRh8Bob8Lc8kzhR</video:player_loc><video:duration>970</video:duration><video:rating>0</video:rating><video:view_count>30</video:view_count><video:publication_date>2021-04-19T19:49:24.903Z</video:publication_date><video:tag>icfp</video:tag><video:tag>ocaml2020</video:tag><video:tag>ocaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/rfAAeQ2xNjP7vwMQ1tr8ne</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1d43d8b4-87d1-4398-b925-10a42460b8dc.jpg</video:thumbnail_loc><video:title>LexiFi Runtime Types</video:title><video:description>OCaml programmers make deliberate use of abstract data types for composing safe and reliable software systems. The OCaml compiler relies on the invariants imposed by the type system to produce efficient and compact runtime data representations. Being no longer relevant, the type information is discarded after compilation. The resulting performance is a key feature of the OCaml language.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/cc7e3242-0bef-448a-aa13-8827bba933e3/1c9e6f5c-baec-4fe1-8f6b-97fdc371ba86-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/rfAAeQ2xNjP7vwMQ1tr8ne</video:player_loc><video:duration>980</video:duration><video:rating>0</video:rating><video:view_count>55</video:view_count><video:publication_date>2021-04-19T19:58:55.318Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/jYQdwDwPjCmpuayg6urL2y</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/acd50ed1-43cf-45fd-a55e-9c40a6bf58ba.jpg</video:thumbnail_loc><video:title>Types in Amber</video:title><video:description>Coda is a new cryptocurrency that uses zk-SNARKs to dramatically reduce the size of data needed by nodes running its protocol. Nodes communicate in a format automatically derived from type definitions in OCaml source files. As the Coda software evolves, these formats for sent data may change. We wish to allow nodes running older versions of the software to communicate with newer versions. To achieve that, we identify stable types that must not change over time, so that their serializations also do not change.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/99b3dc75-9f93-4677-9f8b-076546725512/1a26851b-f546-41a3-af1a-57a86d2543db-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/jYQdwDwPjCmpuayg6urL2y</video:player_loc><video:duration>1155</video:duration><video:rating>0</video:rating><video:view_count>11</video:view_count><video:publication_date>2021-04-19T20:08:10.365Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2020/videos">OCaml Workshop 2020</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/ppXAn7SukCT8vkUmxhG1iC</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/ddc1e6fb-9999-4e79-b458-31c7e3ec1108.jpg</video:thumbnail_loc><video:title>The OCaml Platform 1.0 - Reason ML</video:title><video:description>Presented by Anil Madhavapeddy (@avsm)

We keep being told ReasonML can compile to native and do interop with OCaml, and that there's a wealth of existing code and tools we can draw into our applications - but how do we get there?
This video will walk us through the state of native development and introduce us to systems like opam, Duneiverse and other tools which will unlock the mysteries of native wonderlands!
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/bd9a8e54-6ca5-4036-a08c-6a47cee6619e/e0db4eb4-d3df-449c-8b4b-4a0e044208b4-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/ppXAn7SukCT8vkUmxhG1iC</video:player_loc><video:duration>2337</video:duration><video:rating>0</video:rating><video:view_count>20</video:view_count><video:publication_date>2021-05-26T20:24:02.432Z</video:publication_date><video:tag>Functional Programming</video:tag><video:tag>opam</video:tag><video:tag>Dune</video:tag><video:tag>developer language</video:tag><video:tag>Ocaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/diksha_channel/videos">diksha_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/sZatujkvZML4f5DMj2dQFT</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1c22a14e-f067-4d4e-8e26-027cc6d8a491.jpg</video:thumbnail_loc><video:title>OCaml-CI : A Zero-Configuration CI</video:title><video:description>OCaml-CI1 is a CI service for OCaml projects. It uses metadata from the project’s opam and dune files to work out what to build, and uses caching to make builds fast. It automatically tests projects against multiple OCaml versions and OS platforms.
The CI has been deployed on around 50 projects so far on GitHub, and many of them see response times an order of magnitude quicker than with less integrated CI solutions. This talk will introduce the CI service and then look at some of the technologies
used to build it.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/da88d6ac-7ba1-4261-9308-d03fe21e35b9/d135485c-c4bb-4907-97de-2fc4b72d93d0-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/sZatujkvZML4f5DMj2dQFT</video:player_loc><video:duration>1210</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2021-05-27T16:35:41.085Z</video:publication_date><video:tag>Ocaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/diksha_channel/videos">diksha_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/83ANjgugXRtJ7ACNRapsQe</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/33258292-009b-42ee-83d3-9eb4bfb4e048.jpg</video:thumbnail_loc><video:title>State of the OCaml Platform</video:title><video:description>State of the OCaml Platform</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/390ce74c-f85f-477d-8f20-504437409add/b0e2eb0c-17fc-4255-80fb-6e9d9ae4af71-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/83ANjgugXRtJ7ACNRapsQe</video:player_loc><video:duration>1871</video:duration><video:rating>0</video:rating><video:view_count>11</video:view_count><video:publication_date>2021-05-27T17:04:24.246Z</video:publication_date><video:tag>OCaml 2017</video:tag><video:tag>ICFP</video:tag><video:tag>OCaml Platform</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/diksha_channel/videos">diksha_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/oDLQiHmyzK9YzPHgU6WGWe</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/93ea327e-5e8b-4844-b237-75719a7256b9.jpg</video:thumbnail_loc><video:title>Towards A Debugger for Native Code OCaml</video:title><video:description>Towards A Debugger for Native Code OCaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/b76f3301-261d-44f3-97ec-1910b45f6969/b4c2fb6f-9fd5-45fd-a57d-48da04996dfd-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/oDLQiHmyzK9YzPHgU6WGWe</video:player_loc><video:duration>1357</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-08-03T16:20:17.728Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:tag>2015</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/c9ERJm8FqcBjEVvn7Co5me</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c2b5c90a-9c9e-4058-94a1-15525795a01a.jpg</video:thumbnail_loc><video:title>Operf: Benchmarking the OCaml Compiler</video:title><video:description>Operf: Benchmarking the OCaml Compiler</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/5a4a6c12-3cb1-40d2-a663-25f294e12555/fb6ab771-56f8-4077-8e8c-ef2631c0924b-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/c9ERJm8FqcBjEVvn7Co5me</video:player_loc><video:duration>1626</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-08-03T16:23:23.889Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:tag>2015</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/fx2mSEiKqm9j5FtKZTK54E</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/43248673-6478-4e96-b8ac-cd415d85569b.jpg</video:thumbnail_loc><video:title>Core Time stamp counter: A fast high resolution time source</video:title><video:description>Core Time stamp counter: A fast high resolution time source</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/75b4d60f-3e37-40bd-b025-f39dcce0c42c/8c50e102-ea72-4d26-814c-9a6b7079ad94-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/fx2mSEiKqm9j5FtKZTK54E</video:player_loc><video:duration>1455</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2021-08-03T16:29:56.317Z</video:publication_date><video:tag>ICFP</video:tag><video:tag>OCaml</video:tag><video:tag>2015</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/gR8CbFmLZwQB56j2x7BTLD</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1f81fbbf-6fb0-4047-93a1-57759431166a.jpg</video:thumbnail_loc><video:title>Specialization of Generic Array Accesses After Inlining</video:title><video:description>Specialization of Generic Array Accesses After Inlining</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/80553916-b90a-4641-93c8-35b000df04c1/1d0cdaa4-f771-4f30-ba34-46eb8fdbcf3f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/gR8CbFmLZwQB56j2x7BTLD</video:player_loc><video:duration>1250</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-08-03T16:34:23.463Z</video:publication_date><video:tag>2015</video:tag><video:tag>ICFP</video:tag><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/dfnurgKQsmcTh2tpxaKbNc</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/5d2f65d1-6129-4206-832b-c3d4bab410df.jpg</video:thumbnail_loc><video:title>Inline Assembly in OCaml</video:title><video:description>Inline Assembly in OCaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/632f520f-8f83-4b6f-89f1-5cde088436c7/863908bf-e336-4f1d-93d1-e8ea5e37738a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/dfnurgKQsmcTh2tpxaKbNc</video:player_loc><video:duration>1445</video:duration><video:rating>0</video:rating><video:view_count>12</video:view_count><video:publication_date>2021-08-03T16:39:42.612Z</video:publication_date><video:tag>2015</video:tag><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/cW7SKwdt7UpCa7H9PmmVLp</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/a5e5f630-2df9-4691-8ddf-a8137001ab4c.jpg</video:thumbnail_loc><video:title>The State of OCaml</video:title><video:description>The State of OCaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/60a2ecfb-86ea-4881-a279-0a928452a3c3/3711b0e9-bdb9-4703-9d35-65f0e8edbf18-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/cW7SKwdt7UpCa7H9PmmVLp</video:player_loc><video:duration>1531</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-08-03T16:44:10.196Z</video:publication_date><video:tag>2015</video:tag><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/7d6QtgieeGvs2AvEBF8MZu</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/7eb8af05-a6d5-4a88-89f3-146673a87cf0.jpg</video:thumbnail_loc><video:title>The State of the OCaml Platform</video:title><video:description>The State of the OCaml Platform</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/32475a83-b455-455b-937f-28e7185f4fc2/d8554ba5-0012-4d4a-b1aa-c5aff7da95f6-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/7d6QtgieeGvs2AvEBF8MZu</video:player_loc><video:duration>1934</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-08-03T16:47:54.414Z</video:publication_date><video:tag>2015</video:tag><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/b7wE5pvKMJPiU8N6KXCirG</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/8255d370-e621-44bc-b7c3-6dd39fab4d1d.jpg</video:thumbnail_loc><video:title>Global Semantic Analysis on OCaml programs</video:title><video:description>Global Semantic Analysis on OCaml programs</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/51e4bdf0-50f7-4b13-8514-2d62b5341066/8c4b1304-273d-478d-b861-2a3e84533fda-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/b7wE5pvKMJPiU8N6KXCirG</video:player_loc><video:duration>1222</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-08-03T16:55:20.938Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>2015</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/uTETEQr1jpQMMe91LBYF5o</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1de58bd2-d2f9-428c-8b8c-97b48d6d2c7e.jpg</video:thumbnail_loc><video:title>Effective Concurrency through Algebraic Effects</video:title><video:description>Effective Concurrency through Algebraic Effects</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e9f6c837-1435-4349-af0f-07d22d1c11ea/8202fd76-675f-42ff-bf07-d2745ea6489f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/uTETEQr1jpQMMe91LBYF5o</video:player_loc><video:duration>1670</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2021-08-03T16:58:13.648Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:tag>2015</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/wRcwTSGTmpGgFRAVLoE8Tu</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/e573402b-1350-4aa7-a9ba-0e1c51198fb4.jpg</video:thumbnail_loc><video:title>A review of the growth of the OCaml community</video:title><video:description>A review of the growth of the OCaml community</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f9d0b637-8aec-4bff-8c32-cd16b58023b6/57035d98-5f07-4fa9-bd11-e44b70572ec4-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/wRcwTSGTmpGgFRAVLoE8Tu</video:player_loc><video:duration>1453</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2021-08-03T17:05:33.471Z</video:publication_date><video:tag>2015</video:tag><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/jKF7YGDr7QCYuj6WGqNyHY</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/46ba8c5d-0f4a-427e-8e76-0c58cb0e70a7.jpg</video:thumbnail_loc><video:title>Persistent Networking with Irmin and MirageOS</video:title><video:description>Persistent Networking with Irmin and MirageOS</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/97dd9634-28e4-4066-96e4-9c2036ee4bb2/8c56a516-5fda-407a-a7e5-d53fd94515ed-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/jKF7YGDr7QCYuj6WGqNyHY</video:player_loc><video:duration>1358</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2021-08-03T17:09:03.939Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>2015</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/w7yXhk3BFCe96upJAWCdWV</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/0a36e8ce-c415-4191-ad5b-6ef2eb23db4e.jpg</video:thumbnail_loc><video:title>Ketrew and Biokepi</video:title><video:description>Ketrew and Biokepi</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f3dcee35-bc04-453a-ba35-7aec90599661/75da1b04-2403-4322-b75e-ae8c909f1b84-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/w7yXhk3BFCe96upJAWCdWV</video:player_loc><video:duration>1540</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-08-03T17:13:21.358Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:tag>2015</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/patrick_channel/videos">patrick_channel</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/tJYEtbT4VA9ZnVcNZETHow</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/729cda51-abb3-4c8d-9d0e-b922e81be518.jpg</video:thumbnail_loc><video:title>GopCaml: A Structural Editor for OCaml</video:title><video:description>This talk presents GopCaml-mode, the first structural editing plugin for OCaml. We will give a tour of the main plugin features, discussing the plugin’s internal design and its integration with existing OCaml and GNU Emacs toolchains.

Kiran Gopinathan
National University of Singapore</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e0a6e6f2-0d40-4dfc-9308-001c8e0f64d6/0531d1fc-a392-4f78-9c03-f42c629942b2-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/tJYEtbT4VA9ZnVcNZETHow</video:player_loc><video:duration>1495</video:duration><video:rating>0</video:rating><video:view_count>172</video:view_count><video:publication_date>2021-08-27T10:13:23.454Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/kAwHTpWWjZUTQfkQdActWY</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/53db83d1-0763-4dfa-a087-cce3cad1b581.jpg</video:thumbnail_loc><video:title>OCaml and Python: Getting the Best of Both Worlds</video:title><video:description>In this talk we present how we expose a wide variety of OCaml libraries and services so that they can be accessed from Python. Our initial use case on the Python side consisted in Jupyter notebooks used to analyse various datasets, these datasets being handled by OCaml libraries. However we extended this to provide lots of other OCaml libraries to Python users, e.g. exposing the Time_ns module from Core to provide a robust timestamp library, manipulating holidays, etc. Our Python bindings are written entirely in OCaml and interface well with some Python libraries such as NumPy or Pandas that are commonly used for data manipulation. In order to make writing such bindings easier, we wrote some specific library as well as a PPX extension.

Laurent Mazare
Jane Street</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/9eafdb1e-9be9-4a52-98b4-f4696eda4c18/3aaeb173-8578-4f63-b9aa-e4bbbbb77d44-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/kAwHTpWWjZUTQfkQdActWY</video:player_loc><video:duration>1240</video:duration><video:rating>5</video:rating><video:view_count>162</video:view_count><video:publication_date>2021-08-27T10:21:31.800Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>machine learning</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/dbeFXB7bjsghcL6VJ4qAfw</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/41212c84-36d6-44fa-b884-2ced79505929.jpg</video:thumbnail_loc><video:title>Adapting the OCaml ecosystem for Multicore OCaml</video:title><video:description>OCaml 5.0 with support for shared-memory parallelism being around the corner, there’s increasing interest in the community to port existing libraries to Multicore. This talk will take the attendees through what the arrival of Multicore means to the OCaml ecosystem, and existing tools and methods for a smooth transition to benefit from Multicore parallelism. We aim to share some insights from our experience of porting existing libraries to Multicore OCaml. We will cover:

- Introduction
- Building your package with the Multicore compiler
- Breaking changes in the runtime
- Global state &amp; thread-safety
- Multiprocess vs multicore
- Example of parallelizing a library: Lwt

Sudha Parimala
Segfault Systems
India

Enguerrand Decorne
Tarides

Sadiq Jaffer
Opsian and OCaml Labs

Tom Kelly
OCaml Labs

KC Sivaramakrishnan
IIT Madras
India</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/629b89a8-bbd5-490d-98b0-d0c740912b02/973a19e9-f6c2-4035-80a7-66c55dfb6bb6-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/dbeFXB7bjsghcL6VJ4qAfw</video:player_loc><video:duration>1476</video:duration><video:rating>0</video:rating><video:view_count>572</video:view_count><video:publication_date>2021-08-27T10:36:54.092Z</video:publication_date><video:tag>multicore</video:tag><video:tag>ecosystem</video:tag><video:tag>ocaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/j42rB3YV5jvuyi4MJfzdED</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/db29d3bf-784c-47f1-bf90-f13fd2a9d530.jpg</video:thumbnail_loc><video:title>Deductive Verification of Realistic OCaml Code</video:title><video:description>We present the formal verification of a subset of the Set module from the OCaml standard library. The proof is conducted using Cameleer, a new tool for the deductive verification of OCaml code. Cameleer takes as input an OCaml program, annotated using the GOSPEL specification language, and translates it into an equivalent program writen in WhyML, the specification and programming language of the Why3 verification framework. We present our verification effort and detail on the main challenges.

Carlos Pinto
NOVA LINCS &amp; Universidade da Beira Interior, Portugal

Mário Pereira
NOVA LINCS &amp; DI -- Nova School of Science and Technology

Simão Melo de Sousa
NOVA LINCS &amp; Universidade da Beira Interior, Portugal</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/92309d92-8cbf-4545-980c-209c96e42a79/5f23b0cc-38a9-46d5-88da-41bc42330d9c-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/j42rB3YV5jvuyi4MJfzdED</video:player_loc><video:duration>1487</video:duration><video:rating>0</video:rating><video:view_count>68</video:view_count><video:publication_date>2021-08-27T10:44:49.018Z</video:publication_date><video:tag>verification</video:tag><video:tag>ocaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/pP6ycqcHRJnFrkYp3hBzVZ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b1a67c0a-2eb9-4c9d-97ce-b4dc039da59b.jpg</video:thumbnail_loc><video:title>Parafuzz: Coverage-guided Property Fuzzing for Multicore OCaml programs</video:title><video:description>We develop ParaFuzz, an input and concurrency fuzzing tool for Multicore OCaml programs. ParaFuzz builds on top of Crowbar which combines AFL-based grey box fuzzing with QuickCheck and extends it to handle parallelism.

Sumit Padhiyar
Indian Institue Of Technology, Madras
India

Adharsh Kamath
National Institute of Technology Karnataka, Surathkal, India
India

KC Sivaramakrishnan
IIT Madras</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c0d591e0-91c9-4eaa-a4d7-c4f514de0a57/2ca1a24c-7048-4a64-b9b9-b11dacadcdbe-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/pP6ycqcHRJnFrkYp3hBzVZ</video:player_loc><video:duration>908</video:duration><video:rating>0</video:rating><video:view_count>69</video:view_count><video:publication_date>2021-08-27T10:54:23.125Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>testing</video:tag><video:tag>fuzzing</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/vc43BBJQg1ggkVMyUr6X37</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/2300474a-7615-4c92-9489-9ff5117d8bc7.jpg</video:thumbnail_loc><video:title>Wibbily Wobbly Timey Camly</video:title><video:description>Time handling is commonly considered a difficult problem by programmers due to myriad standards and complexity of time zone definitions. This also complicates scheduling across multiple time zones especially when one takes Daylight Saving Time into account. We present a highly expressive set of APIs, Timere, which can describe scheduling requirements precisely with flexible time zone handling, along with a natural language parser that can handle common English phrases. We also contribute a new date time handling library as part of the work.

Di Long Li
The Australian National University

Gabriel Radanne
Inria</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/ec641446-823b-40ec-a207-85157a18f88e/7c57de5f-45dd-4995-a34a-a443554a9fd8-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/vc43BBJQg1ggkVMyUr6X37</video:player_loc><video:duration>911</video:duration><video:rating>0</video:rating><video:view_count>46</video:view_count><video:publication_date>2021-08-27T10:56:19.468Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>ecosystem</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/sSKdjPdCePowy4yh8ZMEat</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/e5d18bd4-b482-463c-80f8-35d9fbb46b23.jpg</video:thumbnail_loc><video:title>Leveraging Formal Specifications to Generate Fuzzing Suites</video:title><video:description>When testing a library, developers typically first have to capture the semantics they want to check. They then write the code implementing these tests and find relevant test cases that expose possible misbehaviours.

In this work, we present a tool that automatically takes care of these last two steps by automatically generating fuzz testing suites from OCaml interfaces annotated with formal behavioural specifications. We also show some ongoing experiments on the capabilities and limitations of fuzzing applied to real-world libraries.

Nicolas Osborne
Tarides

Clément Pascutto
Tarides, Université Paris-Saclay, CNRS, ENS Paris-Saclay, LMF</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/d9a36c9f-1611-42f9-8854-981b1e2d7d75/fcfc1a25-943a-494d-8e93-3e436e5a9671-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/sSKdjPdCePowy4yh8ZMEat</video:player_loc><video:duration>893</video:duration><video:rating>0</video:rating><video:view_count>22</video:view_count><video:publication_date>2021-08-27T11:01:43.809Z</video:publication_date><video:tag>fuzzing</video:tag><video:tag>ocaml</video:tag><video:tag>verification</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/peCJnJkrLXJQnKCFp78iBg</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9b4dc06e-1d07-45b8-a21a-1e4f39897fef.jpg</video:thumbnail_loc><video:title>Probabilistic resource limits using StatMemprof</video:title><video:description>The goal of this talk is two-fold. First, we present memprof-limits, a probabilistic implementation of per-thread global memory limits, and per-thread allocation limits, for OCaml 4.12. Then, we will discuss the reasoning about programs in the presence of asynchronous exceptions; why memprof-limits improves on the situation; and why the situation, although still imperfect, is likely to remain the same until more ambitious evolutions of the language are made possible.

Guillaume Munch-Maccagnoni
Inria</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/bc297e85-82dd-4baf-8556-4a3a934978f9/ae79728f-6a57-469b-8faa-045133d1cf05-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/peCJnJkrLXJQnKCFp78iBg</video:player_loc><video:duration>1335</video:duration><video:rating>0</video:rating><video:view_count>61</video:view_count><video:publication_date>2021-08-27T11:12:58.560Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>runtime</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/4wPVB5e8wbwnUG7Emiofcf</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/33ab36c3-3650-4c13-9fea-9b5907cf8c0f.jpg</video:thumbnail_loc><video:title>Continuous Benchmarking for OCaml Projects</video:title><video:description>Regular CI systems are optimised for workloads that do not require stable performance over time. This makes them unsuitable for running performance benchmarks.

current-bench provides a predictable environment for performance benchmarks and a UI for analysing results over time. Similar to a CI system it runs on pull requests and branches allowing performance to be analysed and compared. It can currently be enabled on as an app on GitHub repositories with zero configuration. current-bench is running on several public repositories, including irmin and dune, and we plan to enable it on more projects in the future.

In this presentation, we will give a technical overview of current-bench, showing how results are collected and analysed, requirements for using it and how we built the infrastructure for stable benchmarks. We also describe future work that would allow more OCaml projects to run current-bench.

Gargi Sharma
Tarides

Rizo Isrof
Tarides

Magnus Skjegstad
Tarides and OCaml Labs
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/1c994370-1aaa-4db6-b901-d762786e4904/5a467404-c863-4c6d-ab6d-313a16310190-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/4wPVB5e8wbwnUG7Emiofcf</video:player_loc><video:duration>651</video:duration><video:rating>0</video:rating><video:view_count>35</video:view_count><video:publication_date>2021-08-27T11:21:13.549Z</video:publication_date><video:tag>ci</video:tag><video:tag>benchmarking</video:tag><video:tag>ocaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/keaLz7s91UVoqgmHn12a7a</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/6a0a8291-4626-4820-8071-904b3c508345.jpg</video:thumbnail_loc><video:title>A Multiverse of Glorious Documentation</video:title><video:description>This talk describes the process of generating documentation for every version of every package that can be built from the opam repository, and how it is presented as a single coherent website that is continuously updated as new packages are released and old packages are updated. The challenges of caching, of handling different compiler versions and incompatible libraries are all addressed. The process has been implemented as an OCurrent pipeline named ocaml-docs-ci and is available on Github, and has been used to produce the documentation of more than 10,000 package versions, generating 2.5M HTML pages totalling 38GB of artifacts.

Lucas Pluvinage
Tarides

Jonathan Ludlam
University of Cambridge</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/9bb452d6-1829-4dac-a6a2-46b31050c931/15081384-a515-4ae7-9247-7929fc178b85-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/keaLz7s91UVoqgmHn12a7a</video:player_loc><video:duration>863</video:duration><video:rating>0</video:rating><video:view_count>71</video:view_count><video:publication_date>2021-08-27T11:42:41.915Z</video:publication_date><video:tag>ecosystem</video:tag><video:tag>ocaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/t6AEkRYMMS4oY9SAwBgFN8</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/43a418d6-56ec-48f4-852b-0a18ec0789aa.jpg</video:thumbnail_loc><video:title>Digodoc and Docs</video:title><video:description>In this talk, we will introduce a new tool called digodoc, that builds a graph of an opam switch, associating files, libraries and opam packages into a cyclic graph of inclusions and dependencies. We will then explain how we used that tool to build a documentation website that displays the generated documentation of a large set of opam packages from the official opam repository. Thanks to digodoc, users can easily navigate between module documentations, sources, packages and libraries. We think it is an interesting contribution to the OCaml ecosystem.

Mohamed Hernouf
OCamlPro

Fabrice Le Fessant
OCamlPro

Thomas Blanc
OCamlPro

Louis Gesbert
OCamlPro</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/db6ed2c4-e940-4d5f-82ee-d3d20eb4ceb7/dfbfb4ac-8856-4ac8-a152-8acb0f0272ff-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/t6AEkRYMMS4oY9SAwBgFN8</video:player_loc><video:duration>877</video:duration><video:rating>0</video:rating><video:view_count>44</video:view_count><video:publication_date>2021-08-27T12:10:05.964Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>docs</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/tU8wR9EcAcyFHHVcX4GS46</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/94ead657-79a0-4c10-8435-9e13906a6c44.jpg</video:thumbnail_loc><video:title>25 Years of OCaml: Xavier Leroy</video:title><video:description>Professor Xavier Leroy -- the primary original author and leader of the OCaml project -- reflects on 25 years of the OCaml language at his OCaml Workshop 2021 keynote speech.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e1ee0fc0-50ef-4a1c-894a-17df181424cb/98287ece-aed1-4521-98c5-789d9831d5e4-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/tU8wR9EcAcyFHHVcX4GS46</video:player_loc><video:duration>2349</video:duration><video:rating>0</video:rating><video:view_count>1438</video:view_count><video:publication_date>2021-08-27T13:23:10.199Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>keynote</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/frqTUHtyX14dKackswejNM</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/d48bf7bb-8c46-4d49-a3a6-734bf339343b.jpg</video:thumbnail_loc><video:title>Experiences with Effects in OCaml</video:title><video:description>The multicore branch of OCaml adds support for effect handlers. In this talk, we report our experiences with effects, both from converting existing code, and from writing new code. Converting the Angstrom parser from a callback style to effects greatly simplified the code, while also improving performance and reducing allocations. Our experimental Eio library uses effects to allow writing concurrent code in direct style, without the need for monads (as found in Lwt or Async).

Thomas Leonard
OCaml Labs

Craig Ferguson
Tarides

Patrick Ferris
OCaml Labs

Sadiq Jaffer
Opsian and OCaml Labs

Tom Kelly
OCaml Labs

KC Sivaramakrishnan
IIT Madras
India

Anil Madhavapeddy
University of Cambridge, UK
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/74ece0a8-380f-4e2a-bef5-c6bb9092be89/74232b2d-b5e0-42db-a394-c35447e6686a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/frqTUHtyX14dKackswejNM</video:player_loc><video:duration>1125</video:duration><video:rating>5</video:rating><video:view_count>1220</video:view_count><video:publication_date>2021-08-27T14:41:24.522Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>multicore</video:tag><video:tag>effects</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/mP68J8woghESiqbGiyZAgp</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b2325a24-f068-473b-961e-a0b783ae5c39.jpg</video:thumbnail_loc><video:title>Opam-bin: Binary Packages with Opam</video:title><video:description>In this talk, we will present opam-bin, an Opam plugin that builds Binary Opam packages on the fly, to speed-up reinstallation of pack- ages. opam-bin also creates Opam Repositories for these binary pack- ages, to make them easy to share with other users. We will show how it works and how to use it on a daily basis.

Fabrice Le Fessant
OCamlPro
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/a889e4d3-0508-4734-b667-7060b0a253cd/52013fec-8409-4df6-ab0f-5759de15fc06-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/mP68J8woghESiqbGiyZAgp</video:player_loc><video:duration>1271</video:duration><video:rating>0</video:rating><video:view_count>54</video:view_count><video:publication_date>2021-08-27T15:02:04.683Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>opam</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/s9cAoptUhAx53xokL7Ezsw</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/93a6e9ac-2266-408a-81e7-1ebf239233f8.jpg</video:thumbnail_loc><video:title>Love: a readable language interpreted by a blockchain</video:title><video:description>We present Love, a smart contract language embedded in the Dune Network blockchain. It benefits from an OCaml-like syntax and a system-F inspired type system. Love has been used for deploying complex services such as games, ERC20s, atomic swaps, etc.

Steven de Oliveira
OCamlPro

David Declerck
OCamlPro
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/d3b2b31e-1739-406e-8de7-d5f21bc01836/4f6b9642-fc7a-4a5f-b0cd-c7507cbe7883-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/s9cAoptUhAx53xokL7Ezsw</video:player_loc><video:duration>975</video:duration><video:rating>0</video:rating><video:view_count>48</video:view_count><video:publication_date>2021-08-27T15:10:45.085Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/fpPgAxmmCBqeoN3VcCGqMw</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/a2042ab9-9025-421a-9eae-176462ac594b.jpg</video:thumbnail_loc><video:title>From 2n+1 to n</video:title><video:description>
OCaml relies on a type-agnostic object representation centred around values which unify odd integers and aligned pointers. The last bit of a value distinguishes the two variants: zero indicates a pointer on the OCaml heap, while one encodes a tagged integer n as 2n+1.
While this approach provides significant benefits, enabling a powerful foreign-function interface (FFI) and allowing the garbage collector to easily traverse the heap, a significant runtime overhead is also incurred.
An operation as simple as the addition of n and m requires two hardware instructions: one to add the two odd numbers forming 2(n+m)+2, followed by another to decrement the result and adjust the tag bit, yielding 2(n+m)+1. 
In many instances, particularly in the standard library, sequences of such instructions present redundancies that are not properly eliminated by the compiler, despite obvious benefits to both execution time and binary size.


In this talk, we discuss a type analysis implemented in the Duplo post-link optimiser that narrows the classification of registers from storing values to regular integers, enabling a variety of simple and effective transformations.
Although we show improvements on benchmarks quantifying the performance of the standard library, we also highlight the shortcomings of such an analysis on a low-level representation, arguing for it to be implemented on a higher-level representation in the compiler.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/74b32dae-11c6-4713-be1b-946260196e50/0d06d2bd-dced-4acf-a4b2-b94fb15a4933-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/fpPgAxmmCBqeoN3VcCGqMw</video:player_loc><video:duration>1049</video:duration><video:rating>0</video:rating><video:view_count>29</video:view_count><video:publication_date>2021-08-31T08:30:23.211Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/jaRY5tsaZjW1yioyqCfENo</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/d7e22bba-cda1-4c2b-9368-9b2c1643e751.jpg</video:thumbnail_loc><video:title>Property-Based Testing for OCaml through Coq</video:title><video:description>We will present a property-based testing framework for OCaml that leverages the power of QuickChick, a popular and mature testing plugin for the Coq proof assistant, by automatically constructing a extraction-based shim between OCaml and Coq. That gives OCaml programmers access to the advanced automation and fuzzing facilities that QuickChick provides.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/9324fba4-2482-4bab-bfdd-b8881b3ed94a/1c0c0985-67d6-48b5-9d5b-6a0179f6e726-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/jaRY5tsaZjW1yioyqCfENo</video:player_loc><video:duration>464</video:duration><video:rating>0</video:rating><video:view_count>27</video:view_count><video:publication_date>2021-08-31T08:37:00.571Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/qsKrkTJAeC7xjF6BA6hgt9</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/a89a3483-274a-44f1-9a38-c679f6b12196.jpg</video:thumbnail_loc><video:title>Safe Protocol Updates via Propositional Logic</video:title><video:description>If values of a given type are stored on disk, or are sent between different executables, then changing that type or its serialization can result in versioning issues.
Often such issues are resolved by either making the deserializer more permissive or the serializer more generous and then reasoning “manually” about the situation.
For example, if a record type is stored on disk, one might reason that making the deserializer more permissive by adding a new field with a default value is safe, as old serializations will still be readable.
However, as type transformations become more complex, it can quickly become too difficult to make and reason about such changes. There are a few sources of difficulty:
1. Libraries for generating serializations from a type may not offer flexible ways for making permissive deserializers and generous serializers.
2. Given a pair of a (possibly permissive) deserializer and a (possibly generous) serializer, determining whether or not they’re compatible can be tricky.
3. Since non-trivial systems may have multiple executables with multiple channels of communication between them, there must be some method for determining which serializer/deserializer
pairs must be checked
4. Once you know which serializer/deserializer pairs should be checked, you must also take into account the order of deployment of the various executables.
The Trace types library attempts to resolve these problems.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c6176f51-0277-46f0-937b-1e2721044492/6213bc45-017e-4544-b11b-3ca7d6bae68c-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/qsKrkTJAeC7xjF6BA6hgt9</video:player_loc><video:duration>897</video:duration><video:rating>0</video:rating><video:view_count>22</video:view_count><video:publication_date>2021-08-31T08:34:54.707Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/iviHLAbsW9y9wSXzXgCdxA</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/390cd7dd-4578-4162-bae0-6c218cb5ebde.jpg</video:thumbnail_loc><video:title>Binary Analysis Platform</video:title><video:description>We present Binary Analysis Platform (BAP), a representation-agnostic program analysis framework for binaries that can leverage existing tools, libraries, and frameworks, no matter which intermediate representation (IR) they use. In BAP, a new IR could be introduced without requiring any modifications of the existing code or rebuilding, relinking, or even reinstallation. We also describe the methodology for implementing such frameworks and the mathematical model for reasoning about program transformation pipelines, with the main hope that this approach could be adopted by other OCaml projects, including the OCaml compiler.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/8dc2d8d3-c140-4c3d-a8fe-a6fcf6fba988/5b3ff452-5ae2-4061-b238-34a3345532ca-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/iviHLAbsW9y9wSXzXgCdxA</video:player_loc><video:duration>978</video:duration><video:rating>0</video:rating><video:view_count>72</video:view_count><video:publication_date>2021-08-31T08:39:55.774Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/pNXeW9yY1Vg5ubcXQ3bpxg</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/2ab3961f-4e66-4ec9-b20e-72e25dfbebe4.jpg</video:thumbnail_loc><video:title>Semgrep : a fast, lightweight, polyglot static analysis tool to find bugs</video:title><video:description>Semgrep, which stands for “semantic grep,” is a fast, lightweight, polyglot, open source static analysis tool to find bugs and enforce code standards. It is used internally by many companies including Dropbox and Snowflake. Semgrep is also now used as the default Static Application Security Testing (SAST) tool in Gitlab for Python, Javascript, and Typescript.

As opposed to most static analysis tools, Semgrep makes it easy to define your own rule by providing a Domain Specific Language (DSL) to write code patterns that looks like regular code. You can easily learn and experiment with Semgrep by using a web-based editor called the Playground.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c0d07213-1426-46a1-98e0-0b0c4515c841/779fd4ab-5249-4eb4-ba96-f5ab064ffacc-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/pNXeW9yY1Vg5ubcXQ3bpxg</video:player_loc><video:duration>884</video:duration><video:rating>0</video:rating><video:view_count>65</video:view_count><video:publication_date>2021-08-31T08:41:15.492Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2021/videos">OCaml Workshop 2021</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/tS1oUk1EbyTDQvRrUYMciG</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/5e783783-056e-46c9-b1de-60fddbd36aee.jpg</video:thumbnail_loc><video:title>Towards A Debugger for Native Code OCaml</video:title><video:description>Towards A Debugger for Native-Code OCaml — by Fabrice Le Fessant, Pierre Chambart</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e1a22cf8-5522-4c05-a8d4-af445bc73556/bf33e3d0-95f1-4ce1-ad78-a4c890bfcd03-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/tS1oUk1EbyTDQvRrUYMciG</video:player_loc><video:duration>1357</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2021-10-02T01:54:48.408Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2015/videos">OCaml Workshop 2015</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/v34naErmNr7y4qdotdwdFr</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/6f55ff79-72d5-4492-b824-8464783f31c2.jpg</video:thumbnail_loc><video:title>Operf - Benchmarking the OCaml Compiler</video:title><video:description>Operf: Benchmarking the OCaml Compiler — by Pierre Chambart, Fabrice Le Fessant, Vincent Bernardoff</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/eb229518-1108-46bd-b8b2-3ce8b886c96f/a8d0c420-ee34-4931-b489-47629ef2cf8e-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/v34naErmNr7y4qdotdwdFr</video:player_loc><video:duration>1626</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2021-09-11T02:11:32.589Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2015/videos">OCaml Workshop 2015</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/oz5KCNdMuzCED9iiceHyjL</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/f4d75771-8394-438f-b8eb-86baff8863d6.jpg</video:thumbnail_loc><video:title>Core Time stamp counter - A fast high resolution time source</video:title><video:description>Core Time stamp counter - A fast high resolution time source</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/b6c7860d-e6eb-4404-96c3-917b81ee1f98/1059c50a-75b9-4e70-a309-459a03866c1a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/oz5KCNdMuzCED9iiceHyjL</video:player_loc><video:duration>1455</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-09-11T02:42:33.957Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2015/videos">OCaml Workshop 2015</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/b3xUFdLpAhPTpjHkoQFzir</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/01724d60-213c-4570-8db2-26a555304d3d.jpg</video:thumbnail_loc><video:title>Specialization of Generic Array Accesses After Inlining</video:title><video:description>Specialization of Generic Array Accesses After Inlining — by Ryohei Tokuda, Eijiro Sumii, Akinori Abe</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/515689cc-4736-4e1e-9f9f-be363b4551af/4cb206f0-c8cb-4bcd-9098-61ba6cf657e0-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/b3xUFdLpAhPTpjHkoQFzir</video:player_loc><video:duration>1250</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-02T01:42:07.586Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2015/videos">OCaml Workshop 2015</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/ffyriuY9eGRkAVhd8iXF9w</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/db12715d-3333-4568-80f6-e41edc813e1b.jpg</video:thumbnail_loc><video:title>Inline Assembly in OCaml</video:title><video:description>Inline Assembly in OCaml — by Vladimir Brankov</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/736857f3-99d9-46fb-9b4a-92eba42b2672/792b631a-db75-4ee1-8f20-5d75328ed21f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/ffyriuY9eGRkAVhd8iXF9w</video:player_loc><video:duration>1445</video:duration><video:rating>0</video:rating><video:view_count>45</video:view_count><video:publication_date>2021-10-02T01:45:22.792Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2015/videos">OCaml Workshop 2015</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/e5pW5PBJpgR8W9bXhQV7Nx</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/36c5055b-7c67-4208-97cc-448f52814ab0.jpg</video:thumbnail_loc><video:title>The State of OCaml</video:title><video:description>The State of OCaml (invited talk) — by Xavier Leroy</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/69e486cd-191d-430b-8a41-0be0f806096b/e31660d9-2d41-48ce-b65f-23b9b3288cfd-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/e5pW5PBJpgR8W9bXhQV7Nx</video:player_loc><video:duration>1530</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2021-10-02T01:51:45.256Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2015/videos">OCaml Workshop 2015</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/2QQuHnXvGgoFM7611uMX6X</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/43586bbe-9d65-4283-88b7-3583d9ee6282.jpg</video:thumbnail_loc><video:title>The State of the OCaml Platform - September 2015</video:title><video:description>The State of the OCaml Platform: September 2015 — by Anil Madhavapeddy, Amir Chaudhry, Thomas Gazagnaire, Jeremy Yallop, David Sheets</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/0eeab9cb-8984-4323-bad7-0630192c635d/235567d8-11d2-488b-be60-5d981e803544-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/2QQuHnXvGgoFM7611uMX6X</video:player_loc><video:duration>1934</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-02T01:54:41.728Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2015/videos">OCaml Workshop 2015</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/fmXWna1WyCGJbN51Cw6AWg</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/3973b521-c198-4a18-93a1-7190f8f811da.jpg</video:thumbnail_loc><video:title>A Case for Multi-Switch Constraints in OPAM</video:title><video:description>A Case for Multi-Switch Constraints in OPAM - by Fabrice Le Fessant (INRIA)

Package managers usually only deal with packages and their versions, and the constraints on their dependencies towards other packages’ versions. Among package managers, opam is probably the first one to introduce the notion of switch, i.e. the ability to manage different directories, where different sets of packages with different versions are installed, as each directory is treated as an independent universe when solving depen- dency constraints. In this talk, we will support a case to be able, in opam, to manage different switches in the same universe, allowing to express dependency constraints that cross switch boundaries.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/744d4a0b-a44c-4040-853c-6be5223ec43b/b2097520-4ae7-4dfa-9337-e4df704816f8-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/fmXWna1WyCGJbN51Cw6AWg</video:player_loc><video:duration>225</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-10-02T02:02:32.873Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/tvZL6bzvfM6c3iVbXZYTae</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/cb3f10b6-c34c-4b7e-af35-a056675d8ccd.jpg</video:thumbnail_loc><video:title>A Proposal for Non-Intrusive Namespaces in OCaml</video:title><video:description>A Proposal for Non-Intrusive Namespaces in OCaml, by Pierrick Couderc (I), Fabrice Le Fessant (I+O), Benjamin Canou (O), Pierre Chambart (O); (I = INRIA, O = OCamlPro)

We present a work-in-progress about adding namespaces to OCaml. Inspired by other lan- guages such as Scala or C++, our aim is to de- sign and formalize a simple and non-intrusive namespace mechanism without complexifying the core language. Namespaces in our ap- proach are a simple way to define libraries while avoiding name clashes. They are also meant to simplify the build process, clarify- ing and reducing (to zero whenever possible) the responsibility of external tools.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/ded6e8bb-aebd-4fd2-989f-3f0b2b8efaf3/e4d9eb81-4993-4546-a1a2-89200d1b643a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/tvZL6bzvfM6c3iVbXZYTae</video:player_loc><video:duration>1546</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-02T02:04:48.044Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/xb34CNYKTwC51ahyaYLQuN</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/f355df78-a634-408c-952e-73312d8b92e3.jpg</video:thumbnail_loc><video:title>Coq of OCaml</video:title><video:description>Coq of OCaml, by Guillaume Claret

The CoqOfOCaml project is a compiler from a subset of the OCaml language to the Coq programming language. This com- piler aims to allow reasoning about OCaml programs, or to im- port existing OCaml libraries in Coq.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/fc7201df-ec27-4735-a51d-d3170d390346/9110af5d-2a7d-445d-ad91-ae04cf7f14e3-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/xb34CNYKTwC51ahyaYLQuN</video:player_loc><video:duration>1225</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2021-10-02T02:06:52.778Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/bxPfjtQLuMSZSfWuKBFZ2d</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/f03f27d0-ca66-40b3-938d-65230885cd85.jpg</video:thumbnail_loc><video:title>Ephemerons meet OCaml GC</video:title><video:description> Ephemerons meet OCaml GC, by François Bobot

Garbage collectors (GCs) manage the memory for the programmers and help to ensure the safety of the programs by freeing memory only when it cannot be used anymore. GCs detect that a memory block can’t be used when it is not reachable through pointers from memory blocks that are used. In order to allows the GC to free memory blocks and to avoid memory leaks, programmers must take care to not keep reachable any memory block which is not useful anymore.
A difficulty arises when one wants to cache or memoize the computation of a function because one wants to keep the result as long as the argument and the function are used. In this presentation we call this the requirement. The first part of the presentation will show that it is not possible to find a general satisfactory solution for this problem with the current OCaml GC by going through tentative solutions with increasing complexity. Then we will present how the OCaml GC can be extended with ephemerons to solve the problem.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/556c8f75-b456-43a3-b9cb-97ae35b82072/5570855b-8cba-43ea-b01c-d0cb69cd82af-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/bxPfjtQLuMSZSfWuKBFZ2d</video:player_loc><video:duration>1467</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-10-02T02:09:19.827Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/vCXFHFpiZ1DGTyorNcxrZY</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/6f0ed101-6c6f-4380-8a98-118ba6783fff.jpg</video:thumbnail_loc><video:title>Github Pull Requests for OCaml development - a field report</video:title><video:description>Github Pull Requests for OCaml development - a field report, by Gabriel Scherer

On 2014/01/30, we started an experiment allowing users to submit and discussion patches to the OCaml distribution on its Github mirror rather than through the existing Mantis bugtracking system. The experiment is time-bounded and the decision is due to be revisited in late July. The main goal of the experiment is to evaluate whether Github makes maintainers life easier, by streamlining the patch submission and review process and, in particular, encouraging non-maintainers to participate in the patch evaluation process. There were also claims of usability benefits for the patch submitters themselves, and the more subjective aspect of sending a signal that the development is more open that sometimes perceived.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f0021d24-9104-4672-a363-de5c1c514c2e/29cb8d19-2748-41af-88b3-bf76f6fffd36-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/vCXFHFpiZ1DGTyorNcxrZY</video:player_loc><video:duration>852</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-02T02:09:58.770Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/kywgM6sBEdMrkx2VFeg9zg</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9cdceddf-7460-4843-acdd-99bdf0315732.jpg</video:thumbnail_loc><video:title>High Performance Client-Side Web Programming with SPOC and Js of ocaml</video:title><video:description>High Performance Client-Side Web Programming with SPOC and Js of ocaml - by Mathias Bourgoin and Emmmanuel Chailloux (Université Pierre et Marie Curie)

We present WebSpoc, an OCaml GPGPU library targeting web applications that is built upon SPOC and js of ocaml. SPOC is an OCaml GPGPU library focusing on abstracting memory trans- fers, handling GPGPU computations and offering easy portability. Js of ocaml is the OCaml bytecode to JavaScript compiler. Thus, WebSpoc provides high performance computations from the web browser while benefitting from OCaml, and SPOC high level of abstraction to increase expressivity as well as productivity.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/9e68174a-5c92-41f1-abdf-387a6cca7cf1/203f7f7a-8e51-4867-a7b5-c72e24abb40e-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/kywgM6sBEdMrkx2VFeg9zg</video:player_loc><video:duration>1067</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-02T02:49:14.435Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/kHoYZN7tvx2mG4GZK61dBo</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/0522b690-1b00-4c83-b30a-9d7437b953f9.jpg</video:thumbnail_loc><video:title>Improving Type Error Messages in OCaml</video:title><video:description>Improving Type Error Messages in OCaml, by Arthur Charguéraud (INRIA &amp; Université Paris Sud)

Cryptic type error messages are a major obstacle to learning OCaml. In many cases, error messages cannot be interpreted with- out a sufficiently-precise model of the type inference algorithm. However, improving type error messages in ML is a hard problem. This problem has received quite a bit of attention over the past two decades, and many different strategies have been considered. Un- fortunately, none of these strategies has so far proved its ability to scale up to a full-blown ML implementation.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/9fa54aee-6b2f-492f-abbe-51affc07ec24/15b8b41f-31a7-45ba-aa6d-4702b3398c96-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/kHoYZN7tvx2mG4GZK61dBo</video:player_loc><video:duration>918</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-02T02:52:41.884Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/59ThCCFsLxxh8Xo15zp1GC</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/64211d01-b071-4755-a1ba-abf86f7800c8.jpg</video:thumbnail_loc><video:title>Introduction to 0install</video:title><video:description>Introduction to 0install by Thomas Leonard

0install (pronounced “Zero Install”) is a decentralised cross-platform package manager. “Decentralised” means that organisations and individuals can host their software in their own package repositories, without naming con- flicts. “Cross-platform” means that it works on Linux, OS X, Unix and Windows. “Package management” means support for binary and source packages, dependency res- olution, automatic updates and digital signature verifica- tion.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/21a21c83-a35d-4c09-b13c-8f060590c45c/649ff7f6-5b83-4644-998b-12687923737a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/59ThCCFsLxxh8Xo15zp1GC</video:player_loc><video:duration>1414</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2021-10-02T02:54:53.718Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/bwKSbpYzuREtAVf1whuTsP</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/bdca687f-b58e-4167-b7d3-86daacaf4395.jpg</video:thumbnail_loc><video:title>Irminsule - a branch-consistent distributed library database</video:title><video:description>Irminsule - a branch-consistent distributed library database</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/5546bb89-93a3-4407-a810-2d437479025f/fd1a2a96-0df5-4646-9cd6-0665f13cce54-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/bwKSbpYzuREtAVf1whuTsP</video:player_loc><video:duration>272</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-10-03T21:56:52.709Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/pVd46nB1MNMd7stt9KHrSx</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/ee8640c9-d827-498b-8e20-bed53e7481f7.jpg</video:thumbnail_loc><video:title>LibreS3 - design, challenges, and steps toward reusable libraries</video:title><video:description>LibreS3 - design, challenges, and steps toward reusable libraries</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c1b00980-3a4f-4222-b539-392815f7954f/b3f9db92-522e-4754-8c78-217eccb70a3b-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/pVd46nB1MNMd7stt9KHrSx</video:player_loc><video:duration>444</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2021-10-03T21:57:39.057Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/a29E1rkXQQ7NLtMPbisbTc</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/07162af4-06f9-4d3c-954a-4c35dc87fd21.jpg</video:thumbnail_loc><video:title>Multicore OCaml</video:title><video:description>Multicore OCaml, by Stephen Dolan, Leo White, Anil Madhavapeddy (University of Cambridge).

Currently, threading is supported in OCaml only by means of a global lock, allowing at most thread to run OCaml code at any time. We present ongo- ing work to design and implement an OCaml runtime capable of shared-memory parallelism.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/490b5363-01b6-45d8-9b7e-c883a20026a1/d69a7284-9661-4ea7-98b7-7b1003e4c47f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/a29E1rkXQQ7NLtMPbisbTc</video:player_loc><video:duration>1947</video:duration><video:rating>0</video:rating><video:view_count>20</video:view_count><video:publication_date>2021-10-03T21:59:49.549Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/7VougoZtFmg128499k7jfA</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/460d1b9a-8dfe-477c-b8a9-9b44f9be104d.jpg</video:thumbnail_loc><video:title>Nullable Type Inference</video:title><video:description>Nullable Type Inference, by Michel Mauny and Benoît Vaugon

We present type inference algorithms for nullable types in ML-like programming languages. Starting with a sim- ple system, presented as an algorithm, whose only inter- est is to introduce the formalism that we use, we replace unification by subtyping constraints and obtain a more in- teresting system. We state the usual properties for both systems. This is work in progress.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/380b1c2e-6298-49fc-88a1-c440ece29c76/7911a3c0-5be7-472f-8cc0-16dded501154-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/7VougoZtFmg128499k7jfA</video:player_loc><video:duration>291</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-03T22:00:18.779Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/qbYS78ZPLUFGkcaB9UheCR</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/486bbc91-0e44-4024-99e1-61326e1c95af.jpg</video:thumbnail_loc><video:title>OCamlOScope - a New OCaml API Search</video:title><video:description>[OCamlOScope](http://ocamloscope.herokuapp.com) is a new search engine for OCaml programming. Tons of OCaml library packages, modules, types, constructors, functions and values can be searched via simple string queries.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c3e3cf25-0fa7-46ad-b0bf-f313bad7142d/576f768d-96c7-42b6-81f8-8feef5171859-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/qbYS78ZPLUFGkcaB9UheCR</video:player_loc><video:duration>1126</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2021-10-03T22:01:54.239Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/g54RdoWcvp9nKykB4gQ16F</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/fbc3103b-30f2-45d9-85ce-95732b8e7f74.jpg</video:thumbnail_loc><video:title>Simple, efficient, sound-and-complete combinator parsing</video:title><video:description>This proposal describes a parsing library that is based on current work due to be published as Simple, efficient, sound and complete combinator parsing for all context-free grammars, using an oracle.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/7a0a6d3c-dad0-4fe8-9c35-78cbfbd431d9/23533a95-0bff-44fd-bf1b-1256c3e333a2-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/g54RdoWcvp9nKykB4gQ16F</video:player_loc><video:duration>872</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2021-10-03T22:03:25.164Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/7Uuh26GnbLPXGAQ13xExpX</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/052d59ac-f44a-4730-aed6-47dd6a6f2405.jpg</video:thumbnail_loc><video:title>The OCaml Platform v1.0</video:title><video:description>The OCaml Platform v1.0, by Anil Madhavapeddy

The OCaml Platform combines the OCaml compiler toolchain with a coherent set of tools for build, documen- tation, testing and IDE integration. The project is a collab- orative effort across the OCaml community, tied together by the OCaml Labs group in Cambridge and with other major contributors listed above. The requirements of the Platform are being guided by the industrial OCaml Consortium (primarily Jane Street, Citrix and Lexifi).

This talk follows up the OCaml 2013 talk that introduced the Platform. Since then, many tools have been released in parallel via the OPAM package manager, and this year’s talk will demonstrate the concrete workflow that ties them together (see Figure 2). We will first recap the Platform ethos briefly, update on the OPAM package manager v1.2, and conclude with the Platform workflow.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/37eaef0e-d826-4452-bf84-f04244a85ce9/b5256cbd-4b19-444f-833a-7c0c67f12820-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/7Uuh26GnbLPXGAQ13xExpX</video:player_loc><video:duration>1887</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2021-10-03T22:06:15.953Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/3asrA23hbFyJiUMsDbARmM</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9b6f683f-8726-4b78-ac8b-4dae7217eace.jpg</video:thumbnail_loc><video:title>The State of OCaml (invited), Xavier Leroy</video:title><video:description>The State of OCaml (invited), Xavier Leroy</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/11844424-be9b-4427-b3dd-24c3e4ff85a9/acc45bdb-0c44-4f91-8ef2-b127684863a5-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/3asrA23hbFyJiUMsDbARmM</video:player_loc><video:duration>1429</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2021-10-03T22:07:14.955Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/1qFiytWAE1dJMuvLrKTGkW</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c1f04a1e-5cd8-41f5-8bef-25122319e6a5.jpg</video:thumbnail_loc><video:title>Transport Layer Security purely in OCaml</video:title><video:description>Transport Layer Security purely in OCaml by Hannes Mehnert and David Kaloper Meršinjak

Transport Layer Security purely in OCamlTransport Layer Security (TLS) is probably the most widely de- ployed security protocol on the Internet. It is used to setup virtual private networks, secure various services such as web and email, etc. In this paper we describe our clean slate TLS implementa- tion developed in OCaml.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/03721258-b275-4c98-8a0b-9e4606b32fec/0be9b39d-11c3-4d2c-804e-a8502a4eb468-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/1qFiytWAE1dJMuvLrKTGkW</video:player_loc><video:duration>1099</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-03T22:08:27.076Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/9jcdDDCoeyqVTaHyYeBR3i</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/23d48007-16ab-4e49-b979-0cf79fd685ce.jpg</video:thumbnail_loc><video:title>Using Preferences to Tame your Package Manager</video:title><video:description>Using Preferences to Tame your Package Manager</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/43536918-a6e5-4a53-a680-bed527319e31/e975434c-b0aa-4d43-92e7-e3d0dccf1886-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/9jcdDDCoeyqVTaHyYeBR3i</video:player_loc><video:duration>1791</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-10-03T22:10:19.844Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2014/videos">OCaml Workshop 2014</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/wR8rzFWTUDeGCtNSfxq93N</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/102b2860-a3eb-4afb-adfc-16ee06418028.jpg</video:thumbnail_loc><video:title>Biocaml - the OCaml bioinformatics library</video:title><video:description>Biology is an increasingly computational discipline due to rapid advances in experimental techniques, especially DNA sequencing, that are generating data at unprecedented rates. The computational techniques needed range from the complex (.e.g algorithms, distributed computing) to the simple (e.g. scripting, parsing), and there are hundreds of thousands of Biologists now involved in computing. We propose that OCaml can serve virtually the full spectrum of computational tasks needed by Biologists, improving both programmer productivity and computational efficiency. To support this end, we have developed Biocaml.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f9ce30b3-8143-4516-85f1-07c28f6337b2/47b11a5f-4c20-4089-8871-d42a4d858f01-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/wR8rzFWTUDeGCtNSfxq93N</video:player_loc><video:duration>1285</video:duration><video:rating>0</video:rating><video:view_count>9</video:view_count><video:publication_date>2021-10-03T22:15:01.407Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/rGbw4FdqMvoSttUYzD8npe</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/7b044637-259c-4b30-875b-4c4563ce23aa.jpg</video:thumbnail_loc><video:title>Ocsigen_Eliom - the state-of-the-art and the prospects</video:title><video:description>Ocsigen/Eliom: The state of the art, and the prospects, by Benedikt Becker and Vincent Balat</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/d010b30f-61d5-4d70-b10a-518a7a6e1e3f/ed15357b-a3fa-4a05-975b-ef97b01ec374-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/rGbw4FdqMvoSttUYzD8npe</video:player_loc><video:duration>746</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2021-10-03T22:15:47.662Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/q6taFXcS82BPwBvidTei1P</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/d1a815bb-e8ed-4d99-808a-a78d1f512712.jpg</video:thumbnail_loc><video:title>OCamlCC - raising low-level byte code to high-level C</video:title><video:description>OCamlCC - raising low-level byte code to high-level C, by Michel Mauny Benoît Vaugon

We present preliminary results about OCamlCC, a compiler producing native code from OCaml bytecode executables, through the generation of C code.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c31ec9fa-7c65-46f5-bbc9-77c6ac87bf0b/472851a7-4008-4997-aac8-0170e111753b-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/q6taFXcS82BPwBvidTei1P</video:player_loc><video:duration>1006</video:duration><video:rating>0</video:rating><video:view_count>11</video:view_count><video:publication_date>2021-10-03T22:17:09.763Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/3YiLW4PfeStDUdf29aPtDH</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/09ec226c-3670-47b3-b944-94684cf86d36.jpg</video:thumbnail_loc><video:title>Study of OCaml programs' memory behaviour</video:title><video:description>Study of OCaml programs’ memory behaviour, by Çagdas Bozman, Thomas Gazagnaire, Fabrice Le Fessant and Michel Mauny.

In this paper, we present a preliminary work on new memory profiling tool and others, to help us to understand memory behaviour.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/180ee1ea-6fa8-4dba-aa69-e3901cc3147f/35e6a8dc-cf98-4e86-967d-b8e8be34ee80-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/3YiLW4PfeStDUdf29aPtDH</video:player_loc><video:duration>759</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2021-10-03T22:19:07.925Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/tVLuve88Lj2zGrKpy9wDMB</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1a0f9278-1e15-45c8-b7ae-ee882f4a3360.jpg</video:thumbnail_loc><video:title>Implementing an interval computation library for OCaml</video:title><video:description>Implementing an interval computation library for OCaml, by Jean-Marc Alliot, Charlie Vanaret, Jean-Baptiste Gotteland, Nicolas Durand and David Gianazza.

In this paper we present two implementation of interval arithmetics for Ocaml on x86/amd64 architectures. The first one is simply a binding to the classical MPFI/MPFR library. It provides access to multi-precision floating point arithmetic and multi-precision floating point interval arithmetic. The second implementation has been natively written in assembly language for low-level functions and in ocaml for higher-level functions ans is as fast as classical C or C++ implementations of interval arithmetic.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e228951b-f544-4bd6-892a-2aca7e2065f9/0fe2691d-654e-4735-abbb-a569db173c0f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/tVLuve88Lj2zGrKpy9wDMB</video:player_loc><video:duration>808</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-03T22:21:59.398Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/8LgaNPaTym7J4t8AnPRUXr</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/4dfc2ff3-3c53-4e7c-85ed-907df5b1faff.jpg</video:thumbnail_loc><video:title>An LLVM backend for OCaml</video:title><video:description>An LLVM backend for OCaml by Colin Benner.

As part of my bachelor thesis I have implemented a new backend for the OCaml nativecode compiler ocamlopt for the AMD64 architecture. It uses the Low Level Virtual Machine framework (LLVM, an optimising compiler framework) to generate machine specific assembly code. The goal was to find out, how well LLVM is suited for implementing a backend for OCaml.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3ede0b76-e250-4a43-af42-83c394cf4497/250b81ec-bb2b-44d6-a6d2-81260f98462f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/8LgaNPaTym7J4t8AnPRUXr</video:player_loc><video:duration>565</video:duration><video:rating>0</video:rating><video:view_count>22</video:view_count><video:publication_date>2021-10-03T22:23:18.701Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/iGqnHCkhjvgUhuL1jAsjC3</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/6850a57a-15c1-4f8c-8cdb-b0a818f0bcc4.jpg</video:thumbnail_loc><video:title>Async</video:title><video:description>Mark Shinwell and David House, Jane Street Europe.

We propose to give a talk about Jane Street's Async library. This is an industrial-strength library for writing correct concurrent programs without having to think (too hard).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/8f50211a-1210-4849-a940-ea6e0bd1e022/a3363657-8b9c-47e3-9db4-a50c10befba5-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/iGqnHCkhjvgUhuL1jAsjC3</video:player_loc><video:duration>1056</video:duration><video:rating>0</video:rating><video:view_count>20</video:view_count><video:publication_date>2021-10-03T22:25:11.006Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/7FbUJKBdHh6cV7SpEngjDC</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/90298af3-37a4-4420-9e3c-b30cb1369559.jpg</video:thumbnail_loc><video:title>Programming the Xen cloud using OCaml</video:title><video:description>Programming the Xen cloud using OCaml by David Scott, Anil Madhavapeddy and Richard Mortier.

The Xen Cloud Platform (XCP)1 is an open-source software distribution that converts clusters of physical computers into many virtual machines, all isolated from each other via the Xen hypervisor. XCP is a large, mature and widely deployed OCaml codebase that is used as mission-critical software on hundreds of thousands of hosts today.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/360f8fe3-3268-44da-a0c4-b37c26aa7e36/9865897c-ee1c-427d-a7ba-e468d8a96bf3-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/7FbUJKBdHh6cV7SpEngjDC</video:player_loc><video:duration>667</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2021-10-03T22:29:04.690Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/98c8teSzg6dC2PPjcuk3ph</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/5f1f0afd-001f-4b15-976c-013a426360ac.jpg</video:thumbnail_loc><video:title>gloc - Metaprogramming WebGL Shaders with OCaml</video:title><video:description>
gloc : Metaprogramming WebGL Shaders with OCaml, by David William Wallace Sheets and Ashima Arts.

WebGL is a new Khronos Group standard for GPU-accelerated rendering by in-browser JavaScript applications. WebGL introduces a new language, WebGLSL, to the WWW ecosystem. WebGL implementations consume WebGLSL source to produce GPU instructions for graphics rendering. WebGLSL lacks many high-level language features such as user-defined namespaces and modules. The language also includes several powerful but poorly defined features such as a lexical preprocessor and non-orthogonal overloading.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/41ca2c8d-2238-44ca-8744-70f114fbd326/4002d4c6-0843-4129-8f79-dadff61a1a90-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/98c8teSzg6dC2PPjcuk3ph</video:player_loc><video:duration>1011</video:duration><video:rating>0</video:rating><video:view_count>17</video:view_count><video:publication_date>2021-10-03T22:33:00.872Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/tanq1P42BTc1cucceD1cWS</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b00f092f-2b96-4623-b55b-ed5e505f4d76.jpg</video:thumbnail_loc><video:title>OCamlPro - promoting OCaml use in industry</video:title><video:description>OCamlPro exists with the mission of promoting the successful use of OCaml in industry. OCamlPro builds a professional environment for the development of OCaml applications, including IDE integration, development tools and services. These include training, consulting and tailored software development for specific needs.  Part of OCamlPro's work has been to improve OCaml accessibility to help popularise its use worldwide, and we provide tools to this end. In this talk, I will present this work and some proposals for the future of OCaml.

Fabrice le Fessant, OCamlPro</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/dbf5a276-460c-45f4-b488-924cec7db3aa/689a0138-b50a-4eb3-91aa-5e4af874b165-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/tanq1P42BTc1cucceD1cWS</video:player_loc><video:duration>938</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2021-10-03T22:34:20.640Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/general/videos">general</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/mS5C66UwAisZ6tY4rPAMuZ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/ea912a23-6e8b-40ec-ac45-81af2d01617a.jpg</video:thumbnail_loc><video:title>Real-world debugging in OCaml</video:title><video:description>Real-world debugging in OCaml, by Mark Shinwell</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/a8f4cf6b-9971-484b-ab5b-34a16fde1185/050f6d0b-270f-404f-94d4-64ec97fc8667-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/mS5C66UwAisZ6tY4rPAMuZ</video:player_loc><video:duration>1102</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2021-10-03T22:35:41.668Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/8wjz4kGwPXniv1EvRuE18h</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/480b953a-f17e-498c-9822-c82828ca9c0c.jpg</video:thumbnail_loc><video:title>Automatic analysis of industrial robot programs</video:title><video:description>Automatic analysis of industrial robot programs, by Markus Weißmann</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3cebba55-4032-4de5-93b5-8f3f67c04736/3db3c178-e55c-41fa-a04a-45ec49e7b79e-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/8wjz4kGwPXniv1EvRuE18h</video:player_loc><video:duration>1222</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2021-10-03T22:38:09.817Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/bfJ4242mcpvWRzysrMZPFh</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/5bbbdabf-622b-4496-8d43-7c2515300678.jpg</video:thumbnail_loc><video:title>Arakoon - a distributed consistent key-value store</video:title><video:description>Arakoon - a distributed consistent key-value store, by Nicolas Trangez.

Arakoon is a simple consistent distributed key value store. Technically, it’s an OCaml implementation of Multi-Paxos on top of Tokyo Cabinet, using Ocsigen’s Light Weight Thread (Lwt) library for managing concurrency. Arakoon offers guaranteed consistency (as opposed to even- tual consistency), range queries, transactions, server side extensions and shards. It’s robust and fits the niche of small but important data items quite well.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/5309b701-9def-47a4-8240-8a5b17a70b5a/3fd06fd6-43a5-4d79-9c8b-8ca0db6677c7-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/bfJ4242mcpvWRzysrMZPFh</video:player_loc><video:duration>811</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2021-10-03T22:38:56.202Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/cdVuJzQHSemq6X7g4KpxEE</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b1e66943-a372-4909-a8f6-70470546e69d.jpg</video:thumbnail_loc><video:title>Experiments in Generic Programming</video:title><video:description>Experiments in generic programming: runtime type representation and implicit values, by Pierre Chambart &amp; Grégoire Henry</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/5ae26b10-9a5d-4395-89c6-a2e28e68d206/9c342174-b8a9-416e-be8a-1a2b1892f314-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/cdVuJzQHSemq6X7g4KpxEE</video:player_loc><video:duration>880</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2021-10-03T22:40:53.446Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/8UasGCviGqTPzNYgLZyPt1</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c4083614-edd9-445f-85a4-e2ae470c761e.jpg</video:thumbnail_loc><video:title>OPAM - an OCaml Package Manager</video:title><video:description>OPAM - an OCaml Package Manager, by Thomas Gazagnaire.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3ff87a10-3785-41e6-ba47-acab21fcfa8a/d63a4d67-3aec-490f-ad54-bfb5f7a520a5-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/8UasGCviGqTPzNYgLZyPt1</video:player_loc><video:duration>1000</video:duration><video:rating>0</video:rating><video:view_count>10</video:view_count><video:publication_date>2021-10-03T22:42:00.207Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/hcjdw7UXvjRcbMVUsHRj5M</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b9c74825-d374-4afb-9c5f-82cab13c1bb8.jpg</video:thumbnail_loc><video:title>DragonKit - an extensible language oriented compiler</video:title><video:description>DragonKit - an extensible language oriented compiler, by Wojciech Meyer</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/8326a03e-02d5-4b32-8789-b7a76c30cf95/7048808f-d45d-434a-8d3f-fa66f93c7cb8-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/hcjdw7UXvjRcbMVUsHRj5M</video:player_loc><video:duration>809</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-10-03T22:44:22.886Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/9zSnzKYKAndzSTFSqRZ2Bq</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/491ac4a3-8274-4f0d-9897-d88eece06dc4.jpg</video:thumbnail_loc><video:title>OCaml Companion Tools</video:title><video:description>OCaml Companion Tools, by Xavier Clerc.

The objective of this talk is to present several tools that aim to ease the development of software written with the OCaml language. These tools are particularly suited to help the developer during the debugging phase. Although this part of the development process is often overlooked in the functional community, such tools can dramatically reduce development time.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/4583b254-82f9-4176-9f39-2bc0bb6a9c22/e60d5c6d-e3e8-46b8-9bdb-871fb23964b5-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/9zSnzKYKAndzSTFSqRZ2Bq</video:player_loc><video:duration>948</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2021-10-03T22:45:24.958Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/nLCoLAvBHUAaYYyhjF3K7A</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9feccd59-f677-4be6-bcf4-a07977ef5b29.jpg</video:thumbnail_loc><video:title>The State of OCaml</video:title><video:description>The State of OCaml, Xavier Leroy</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/b04b10c1-b924-4f58-8aa9-4527dcc11d8a/dd80bf21-1572-43af-bbf7-ec5d658e28eb-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/nLCoLAvBHUAaYYyhjF3K7A</video:player_loc><video:duration>1243</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2021-10-03T22:49:54.276Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/jBhskj2hekwRvyb8dn1bfj</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/513c6f1c-df55-448f-a1db-2f13d430fdab.jpg</video:thumbnail_loc><video:title>Towards an OCaml Platform</video:title><video:description>Towards an OCaml Platform, by Yaron Minsky</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/96b1ab00-94a8-4059-aec6-a06a9c73c736/eb65f130-1b1f-4561-9ae6-9dae305fe144-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/jBhskj2hekwRvyb8dn1bfj</video:player_loc><video:duration>855</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2021-10-03T23:06:53.043Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/76suJPXG7UUEt9eNqDJAcg</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/61fe2572-358b-4110-9748-485a2e3ceffa.jpg</video:thumbnail_loc><video:title>Presenting Core</video:title><video:description>Presenting Core, by Yaron Minsky

Core is Jane Street's alternative to the OCaml standard library. The need for
an alternative to the standard library is clear: OCaml's standard library is
well implemented, but it's narrow in scope, and somewhat idiosyncratic in its
interfaces.

Core's origin's date back 10 years, to the first uses of OCaml at Jane Street.
Today, Core is at the base of the multi-million-line OCaml codebase at Jane
Street, which is actively used by on the order of a hundred people at Jane
Street for their daily work.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3159e115-948e-4f67-9d45-403bef003c35/cee81f64-8f48-40dc-bf54-feb50c3f5f69-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/76suJPXG7UUEt9eNqDJAcg</video:player_loc><video:duration>958</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2021-10-03T23:08:42.826Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2012/videos">OCaml Users and Developers Workshop 2012</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/oTTiyGgtyELmJUfeqWeoFu</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/d7e64359-41c9-47d5-8f6d-9953db6555b3.jpg</video:thumbnail_loc><video:title>What's new in OCamls 4.03</video:title><video:description>What is new in OCaml 4.03? by Damien Doligez</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/b967996a-3dab-415f-8e51-d8908361b2b2/857196bf-792d-44ef-9808-710a7a9b5c71-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/oTTiyGgtyELmJUfeqWeoFu</video:player_loc><video:duration>1317</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2021-10-08T23:45:42.515Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/q9ofbrsihDTuVvc7XoumvC</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9f922a48-9902-4f08-b4f7-8b6437cf47e7.jpg</video:thumbnail_loc><video:title>The State of the OCaml Platform</video:title><video:description>The State of the OCaml Platform: September 2016 
by Louis Gesbert, on behalf of the OCaml Platform team</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c386fc95-092e-4ea7-9317-91edf287fea6/f261b1a1-0317-419d-b3ae-4ec594558a8d-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/q9ofbrsihDTuVvc7XoumvC</video:player_loc><video:duration>1629</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2021-10-09T00:00:01.325Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/uWJvzik5LKSTkroghup5oJ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c1911047-e6b0-4673-b0ed-8716533cd601.jpg</video:thumbnail_loc><video:title>Learning OCaml: An Online Learning Centre for OCaml</video:title><video:description>Learn OCaml: An Online Learning Center for OCaml, by Benjamin Canou, Grégoire Henry, Çagdas Bozman and Fabrice Le Fessant.

We present Learn OCaml, a Web application that packs a set of learning activities for people who want to learn OCaml. It includes an integrated and reworked version of the venerable Try OCaml, and an exercise environment with automated grading derived from the one developed for the OCaml MOOC. It works entirely in the browser, the server being used for storing static files and synchronizing between different devices. A special effort has been made to make it usable on tablets, and even mobiles. A main public instance will be hosted at OCamlPro, but the project is open-source, and universities can host their own version on site. We will also provide a public repository for teachers to contribute lessons and exercises.
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/ea643e64-2393-4c24-9ccf-7216e3ded2ce/f24c1e8f-1dd0-47ae-a3fe-d1f4818389ea-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/uWJvzik5LKSTkroghup5oJ</video:player_loc><video:duration>1513</video:duration><video:rating>0</video:rating><video:view_count>30</video:view_count><video:publication_date>2021-10-09T00:16:14.033Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/692EqDPCBFp4DgNfNycZLn</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/fdad6056-bd71-4401-9391-5cb5b4bfa06e.jpg</video:thumbnail_loc><video:title>Continuous Monitoring of OCaml Applications Using Runtime Events</video:title><video:description>The upcoming 5.0 release of OCaml includes a new runtime tracing system designed for continuous monitoring of OCaml applications called Runtime Events. It enables very low overhead, programmatic access to performance data emitted by the OCaml runtime and
is designed to be extensible to application-generated events. This talk focuses on the implementation of Runtime Events and the user experience of writing applications exploiting this new feature.

The [demo repository is online](https://github.com/patricoferris/runtime-events-demo).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/299cab02-db94-44ac-b926-ea90ddda1b09/75607b26-fb76-4562-8103-118a4ecedc27-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/692EqDPCBFp4DgNfNycZLn</video:player_loc><video:duration>978</video:duration><video:rating>5</video:rating><video:view_count>54</video:view_count><video:publication_date>2022-09-16T11:07:11.073Z</video:publication_date><video:tag>ICFP2022</video:tag><video:tag>OCaml2022</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/epgSoiPbtdioGF4BjEUk7e</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/51391b6c-3323-4a30-abb0-2c7990b3b5db.jpg</video:thumbnail_loc><video:title>Stack allocation for OCaml</video:title><video:description>Stack allocation for OCaml

Stephen Dolan (Jane Street)
Leo White (Jane Street)

Allocating values on a stack instead of the garbage collected heap can improve performance by improving cache locality and avoiding GC pauses. However, it requires that the values do not escape the lifetime of their associated stack frame. We describe an extension to OCaml that allows values to be allocated on a stack and ensures through the type system that they do not escape their stack frame.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/6c86b050-334b-4a11-bb04-c347a6e57215/ef7086d1-7f4f-4b70-a96f-bae0fe0ee1bf-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/epgSoiPbtdioGF4BjEUk7e</video:player_loc><video:duration>1332</video:duration><video:rating>5</video:rating><video:view_count>54</video:view_count><video:publication_date>2022-11-09T11:57:11.772Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/2jgPjSseS7FWAkeVtkWqsc</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/f6850c67-39bc-45b4-bf00-8e6238baa413.jpg</video:thumbnail_loc><video:title>Efficient “out of heap” pointers for multicore OCaml</video:title><video:description>Efficient “out of heap” pointers for multicore OCaml

Guillaume Munch-Maccagnoni (INRIA)

This paper reports an experiment with a large pages allocator for the OCaml runtime, with measured performance improvements. A large pages allocator (also known in the literature under other names: superpages, etc.) is a standard component of a memory allocator that stands between the OS and user-facing allocators (e.g. minor and major heaps) and which reserves and manages large chunks of contiguous memory. The OCaml runtime currently gives up a good amount of control by assigning this role to the system allocator. Other languages have a simple implementation from which practical lessons can be learnt (especially in terms of portability), such as the one from the Go runtime. 
Control over large pages affect (traditionally) the components implementing virtual address translation (hardware-level page table, TLB), in particular by leveraging (hardware-level) huge pages. It also enables (more specifically) efficient implementations of the OCaml page table, a data structure used in various parts of the OCaml runtime to classify pointers, to distinguish for instance which blocks belong to the heaps and which ones are “out-of-heap” during the marking phase of the GC. 
One goal was to evaluate the possible performance of a page table for multicore OCaml. While I did not use original techniques, some of the results are unexpected a priori based on expressed beliefs in the OCaml community. 
In essence, this paper reports the good hypothetical performance, in rigorous practical terms, of embedding (borrowing) linearly-allocated values inside garbage-collected values. A companion submission to the ML workshop reports a symmetrical result: how to efficiently embed (own) garbage-collected values inside linearly-allocated values. Taken together, the broader motivation is to show the feasibility of basing linear allocation with re-use (Lafont 1988, Baker 1992) in languages that would...</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/0aa64600-b142-4c11-964d-dab8d509d08f/e7895426-61bf-4ff7-ac82-a4aeb33779e3-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/2jgPjSseS7FWAkeVtkWqsc</video:player_loc><video:duration>1101</video:duration><video:rating>0</video:rating><video:view_count>13</video:view_count><video:publication_date>2022-11-09T12:17:51.845Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/svcjBBikRYhjj3JZJKhBRk</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/7594e9b6-ab48-47dd-9da7-5b42c5a4a24f.jpg</video:thumbnail_loc><video:title>Memo: an incremental computation library that powers Dune</video:title><video:description>Memo: an incremental computation library that powers Dune

Andrey Mokhov (Jane Street)
Arseniy Alekseyev (Jane Street)

We present Memo, an incremental computation library that supports a new, faster and more scalable, file-watching build mode in Dune 3.0. The requirements from the build systems domain make Memo a unique point in the design space of incremental computation libraries. Specifically, Memo needs to cope with concurrency, dynamic dependencies, dependency cycles, and non-determinism, provide support for efficiently collecting and reporting user-friendly errors, and scale to computation graphs containing tens of millions of incremental nodes.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/d6a126b9-05f6-4b0f-ac6b-ad14d9bf12c9/4a21408d-11cc-4a77-a584-f264ca45a379-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/svcjBBikRYhjj3JZJKhBRk</video:player_loc><video:duration>1047</video:duration><video:rating>0</video:rating><video:view_count>28</video:view_count><video:publication_date>2022-11-09T12:22:19.757Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/64N6AFMfrfz7wpNJ5rsJsQ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/50176590-0805-4125-ae46-7555c5d69474.jpg</video:thumbnail_loc><video:title>Homogeneous builds with OBuilder and OCaml</video:title><video:description>Homogeneous builds with OBuilder and OCaml

Tim McGilchrist (Tarides)
David Allsopp (Tarides UK)
Patrick Ferris (Tarides)
Antonin Décimo (Tarides)
Thomas Leonard (Tarides UK)
Anil Madhavapeddy (University of Cambridge, UK)
Kate Deplaix (Tarides UK)

OBuilder - Homogeneous builds with OBuilder and OCaml 
This talk will present a lightweight sandboxing solution (OBuilder) that works beyond the usual Linux containerisation solutions, providing support for macOS, Windows and the BSDs without requiring full (expensive) virtualisation. We will cover the implementation for macOS and Windows, the challenges encountered with providing sandboxes on such different platforms, and how this work is being used to provide cross-platform builds to the OCaml community. 
We previously introduced OCaml-CI (OCaml Workshop 2020 “OCaml-CI : A Zero-Configuration CI”) providing an opionated, fast-feedback CI system for OCaml projects. Since the end of 2020, opam-repo-ci has provided a similar service for testing pull requests to opam-repository. Both of these systems use OBuilder to provide support for multiple operating systems and hardware architectures.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/29055525-2b0f-4f00-a0a0-26c9d4e97f9c/09456d63-68f3-4135-9898-8bab0454800f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/64N6AFMfrfz7wpNJ5rsJsQ</video:player_loc><video:duration>1164</video:duration><video:rating>0</video:rating><video:view_count>8</video:view_count><video:publication_date>2022-11-09T12:25:34.976Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/8jt1UXcnMuwLyK4Ca5ErGn</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b41c4404-47d5-4a59-8baf-a17671156f5f.jpg</video:thumbnail_loc><video:title>Tracing OCaml Programs</video:title><video:description>Tracing OCaml Programs

Darius Foo (National University of Singapore)
Wei-Ngan Chin (National University of Singapore)

This presentation will cover a framework for application-level tracing of OCaml programs. We outline a solution to the main technical challenge, which is being able to log typed values with lower overhead and maintenance burden than existing approaches. We then demonstrate the tools we have built around this for visualizing and exploring executions.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3b4401ec-f0a8-44bb-97ad-18e05c2135f9/0991c4a2-ece5-46db-ac3b-a0a3adadf6dc-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/8jt1UXcnMuwLyK4Ca5ErGn</video:player_loc><video:duration>1082</video:duration><video:rating>0</video:rating><video:view_count>12</video:view_count><video:publication_date>2022-11-09T12:29:33.743Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/1rWj4jYyaDkmMjdH4KNcv6</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9443d37b-6a7a-4a90-ac14-48520c1ab0c7.jpg</video:thumbnail_loc><video:title>Supporting a decade of opam</video:title><video:description>Supporting a decade of opam

David Allsopp (Tarides UK)
Raja Boujbel (OCamlPro)
Kate Deplaix (Tarides UK)
Louis Gesbert (OCamlPro)

OPAM 1.2 was released in 2014. It was four years before opam 2.0 succeeded it, and another three for opam 2.1. The release of opam 2.2 is imminent, and will have arrived just a year after its predecessor. This talk presents features added to opam 2.1 intended to make dealing with multiple versions of opam easier. We see how small additional metadata, both stored in .opam “roots” and also added to opam’s command line provide opam’s developers with the chance to add new features more easily, with confidence that users will be able to upgrade safely. 
In presenting this, we’ll also trumpet some of what we think are the amazing new features of opam 2.1 (and 2.2), and why we think you should keenly watch for new releases and upgrade immediately on release!</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/039f1096-a63c-4a88-af4b-dcc48791d723/338de5f3-9004-4e2f-8a52-d53aedd452fc-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/1rWj4jYyaDkmMjdH4KNcv6</video:player_loc><video:duration>1026</video:duration><video:rating>0</video:rating><video:view_count>30</video:view_count><video:publication_date>2022-11-09T12:33:22.580Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/e2ixmgxjwuFT9KpJU3Nrid</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/ae5c8a14-6780-4384-b67c-399f9f233f9b.jpg</video:thumbnail_loc><video:title>Bindoj library, a datatype-centric generative programming library</video:title><video:description>Introducing the Bindoj library, a datatype-centric generative programming library for real-world programming in OCaml

Haochen M. Kotoi-Xie (Kotoi-Xie Consultancy, Inc.)
Hirotetsu Hongo (Kotoi-Xie Consultancy, Inc.)
Yuta Sato (Kotoi-Xie Consultancy, Inc.)
Shinya Yamaguchi (Kotoi-Xie Consultancy, Inc.)

We propose to give a talk at the OCaml Users and Developers Workshop 2022, about our to-be-open-sourced project Bindoj being developed at KXC (Kotoi-Xie Consultancy, Inc.) Bindoj is a generative programming tooling library written in OCaml that centering around descriptions of datatypes which are mainly used in business / application logics.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/69755b27-85b1-4df4-9f01-b771cd15353a/22018ac3-d389-4c83-beff-743b64c6f425-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/e2ixmgxjwuFT9KpJU3Nrid</video:player_loc><video:duration>1062</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2022-11-09T12:36:56.300Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/qBUGXYYUWg4YA2SJd31Az8</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/129a91d7-e8d1-4eba-97ad-17d1f160f69a.jpg</video:thumbnail_loc><video:title>Highest-performance Stream Processing</video:title><video:description>Highest-performance Stream Processing

Oleg Kiselyov (Tohoku University, Japan)
Tomoaki Kobayashi (Tohoku University)
Aggelos Biboudis (Oracle)
Nick Palladinos (Nessos Information Technologies, SA)

We present the stream processing library that achieves the highest performance of existing OCaml streaming libraries, attaining the speed and memory efficiency of hand-written state machines. It supports finite and infinite streams with the familiar declarative interface, of any combination of map, filter, take(while), drop(while), zip, flatmap combinators and tupling. Experienced users may use the lower-level interface of stateful streams and implement accumulating maps, compression and windowing. The library is based on assured code generation (at present, of OCaml and C) and guarantees in all cases complete fusion.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c75ed758-d513-4453-af68-c50c1d9a1469/01dfe7e3-22c4-4f61-ac0b-fa01282dd766-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/qBUGXYYUWg4YA2SJd31Az8</video:player_loc><video:duration>942</video:duration><video:rating>0</video:rating><video:view_count>80</video:view_count><video:publication_date>2022-11-09T12:40:25.884Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/n2WkgiLoftLPQggASECkRE</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/3508c107-3f53-4000-b4d6-15ccfb72f070.jpg</video:thumbnail_loc><video:title>Supporting FLAT concepts in Learn-OCaml</video:title><video:description>Supporting FLAT concepts in Learn-OCaml: seeing is believing, programming is understanding

Artur Miguel Dias (NOVA University of Lisbon and NOVA LINCS)
Simão Melo de Sousa (Universidade da Beira Interior and NOVA LINCS)
Antonio Ravara (NOVA LINCS &amp; FCT, NOVA University of Lisbon)

We present the motivation and principles that lead to the development of support for exercises on Formal Languages and Automata Theory in Learn-OCaml, its integration with OFLAT, our web based teaching environment (mostly implemented in OCaml), its uses in the classroom in two Portuguese Universities, and in supporting students independent work.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/aa552395-666e-4394-a42f-faaa6f3da92c/92c12b4e-f9e1-4bc2-88c4-a9f2de07e4fb-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/n2WkgiLoftLPQggASECkRE</video:player_loc><video:duration>1094</video:duration><video:rating>0</video:rating><video:view_count>15</video:view_count><video:publication_date>2022-11-09T12:46:56.888Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/iitZi3Dofy4TbKHebrNe2y</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/485ae080-f057-4f0d-be1e-c88ad2a22ab7.jpg</video:thumbnail_loc><video:title>Copying opam switches – it should Just Work™</video:title><video:description>Copying opam switches – it should Just Work™

David Allsopp (Tarides UK)

OCaml’s ecosystem centres around compilation from source code, rather than precompiled binaries. The compiler itself is only provided as a source distribution and OCaml’s official package repository in opam also manages source code packages only. 
Even on a high spec. machine, compiling OCaml from source code takes a minute, for many users, it’s slower. The recommended workflows1 for OCaml development focus on having a compiler installation for each individual project. 
Various solutions are available downstream for trying to reduce the set-up required to get a working OCaml compiler for a project ranging from predistributed binaries to rewriting binary artefacts. 
This talk presents an unexpected journey which began as a series of fixes to eliminate some esoteric failures of OCaml programs to launch, yet ended with a series of relatively simple changes to OCaml which allow various downstream workarounds to be brought home to upstream OCaml.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/8c1c3fda-0106-4c7d-a794-33da7e758fee/3c3bf5c2-5f03-4ccb-bade-f1a8344f4e5d-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/iitZi3Dofy4TbKHebrNe2y</video:player_loc><video:duration>700</video:duration><video:rating>5</video:rating><video:view_count>33</video:view_count><video:publication_date>2022-11-09T12:44:19.614Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/26QYo5u2zadp5TEddBPksQ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/a3feaba9-56eb-4aa2-aad4-99a3ed77dfc1.jpg</video:thumbnail_loc><video:title>Composing Schedulers using Effect Handlers</video:title><video:description>Composing Schedulers using Effect Handlers

Deepali Ande (IIT Madras)
KC Sivaramakrishnan (IIT Madras and Tarides)

OCaml 5 introduces effect handlers as a mechanism for con- current programming. With effect handlers, concurrency can be expressed in direct-style rather than in monadic-style as in Lwt and Async. Rather than baking in the notion of a thread scheduler, the compiler exposes delimited continuations, with the idea that different libraries may implement their own concurrency primitive, with their own schedulers. Under this setting, given that the notion of a concurrent task is tied to a particular scheduler, it is challenging to allow tasks from different schedulers to interact with each other. If this problem is not solved, the ecosystem runs the risk of repeating the schism between Lwt and Async in OCaml today. 
In this paper, we observe that the composability of effect handlers permits composability of schedulers. The key idea is that we can use effect handlers to define a uniform interface for suspending and resuming tasks, which is implemented by each of the schedulers. On top of this, we define scheduler-agnostic synchronization structures that allow tasks from different schedulers to interact. We also report on how this mechanism can be extended to capture the notion of task cancellation that extends across different schedulers</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/08ea09a1-e645-47cb-80c4-499dd4d93ac8/561448a4-6c9f-48b0-a4be-7bf6c7a20ec6-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/26QYo5u2zadp5TEddBPksQ</video:player_loc><video:duration>719</video:duration><video:rating>0</video:rating><video:view_count>44</video:view_count><video:publication_date>2022-11-09T12:50:10.820Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/qJm8mKUgCr1KroxXiQXgLZ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1cc87793-9cec-454a-905b-1c52a97776fd.jpg</video:thumbnail_loc><video:title>Multicoretests - Parallel Testing Libraries for OCaml 5.0</video:title><video:description>Multicoretests - Parallel Testing Libraries for OCaml 5.0

Jan Midtgaard (Tarides)
Olivier Nicole (Tarides)
Nicolas Osborne (Tarides)

Parallel and concurrent code is notoriously hard to test because of the involved non-determinism, yet it is facing OCaml programmers with the coming OCaml 5.0 multicore release. We present two related testing libraries to improve upon the situation: - Lin – a library to test for linearizability - STM – a state-machine testing library 
Both libraries build on QCheck, a black-box, property-based testing library in the style of QuickCheck. The two libraries represent different trade-offs between required user effort and provided guarantees and thereby supplement each other.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c844f844-acc1-4a8a-944e-4d99343a89c5/f434d2b3-d416-4a52-88bb-aafe3d08ca71-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/qJm8mKUgCr1KroxXiQXgLZ</video:player_loc><video:duration>1087</video:duration><video:rating>0</video:rating><video:view_count>11</video:view_count><video:publication_date>2022-11-09T12:53:16.253Z</video:publication_date><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2022/videos">OCaml Workshop 2022</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/9qwnNTNBBxy4Rm63QCvHgZ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1dc20eb1-2898-48ff-bf3f-544c775b392e.jpg</video:thumbnail_loc><video:title>Lock free programming for the masses</video:title><video:description>KC Sivaramakrishnan and Theo Laurent at OCaml Workshop 2016</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/4435adfc-e97e-42c5-8bb7-1578bd76e42b/79edd594-7463-4a2b-adb6-901e89f72cfe-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/9qwnNTNBBxy4Rm63QCvHgZ</video:player_loc><video:duration>1681</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2023-01-04T01:32:53.854Z</video:publication_date><video:tag>2016</video:tag><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/eXcM79e81pP2kFfELcpuZL</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/a22ae328-d483-433f-a388-42de0cb29e00.jpg</video:thumbnail_loc><video:title>Conex -- establishing trust into data repositories</video:title><video:description>Hannes Mehnert, Louis Gesbert at OCaml Workshop 2016</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/70fbf7db-28dc-4798-b068-460b5d93df4e/7966e916-2359-4948-9b49-aed066e37e8e-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/eXcM79e81pP2kFfELcpuZL</video:player_loc><video:duration>1335</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2023-01-04T01:59:23.157Z</video:publication_date><video:tag>opam</video:tag><video:tag>ICFP</video:tag><video:tag>OCaml</video:tag><video:tag>2016</video:tag><video:tag>conex</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/8aqJ9K6W3uQemAqUwbvXeE</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/7ca45ca6-3fe4-4429-b7da-56ab18f3210f.jpg</video:thumbnail_loc><video:title>SundialsML: interfacing with numerical solvers</video:title><video:description>Timothy Bourke, Jun Inoue, Marc Pouzet </video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3a00e727-45da-4c4a-a446-927cb28bb6bc/f2688400-4578-45a4-8418-4e79340da128-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/8aqJ9K6W3uQemAqUwbvXeE</video:player_loc><video:duration>1280</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2023-01-04T01:51:55.542Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>2016</video:tag><video:tag>sundialsml</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/dVn5C6AUBfZ9f1oEhmyuN2</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/ce1396e3-29f7-4419-8817-fd3d1d6eadc4.jpg</video:thumbnail_loc><video:title>OCaml inside: a drop in replacement for libtls</video:title><video:description>Enguerrand Decorne, Jeremy Yallop, David Kaloper Meršinjak</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/68a11315-f7ca-4c0e-a043-98008694671d/0dc3be03-7610-43f0-9a8b-5909f69d69f0-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/dVn5C6AUBfZ9f1oEhmyuN2</video:player_loc><video:duration>1199</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2023-01-04T02:00:32.370Z</video:publication_date><video:tag>2016</video:tag><video:tag>mirageos</video:tag><video:tag>tls</video:tag><video:tag>ocaml</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/iTr2rY4bbNiwzL99y3tchT</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/22e1eac2-83d4-4af4-a5c2-0852afbee4eb.jpg</video:thumbnail_loc><video:title>Semantics for the Lambda intermediate language</video:title><video:description>Pierre Chambart</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/90d9b62f-f9d6-4dd5-a7fc-f584e45ef0b7/2e7f7918-0965-4a2f-bc4d-548cfcf4bddf-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/iTr2rY4bbNiwzL99y3tchT</video:player_loc><video:duration>1522</video:duration><video:rating>0</video:rating><video:view_count>8</video:view_count><video:publication_date>2023-01-04T02:02:16.014Z</video:publication_date><video:tag>2016</video:tag><video:tag>OCaml</video:tag><video:tag>lambda</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/2jvjDKd5iwd3CNQupd6Hrq</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/55fba346-262d-4925-841d-dad58e694467.jpg</video:thumbnail_loc><video:title>Generic Programming in OCaml</video:title><video:description>Florent Balestrieri, Michel Mauny</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/0aae98b9-3d0c-427b-af09-802b671dd66e/f4aa979a-79a3-4a75-95ac-74519d0ff7fd-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/2jvjDKd5iwd3CNQupd6Hrq</video:player_loc><video:duration>1636</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2023-01-04T02:02:55.023Z</video:publication_date><video:tag>generic</video:tag><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:tag>2016</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/jRjUqDDbPb2RWETLcv9TLx</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/3527c880-96e8-4bfb-b9b4-a668597f488f.jpg</video:thumbnail_loc><video:title>Who's got you mail? Mr  Mime!</video:title><video:description>Romain Calascibetta</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/98a7972d-9323-46b3-81cc-dd86a4cc1ab3/07ca1956-7748-418e-8cf0-7e78313a0906-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/jRjUqDDbPb2RWETLcv9TLx</video:player_loc><video:duration>1074</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2023-01-04T02:14:15.720Z</video:publication_date><video:tag>mirageos</video:tag><video:tag>ICFP</video:tag><video:tag>OCaml</video:tag><video:tag>2016</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/b2KP5hMngXkyVU3z7yNLpG</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/4a3d2057-bb16-4bfd-bdcf-2e6ea3c0345b.jpg</video:thumbnail_loc><video:title>Improving the OCaml web stack</video:title><video:description>Spiridon Eliopoulos</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/513a2157-6844-4823-bef7-b26f3b635fbe/77c68f5c-5535-4ede-827c-073624e7b13a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/b2KP5hMngXkyVU3z7yNLpG</video:player_loc><video:duration>1319</video:duration><video:rating>0</video:rating><video:view_count>10</video:view_count><video:publication_date>2023-01-04T02:17:05.399Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>ICFP</video:tag><video:tag>web</video:tag><video:tag>2016</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2016/videos">OCaml Workshop 2016</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/k5qVNP7ZsESaRBb6TMXZ6D</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/5c63a3fd-40fe-45e8-849e-6b0876ab915a.jpg</video:thumbnail_loc><video:title>Genspio: Generating Shell Phrases in OCaml</video:title><video:description>Speaker: Sebastien Mondet</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/9a7bf8cc-38c5-4f67-ab25-0ea1388100d3/8cddb61f-96aa-4d1f-9453-b73938f0f7de-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/k5qVNP7ZsESaRBb6TMXZ6D</video:player_loc><video:duration>1224</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2023-01-04T03:07:19.416Z</video:publication_date><video:tag>ICFP</video:tag><video:tag>OCaml 2017</video:tag><video:tag>shell</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2017/videos">OCaml Workshop 2017</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/rYwB78EYMsU24qtTX1wLVp</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/70430102-7697-48eb-85e0-9d76fb712a94.jpg</video:thumbnail_loc><video:title>Owl: A General-Purpose Numerical Library in OCaml</video:title><video:description>Speaker: Liang Wang</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/d258fa91-ddb6-40d8-96de-e9ac97e8c899/766ab129-3ca8-435a-a4e0-0ad2151dbd9d-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/rYwB78EYMsU24qtTX1wLVp</video:player_loc><video:duration>1331</video:duration><video:rating>0</video:rating><video:view_count>9</video:view_count><video:publication_date>2023-01-04T02:46:45.194Z</video:publication_date><video:tag>Numerical Computing</video:tag><video:tag>ICFP</video:tag><video:tag>OCaml 2017</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2017/videos">OCaml Workshop 2017</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/kHdcbm9Sj45z7iGCutQ2W2</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/29f8a1a6-3728-4b27-9cd4-889c70ad1a7d.jpg</video:thumbnail_loc><video:title>Documenting OCaml</video:title><video:description>Documenting OCaml, (Invited Talk: Florian Angeletti)</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/9f9ea4a5-4d6a-4da5-9080-833b25c26511/530c6570-866d-4715-a117-e22b9108a02c-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/kHdcbm9Sj45z7iGCutQ2W2</video:player_loc><video:duration>738</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2023-01-04T02:44:44.663Z</video:publication_date><video:tag>ICFP</video:tag><video:tag>documentation</video:tag><video:tag>OCaml 2017</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2017/videos">OCaml Workshop 2017</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/isoqFvd2Y8RQ1BhpaFHghL</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/e89d8c31-6100-4b14-97af-8bb02519dc86.jpg</video:thumbnail_loc><video:title>Extending OCaml's `open`</video:title><video:description>Speaker: Runhang Li</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/8d5a83f5-ad98-4f45-9259-c84194134c20/56f73866-12b9-4b9a-9aab-017806b02cae-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/isoqFvd2Y8RQ1BhpaFHghL</video:player_loc><video:duration>960</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2023-01-04T03:10:34.798Z</video:publication_date><video:tag>OCaml 2017</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2017/videos">OCaml Workshop 2017</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/853TrgYUXM68Sasa53SR4a</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/241e14b9-6e25-4eda-bf95-9d33074666bc.jpg</video:thumbnail_loc><video:title>State of the OCaml Platform 2017</video:title><video:description>Anil Madhavapeddy</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3940b98a-6b33-41f7-b0e7-4b7ae5ec2b4b/d8b2c156-f5ad-44ff-aac0-8d0296147b4a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/853TrgYUXM68Sasa53SR4a</video:player_loc><video:duration>1873</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2023-01-04T02:51:28.940Z</video:publication_date><video:tag>OCaml Platform</video:tag><video:tag>OCaml 2017</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2017/videos">OCaml Workshop 2017</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/vB78yNRerdowkoa79GfUDA</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/102d80ec-67b4-41a5-9905-70d63a68b4ad.jpg</video:thumbnail_loc><video:title>OCaml on Windows in 2017</video:title><video:description>OCaml on Windows, Invited Talk: David Allsopp</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/efbfd4c3-8e73-464b-a14c-c8de9f58a984/01d438ba-6d91-4326-a1d6-ea7f2ee9c2c8-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/vB78yNRerdowkoa79GfUDA</video:player_loc><video:duration>720</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2023-01-04T02:50:00.892Z</video:publication_date><video:tag>OCaml 2017</video:tag><video:tag>OCaml Windows</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2017/videos">OCaml Workshop 2017</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/iLG9kEympo9oF7n3zDXHKJ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/22f3201e-98a3-4172-863b-bca26d356a11.jpg</video:thumbnail_loc><video:title>New contributors to OCaml, an invited talk</video:title><video:description>New Contributors talk, Invited Talk: Sébastien Hinderer</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/8fe8d294-ae8c-4f55-9750-c69fabfc8d34/ca265fe5-d9ec-48e5-9891-268da1b4c515-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/iLG9kEympo9oF7n3zDXHKJ</video:player_loc><video:duration>950</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2023-01-04T02:50:08.773Z</video:publication_date><video:tag>OCaml 2017</video:tag><video:tag>ICFP</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2017/videos">OCaml Workshop 2017</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/5v2yJFQMXP6eCcNKDsQMUU</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/0f045c03-56e5-496b-9393-088316a519c0.jpg</video:thumbnail_loc><video:title>Wall: rendering vector graphics with OCaml and OpenGL</video:title><video:description>Speaker: Frédéric Bour</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/2472168c-04aa-497d-a931-f866c7036550/a1675c7f-7b24-4bad-90c3-c77e2ecf9198-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/5v2yJFQMXP6eCcNKDsQMUU</video:player_loc><video:duration>1275</video:duration><video:rating>0</video:rating><video:view_count>7</video:view_count><video:publication_date>2023-01-04T02:52:03.456Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>ICFP 2018</video:tag><video:tag>Graphics</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2018/videos">OCaml Workshop 2018</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/aTSfkVb4QEAJM2Dc9Vw886</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/bf412566-70b3-4be4-99e4-46789e33b447.jpg</video:thumbnail_loc><video:title>Winning on Windows: porting the OCaml platform</video:title><video:description>Speaker: David Allsopp</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/5020256d-eeb0-4e0b-81db-cde8ba00e3d7/05218dc4-8997-45ef-b55c-096bc5bfce13-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/aTSfkVb4QEAJM2Dc9Vw886</video:player_loc><video:duration>1320</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2023-01-04T03:39:28.464Z</video:publication_date><video:tag>Ocaml</video:tag><video:tag>ICFP 2018</video:tag><video:tag>Windows</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2018/videos">OCaml Workshop 2018</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/nCUM7H8YeJ3jh3ZncT111r</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/fd4bd408-ae52-4dee-aedf-5aab29c35179.jpg</video:thumbnail_loc><video:title>R&amp;B: Towards bringing functional programming to everyday's web programmer</video:title><video:description>Speaker: Hongbo Zhang</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/af37368d-085d-431d-923f-cd1d81dfdbe9/3490bb62-62c8-4dce-9aaa-e7d87c5d6abc-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/nCUM7H8YeJ3jh3ZncT111r</video:player_loc><video:duration>1170</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2023-01-04T03:32:39.255Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>ICFP 2018</video:tag><video:tag>Web Programming</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2018/videos">OCaml Workshop 2018</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/wxzotMY82xd4CPqAqHfmGx</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/5ef79cb1-000b-425f-8a42-4e1f67219636.jpg</video:thumbnail_loc><video:title>Relit: Implementing Typed Literal Macros in Reason</video:title><video:description>Speaker: Charles Chamberlain</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f75acae0-c24d-4d19-958e-0c76ff51603f/7ad268c4-1572-4219-a65b-7c0b47dc14c2-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/wxzotMY82xd4CPqAqHfmGx</video:player_loc><video:duration>1296</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2023-01-04T02:58:32.802Z</video:publication_date><video:tag>ICFP 2018</video:tag><video:tag>OCaml</video:tag><video:tag>MetaProgramming</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2018/videos">OCaml Workshop 2018</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/1k1T919WGXoT4tjnRZEmMd</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/bdc3ee5c-9c6f-4f8c-8ab8-b292767777e2.jpg</video:thumbnail_loc><video:title>Introduction to Eio by Thomas Leonard</video:title><video:description>This talk introduces the Eio library, a replacement for Lwt that uses the new effects and multicore features in OCaml 5. It was an internal tech talk given at Tarides, but we later decided to share it more widely.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/02a7accc-2a2c-44d5-889e-d75e1489946e/d0f41329-4a7f-4070-ad27-896e005645dc-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/1k1T919WGXoT4tjnRZEmMd</video:player_loc><video:duration>3643</video:duration><video:rating>5</video:rating><video:view_count>941</video:view_count><video:publication_date>2023-03-03T09:36:03.399Z</video:publication_date><video:tag>eio</video:tag><video:tag>ocaml</video:tag><video:tag>multicore</video:tag><video:tag>effects</video:tag><video:tag>concurrency</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/tarides_tech_talk/videos">Tarides Tech Talks</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/nmtxFx5zDJLbEXRhraf3JU</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/79b46298-d08a-4752-b6e1-481fbe7500dd.jpg</video:thumbnail_loc><video:title>k-CAS for sweat-free concurrent programming by Vesa Karvonen</video:title><video:description>Original upload: https://www.youtube.com/watch?v=1z8PshvWOF8

The slides, including full speaker's notes, can be found [here](https://gist.github.com/polytypic/3214389ad69b16d28b957ced86e1b1a4#k-cas-for-sweat-free-concurrent-programming).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/acebc363-12df-4cd6-aec0-e8239ab325e0/e257492f-5b51-40b5-b1f6-6eba38ea8c07-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/nmtxFx5zDJLbEXRhraf3JU</video:player_loc><video:duration>1861</video:duration><video:rating>0</video:rating><video:view_count>62</video:view_count><video:publication_date>2023-03-07T17:19:59.247Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>programming</video:tag><video:tag>multicore</video:tag><video:tag>k-cas</video:tag><video:tag>concurrent</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/tarides_tech_talk/videos">Tarides Tech Talks</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/pQSAfZ9kDSsSnr8Bxzocn3</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/bc2ce81f-16c2-42c2-bb2c-7d44f36296bb.jpg</video:thumbnail_loc><video:title>Outreachy Presentations for the December 2022 Round</video:title><video:description>The OCaml community participated in the December 2022 round of [Outreachy](https://www.outreachy.org/) internships. We had one intern work on a TopoJSON parsing library.

This meeting was an opportunity for the interns to present their work and for the community to ask questions and was [originally announced on the discuss forum](https://discuss.ocaml.org/t/monday-6th-march-outreachy-intern-presentation-dec-22-round/11564/4).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c1151157-94fa-4fac-8ef1-c6b6ce349970/c73d63ad-3bb4-4a0e-a8b0-3d767055adcd-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/pQSAfZ9kDSsSnr8Bxzocn3</video:player_loc><video:duration>1801</video:duration><video:rating>5</video:rating><video:view_count>28</video:view_count><video:publication_date>2023-03-07T16:04:16.313Z</video:publication_date><video:tag>outreachy</video:tag><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/vXJtTj3cULRa1bZB5HrecX</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/89cf6dcb-72dc-4f09-ac70-8a814b808f7b.jpg</video:thumbnail_loc><video:title>Outreachy Presentations for the May 2022 Round</video:title><video:description>The OCaml community participated in the May 2022 round of [Outreachy](https://www.outreachy.org/) internships. Two interns worked on a range of projects including Multicore OCaml benchmarks and TopoJSON parsing libraries.

This meeting was an opportunity for the interns to present their work and for the community to ask questions and was [originally announced on the discuss forum](https://discuss.ocaml.org/t/outreachy-summer-22-closing-commemoration-session-on-23rd-sept/10450).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f2a11bb2-a28f-4e59-a5de-4f5055fb90c1/761ea914-e280-4b3c-ae1e-04423e5e0f13-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/vXJtTj3cULRa1bZB5HrecX</video:player_loc><video:duration>2574</video:duration><video:rating>0</video:rating><video:view_count>32</video:view_count><video:publication_date>2023-03-07T16:05:33.751Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>outreachy</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/eSSmoyEcPTEXPGAqDtKENX</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c4712995-fb5d-4cbc-884e-88cd025772f6.jpg</video:thumbnail_loc><video:title>Outreachy Presentations for the December 2021 Round</video:title><video:description>The OCaml community participated in the December 2021 round of [Outreachy](https://www.outreachy.org/) internships. Three interns worked on a range of projects including OCaml's pre-processor ecosystem (PPX), a metrics system for the new ocaml.org website and improving the user experience in the VSCode plugin with better syntax highlighting. 

This meeting was an opportunity for the interns to present their work and for the community to ask questions and was [originally announced on the discuss forum](https://discuss.ocaml.org/t/friday-03-04-intern-presentations-open-attendance/9429).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/70610574-f213-4368-b4ae-8f7d44094883/8d62574e-ac2f-4481-9e80-597df986081e-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/eSSmoyEcPTEXPGAqDtKENX</video:player_loc><video:duration>3899</video:duration><video:rating>0</video:rating><video:view_count>48</video:view_count><video:publication_date>2023-03-07T16:12:57.251Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>outreachy</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/6RR6AjEY5FJLmb1iUohcvu</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/475dc63d-9a4a-4f3e-beff-e443c1db24cd.jpg</video:thumbnail_loc><video:title>Casually talking with Hongbo Zhang</video:title><video:description>Hongbo Zhang (@bobzhang1988), creator of BuckleScript and core maintainer of ReScript

Enjoying the video? Please, support the show for more content about OCaml, Reason and ReScript you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/2f73650f-79f5-44d6-87c1-ced0517c09da/529428c2-5664-4733-b14f-e8430c119647-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/6RR6AjEY5FJLmb1iUohcvu</video:player_loc><video:duration>3626</video:duration><video:rating>0</video:rating><video:view_count>15</video:view_count><video:publication_date>2023-03-17T19:57:51.243Z</video:publication_date><video:tag>twitch</video:tag><video:tag>ocaml</video:tag><video:tag>games</video:tag><video:tag>emelletv</video:tag><video:tag>rescript</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/iTDrQNvXnW5ENGbShXQVB6</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/47fb3b16-4ca7-4526-8b51-5dc1537b7e48.jpg</video:thumbnail_loc><video:title>Talking with Anil Madhavapeddy about OCaml, Tezos and @TrustedCarbon</video:title><video:description>Anil Madhavapeddy (@avsm), the face of OCaml

If you'd like to support the show for more content about OCaml, Reason and ReScript  you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/90e15dba-5a27-4897-a5fb-36bf32a01dd7/3be0a821-1406-4417-8573-71a066bf5f68-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/iTDrQNvXnW5ENGbShXQVB6</video:player_loc><video:duration>4498</video:duration><video:rating>0</video:rating><video:view_count>41</video:view_count><video:publication_date>2023-03-17T20:14:16.488Z</video:publication_date><video:tag>games</video:tag><video:tag>ocaml</video:tag><video:tag>tezos</video:tag><video:tag>twitch</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/anmQv9AoRW3foYa9NrXK6o</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/3dbdfa88-e33a-4f16-ab6b-52846ad300b9.jpg</video:thumbnail_loc><video:title>Causally talking with @Dinoosaure about Mirage OS 4.0</video:title><video:description>@Dinoosaure (Calascibetta Romain) core dev at Mirage OS


If you'd like to support the show for more content about OCaml, Reason and ReScript  you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/4bddb539-5034-4fe2-b2a9-175260262aac/f53bcc21-9fd4-432f-a83f-a98f757fc1d0-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/anmQv9AoRW3foYa9NrXK6o</video:player_loc><video:duration>3996</video:duration><video:rating>0</video:rating><video:view_count>17</video:view_count><video:publication_date>2023-03-17T18:22:53.118Z</video:publication_date><video:tag>emelletv</video:tag><video:tag>mirageos</video:tag><video:tag>ocaml</video:tag><video:tag>twitch</video:tag><video:tag>games</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/wEiEDtiRWuqddnFopZKDi5</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9ed5a603-432b-4323-977c-8c8414aa43ca.jpg</video:thumbnail_loc><video:title>Causally talking with Sean Grove about GraphQL, OneGraph and ReasonML</video:title><video:description>Sean Grove Founder of OneGraph

If you'd like to support the show for more content about OCaml, Reason and ReScript  you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f84b4f70-86ca-4918-b6cd-4770051728ba/7890656d-b171-4ab5-9c82-ec2b3c4a6696-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/wEiEDtiRWuqddnFopZKDi5</video:player_loc><video:duration>4131</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2023-03-17T20:21:19.604Z</video:publication_date><video:tag>graphql</video:tag><video:tag>reasonml</video:tag><video:tag>ocaml</video:tag><video:tag>onegraph</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/diKYNSqbUGEsDZ6hXxDvck</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1d3f35e6-e0aa-4bcf-aa38-39e1d14913ab.jpg</video:thumbnail_loc><video:title>Casually talking about ReScript, OSS, and communities with Patrick Ecker</video:title><video:description>Patrick (@ryyppy) is working with OSS in ReScript and part of the core team

If you'd like to support the show for more content about OCaml, Reason and ReScript  you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/63a8694b-8911-41cc-8754-4c1cad186d3d/9b1bdd0d-3c2f-42aa-ba26-ee9b427431d6-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/diKYNSqbUGEsDZ6hXxDvck</video:player_loc><video:duration>4368</video:duration><video:rating>0</video:rating><video:view_count>8</video:view_count><video:publication_date>2023-03-17T19:00:54.844Z</video:publication_date><video:tag>rescript</video:tag><video:tag>reasonml</video:tag><video:tag>bucklescript</video:tag><video:tag>community</video:tag><video:tag>open source</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/frRb1XtP1JLqbkjVnEKZud</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/480521b9-56f3-4d85-997b-7ed7dc405977.jpg</video:thumbnail_loc><video:title>Talking with Jaap Frolich about graphql-ppx</video:title><video:description>Jaap (@JaapFrolich) is working at Walnut and maintainer of graphql-ppx

If you'd like to support the show for more content about OCaml, Reason and ReScript  you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/74fbd6d8-8cb6-4c8d-bfb7-f030978fcde0/d0902b4d-cb25-4bd1-9a27-81b0f209d56c-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/frRb1XtP1JLqbkjVnEKZud</video:player_loc><video:duration>4284</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2023-03-17T19:15:11.456Z</video:publication_date><video:tag>reason</video:tag><video:tag>ppx</video:tag><video:tag>graphql</video:tag><video:tag>rescript</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/q8Vk2EeT3THKmK9npmAn1e</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c3735cff-1edd-401c-ae3d-327153b4c0ce.jpg</video:thumbnail_loc><video:title>Talking with Oscar Spencer about Grain Lang, WASM, PLT and ML</video:title><video:description>Oscar Spencer @oscar_spen is the co-author of Grain Lang
 

If you'd like to support the show for more content about OCaml, Reason and ReScript  you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c3766619-7cc7-437e-bf5c-fc3b6a675231/07b3fd94-e17e-40e5-b54d-0e5ad8278d5a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/q8Vk2EeT3THKmK9npmAn1e</video:player_loc><video:duration>3726</video:duration><video:rating>0</video:rating><video:view_count>11</video:view_count><video:publication_date>2023-03-17T19:33:34.063Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>Grain Lang</video:tag><video:tag>WASM</video:tag><video:tag>rescript</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/fdA2RG8tFbNojSFUYJRcv7</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/d6063608-535c-4a64-bdd7-d9691f2644fa.jpg</video:thumbnail_loc><video:title>Casually talking with Gabriel Radanne about OCaml, meta-programming and much more</video:title><video:description>Gabriel "Drup" Radanne researcher at Inria in the CASH research team

If you'd like to support the show for more content about OCaml, Reason and ReScript  you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/7321d6e6-6573-4c93-9a21-61f2541be4ec/32f446e1-dceb-480e-89df-7c93b32d7384-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/fdA2RG8tFbNojSFUYJRcv7</video:player_loc><video:duration>5147</video:duration><video:rating>0</video:rating><video:view_count>16</video:view_count><video:publication_date>2023-03-17T20:37:42.070Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>inria</video:tag><video:tag>drup</video:tag><video:tag>meta-programming</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/3bxFjLNQ5JwHdAvXcHHdG1</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/ab863370-0e79-417e-b21e-307fbfe9dbd8.jpg</video:thumbnail_loc><video:title>Casually talking with Eduardo Rafael about OCaml, Tezos and probably compilers</video:title><video:description>Eduardo is a streamer and a tech lead at @Marigold_Dev.
Join us in this episode to casually talk about OCaml, Tezos and probably compilers

If you'd like to support the show for more content about OCaml, Reason and ReScript you can now do so at https://www.patreon.com/emelletv or by sending any tez amount to emelletv.tez (tz1bQHQKT4BSoEreWKHuR3H5mme6fV3XCcvX)

Watch live at https://www.twitch.tv/emelletv</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/11ab3cbe-38b8-411c-a7aa-994c00f472d8/6bdbd9b5-097c-4c8d-b2d6-272cd6279b45-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/3bxFjLNQ5JwHdAvXcHHdG1</video:player_loc><video:duration>4512</video:duration><video:rating>0</video:rating><video:view_count>14</video:view_count><video:publication_date>2023-03-17T20:08:38.524Z</video:publication_date><video:tag>ocaml</video:tag><video:tag>blockchain</video:tag><video:tag>commpilers</video:tag><video:tag>tezos</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/w6aaXz285friXnPE6p2eqP</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/0d38e0d5-453a-42ca-b4f9-54d0998622e3.jpg</video:thumbnail_loc><video:title>Casually talking with Craig Ferguson about OCaml, Mirage, Irmin and more</video:title><video:description>Craig Ferguson is a software developer at Tarides. Join us in this episode to talk more about OCaml, MirageOS, Irmin and much more!

We are looking for sponsors! If you'd like to support more content for Ocaml, Reason and ReScript just send us a message at emelletvshow@gmail.com -- Watch live at https://www.twitch.tv/emelletv

0:00 Welcome
1:57 Interview starts</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f3aa87e9-67a1-4569-b154-67d2d185152b/9037b8b3-77ab-48ca-9fd5-4171c94d4138-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/w6aaXz285friXnPE6p2eqP</video:player_loc><video:duration>4017</video:duration><video:rating>0</video:rating><video:view_count>21</video:view_count><video:publication_date>2023-03-17T20:58:09.375Z</video:publication_date><video:tag>mirage</video:tag><video:tag>reasonml</video:tag><video:tag>ocaml</video:tag><video:tag>irmin</video:tag><video:tag>MirageOS</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/aEabwHEfXTKGxTNi6Xhy2a</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/6b016e42-8d26-4bda-ad15-dee0edfdaed3.jpg</video:thumbnail_loc><video:title>Talking with António Monteiro about Melange,  Esy, Reason, OCaml and more</video:title><video:description>If you would like to sponsor  the show contact https://twitter.com/davesnx

Consider sponsoring António's work: https://github.com/sponsors/anmonteiro</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/4e362b66-3362-4390-83a9-92cd8ec8f013/9c2dad9c-6559-4f9e-8ba1-faa762ca90a4-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/aEabwHEfXTKGxTNi6Xhy2a</video:player_loc><video:duration>3757</video:duration><video:rating>0</video:rating><video:view_count>41</video:view_count><video:publication_date>2023-03-17T21:10:48.335Z</video:publication_date><video:tag>Melange</video:tag><video:tag>esy</video:tag><video:tag>reasonml</video:tag><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/u95Usnr46V4JCcdSdrBYim</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/97c899e0-145f-4c1e-884c-f13e319fc184.jpg</video:thumbnail_loc><video:title>Talking with Gabriel Nordeborn  ReScript, Relay and everything else!</video:title><video:description>Talking with Gabriel Nordeborn  ReScript, Relay and everything else!</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e3e0dae6-5f69-43f2-bae9-65eaf1071ad6/9ee982d1-26f0-466f-ad6f-ee8f277fbad9-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/u95Usnr46V4JCcdSdrBYim</video:player_loc><video:duration>4162</video:duration><video:rating>0</video:rating><video:view_count>9</video:view_count><video:publication_date>2023-03-17T21:20:37.129Z</video:publication_date><video:tag>bucklescript</video:tag><video:tag>rescript</video:tag><video:tag>relay</video:tag><video:tag>reasonml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/emelletv/videos">emelle.tv</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/c6jKXFzwgrFzSwnxTM6eGX</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/723ee60d-2829-462f-b79d-d5174722430c.jpg</video:thumbnail_loc><video:title>Debugging Native OCaml with Breakpoints and Stepping</video:title><video:description>Debugging Native OCaml with Breakpoints and Stepping</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/59d2cdd9-3d1e-4a6a-ae0e-ab9ee2882dd3/dbcf18c1-6b5e-4626-8ed9-2abcb6919227-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/c6jKXFzwgrFzSwnxTM6eGX</video:player_loc><video:duration>696</video:duration><video:rating>5</video:rating><video:view_count>70</video:view_count><video:publication_date>2023-07-07T17:18:45.492Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/jonah_channel/videos">Second OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/vur2uhCFTZWQfDfkcbCPfC</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/754cfd8c-e24e-41d3-a73a-7151f70c58d1.jpg</video:thumbnail_loc><video:title>OCaml behind the scenes: Exceptions</video:title><video:description>In this talk, Fabrice Buoro explained what happens at the deepest level when your OCaml program raises or catches an exception. This inside knowledge will lead to a number of takeaways for best performance.

Slides and sources can be found at https://github.com/fabbing/obts_exn.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/eed144f1-23c7-4c78-a34e-850dd57225cc/37579627-7391-4fdc-b5ed-a60c5ea167f5-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/vur2uhCFTZWQfDfkcbCPfC</video:player_loc><video:duration>3352</video:duration><video:rating>5</video:rating><video:view_count>153</video:view_count><video:publication_date>2023-07-27T16:00:17.003Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/tarides_tech_talk/videos">Tarides Tech Talks</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/kTwq4AVQtRtFuQx9R5cPro</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/6fc5ecb9-611c-4e2c-b362-de67eb0d89b1.jpg</video:thumbnail_loc><video:title>Outreachy Presentations for the May 2023 Round</video:title><video:description>The OCaml community participated in the May 2023 round of Outreachy internships. Three interns worked on a range of projects including: MIDI over ethernet, persistent storage in MirageOS and improving error reporting in existing ppxlib-based ppxs.

This meeting was an opportunity for the interns to present their work and for the community to ask questions and was originally announced on the discuss forum.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/a10f4f85-d176-4f69-9ca9-1651c9262a74/a5ac8ff6-381a-4c00-bef7-7c9f22ba3440-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/kTwq4AVQtRtFuQx9R5cPro</video:player_loc><video:duration>5087</video:duration><video:rating>5</video:rating><video:view_count>43</video:view_count><video:publication_date>2023-09-18T13:15:08.648Z</video:publication_date><video:tag>outreachy</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/1RhQXW5NNqRtdxXgi12pD9</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9c7c43b9-de1a-440b-a7be-8298ae5f25e2.jpg</video:thumbnail_loc><video:title>Demo: Solo5 Unikernel Hosting the MirageOS www-htdocs on a Raspberry Pi</video:title><video:description>A demo showing a Solo5 unikernel hosting the MirageOS www-htdocs on a Raspberry Pi </video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/06e1d349-d082-4836-ab39-fb26d0898aae/0823baab-6d6a-42de-970b-b9677be7fee2-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/1RhQXW5NNqRtdxXgi12pD9</video:player_loc><video:duration>75</video:duration><video:rating>5</video:rating><video:view_count>62</video:view_count><video:publication_date>2023-09-20T11:27:06.813Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/tarides_tech_talk/videos">Tarides Tech Talks</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/iQNqZzA8gVmd4RQaycAwx4</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/4d3f7643-a935-49ca-a575-48765a553e75.jpg</video:thumbnail_loc><video:title>Verifying an Effect-Based Cooperative Concurrency Scheduler in Iris by Adrian Dapprich</video:title><video:description>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 release of OCaml 5 and its support for effect handlers, the new concurrency library Eio was proposed which aims to replace previous monadic concurrency libraries for OCaml.

In this work we verify the core fiber and promise abstractions of Eio and show their safety and effect safety using the Hazel program logic.

Hazel is built on the Iris framework and allows reasoning about programs with effect handlers. We also adapt the existing proof of the verified CQS datastructure since Eio uses a customized version of CQS for its implementation of promises.

We do not treat some features of Eio like cancellation, because it does not yield a verifiable specification, and resource control using switches, since it is a liveness property.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/907bac18-3532-4768-8b6f-893167bfbd81/823a23bf-2bac-4c46-9009-6f53df116454-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/iQNqZzA8gVmd4RQaycAwx4</video:player_loc><video:duration>2817</video:duration><video:rating>0</video:rating><video:view_count>98</video:view_count><video:publication_date>2024-01-09T16:23:50.459Z</video:publication_date><video:tag>iris</video:tag><video:tag>hazel</video:tag><video:tag>effects</video:tag><video:tag>ocaml</video:tag><video:tag>eio</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/tarides_tech_talk/videos">Tarides Tech Talks</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/qQzb94X9WM7zLif7FynPyN</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/2dd76a3b-cfca-4ad5-b1fd-d2c60d9588b7.jpg</video:thumbnail_loc><video:title>Ocsigen: Developing Web and mobile applications in OCaml – Jérôme Vouillon &amp; Vincent Balat</video:title><video:description>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 compiler to Javascript, and Eliom, a powerful Web framework that can be used for traditional server-side Web programming, but also to develop client-server Web and mobile distributed applications, fully in OCaml, using multi-tier programming. This programming style can save a huge amount of time.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c9237937-9145-443c-9a78-d3ab20d2c932/c2d86415-b435-4a08-9465-89f911149bf7-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/qQzb94X9WM7zLif7FynPyN</video:player_loc><video:duration>3575</video:duration><video:rating>5</video:rating><video:view_count>442</video:view_count><video:publication_date>2024-01-23T10:29:15.683Z</video:publication_date><video:tag>web programming</video:tag><video:tag>ocsigen</video:tag><video:tag>ocaml</video:tag><video:tag>mobile applications</video:tag><video:tag>eliom</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/tarides_tech_talk/videos">Tarides Tech Talks</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/b7sv1LQSVZQH6trf4xpwFX</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/502150ad-d17b-4b52-8031-f0fe478eeaae.jpg</video:thumbnail_loc><video:title>Outreachy Presentations for the December 2023 Round</video:title><video:description>The OCaml community participated in the December 2023 round of [Outreachy](https://www.outreachy.org/) internships. Three interns worked on a range of projects including geometric creative coding libraries, dark mode for OCaml.org and building GUIs in OCaml.

This meeting was an opportunity for the interns to present their work and for the community to ask questions and was [originally announced on the discuss forum](https://discuss.ocaml.org/t/outreachy-internship-demo-session/14247).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/51e22e39-a000-460d-9d2e-1d6ee2aab1ad/38bd2875-ab86-4396-887f-2bbf316e30a1-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/b7sv1LQSVZQH6trf4xpwFX</video:player_loc><video:duration>3796</video:duration><video:rating>5</video:rating><video:view_count>65</video:view_count><video:publication_date>2024-03-08T17:55:29.637Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>Outreachy</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/peT3MdWjS1BYYMbowEJ1gv</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1d2a2bf4-5494-4c96-9227-0c6d663288e8.jpg</video:thumbnail_loc><video:title>Outreachy May 2024 Demo</video:title><video:description>The OCaml community participated in the May 2024 round of [Outreachy](https://www.outreachy.org/) internships. Three interns worked on a range of projects including tools to diff OCaml APIs, more accessible diffing tools and running OCaml exercises _anywhere_!

This meeting was an opportunity for the interns to present their work and for the community to ask questions and was [originally announced on the discuss forum](https://discuss.ocaml.org/t/outreachy-demo-presentation/15189).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/bc32514d-b431-4cb1-80b7-e7d11d130eb3/1f688737-1a7f-406d-b5ed-b2d3bf343e66-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/peT3MdWjS1BYYMbowEJ1gv</video:player_loc><video:duration>3218</video:duration><video:rating>0</video:rating><video:view_count>166</video:view_count><video:publication_date>2024-09-07T15:07:21.999Z</video:publication_date><video:tag>outreachy</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/1Hfi9pjTo1hz1ej2WtVGCR</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/23651eeb-a9d4-41ee-a39d-54e9037581b5.jpg</video:thumbnail_loc><video:title>[OCaML'23] Osiris: an Iris-based program logic for OCaml</video:title><video:description>[OCaML'23] Osiris: an Iris-based program logic for OCaml

Arnaud Daby-Seesaram, François Pottier, Armaël Guéneau

Osiris is a project that aims to help OCaml developers verify their code using Separation Logic. The project is still young: we currently only support a subset of the features of the OCaml language, including modules, mutual recursion, ADTs, tuples and records. Ultimately, we would like to extend Osiris to support most features of the OCaml language. Iris is a Coq framework for Separation Logic with support for expressive ghost states. It is often used to define program logics and can be parameterized by a programming language — usually described by its small-steps semantics. Most Iris instantiations target ML-like languages, each focusing on a specific purpose and lacking support of programming features such as records or ADTs. Osiris contains an Iris instantiation with a presentation of the semantics of OCaml, in order to reason on realistic OCaml programs. Osiris provides a translation tool to convert OCaml files to Coq files (cf. section 2). In order to verify an OCaml program with Osiris, one would use the translator on an OCaml file, seen as a module. This produces a Coq file containing a deep-embedded representation me of the module. The user would then write and prove a specification for the interpretation of me in our semantics.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/05c24df6-ce44-4571-ab46-43970f44e4f1/f76bfc83-aa3d-4d0d-a606-643f1f146bf8-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/1Hfi9pjTo1hz1ej2WtVGCR</video:player_loc><video:duration>1249</video:duration><video:rating>0</video:rating><video:view_count>10</video:view_count><video:publication_date>2024-09-29T15:27:45.425Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/3pYGmveWpNNLH4B6TUv5ww</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/372aa447-5e78-4748-8486-7eaf2f36a5f0.jpg</video:thumbnail_loc><video:title>[OCaML'23] Owi: an interpreter and a toolkit for WebAssembly written in OCaml</video:title><video:description>[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.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/138b52f3-7867-4a37-9b9a-81d08c3983e2/b0c50180-8d21-4a23-9b28-8a0eaea89b75-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/3pYGmveWpNNLH4B6TUv5ww</video:player_loc><video:duration>1534</video:duration><video:rating>0</video:rating><video:view_count>10</video:view_count><video:publication_date>2024-09-29T15:25:04.132Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/rnQXcND8aaY9qUtikB9tSc</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/46603480-ba59-4b26-afaf-4c9b47cbffcd.jpg</video:thumbnail_loc><video:title>[OCaML'23] MetaOCaml Theory and Implementation</video:title><video:description>[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.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/cd8140d6-e474-4076-bf94-2d9c55f8dd3b/9090967b-9a99-4e8a-be91-8feb04abb511-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/rnQXcND8aaY9qUtikB9tSc</video:player_loc><video:duration>1731</video:duration><video:rating>0</video:rating><video:view_count>26</video:view_count><video:publication_date>2024-09-29T15:35:39.402Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/9GtFUSDDpmU8ZDD54A7V7e</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/3b6c229d-0671-4e60-aeee-8843e914c56e.jpg</video:thumbnail_loc><video:title>[OCaML'23] State of the OCaml Platform 2023</video:title><video:description>[OCaML'23] State of the OCaml Platform 2023

Thibaut Mattio, Anil Madhavapeddy, Thomas Gazagnaire, David Allsopp

This paper reflects on a decade of progress and developments within the OCaml Platform, from its inception in 2013 with the release of opam 1.0, to today where it stands as a robust toolchain for OCaml developers. We review the last three years in detail, emphasizing the advancements and innovations that have shaped the OCaml development landscape and highlighting key milestones such as the migration to Dune as the primary build system, and the development of a Language Server Protocol (LSP) server for OCaml. 
We also outline our plan for the coming years. The roadmap is informed by community feedback, discussions with Platform tool maintainers, and insights from industrial users of OCaml. The final version of this evolving roadmap, designed to shape the future of the OCaml developer experience, will be presented at the International Conference on Functional Programming (ICFP).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/466fec6a-4ce5-451f-8cdc-859916d8dc4d/c6116bb2-7587-4d53-b392-8d329e854807-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/9GtFUSDDpmU8ZDD54A7V7e</video:player_loc><video:duration>1342</video:duration><video:rating>0</video:rating><video:view_count>13</video:view_count><video:publication_date>2024-09-29T15:27:19.790Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/6K7mqY88PyDZFC2bJvs2Xe</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/872f631d-7b82-4700-aafd-51984c131dfd.jpg</video:thumbnail_loc><video:title>[OCaML'23] Parallel Sequences in Multicore OCaml</video:title><video:description>[OCaML'23] Parallel Sequences in Multicore OCaml

Andrew Tao

I present my implementation of a parallel sequences abstraction that utilizes the support for shared memory parallelism in the new OCaml 5.0.0 multicore runtime. This abstraction allows clients to create highly parallelizable programs without needing to write, or even understand, the low-level implementation details necessary to parallelize large tasks.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/2e829712-4a69-465f-a8e7-94f102e737c7/1a4ffb75-d0cd-4fe4-9eef-b7cc77447643-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/6K7mqY88PyDZFC2bJvs2Xe</video:player_loc><video:duration>1370</video:duration><video:rating>0</video:rating><video:view_count>16</video:view_count><video:publication_date>2024-09-29T15:40:29.478Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/v3LtkXGeW5KXjziPQdzRJZ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b1112b17-a84a-45d5-80b7-d7dbba4a18f8.jpg</video:thumbnail_loc><video:title>[OCaML'23] Building a lock-free STM for OCaml</video:title><video:description>[OCaML'23] Building a lock-free STM for OCaml

Vesa Karvonen, Bartosz Modelski, Carine Morel, Thomas Leonard, KC Sivaramakrishnan, YSS Narasimha Naidu, Sudha Parimala

The kcas library was originally developed to provide a primitive atomic lock-free multi-word compare-and-set operation. This talk introduces kcas and discusses the recent development of kcas turning it into a proper lock-free software transactional memory implementation for OCaml that provides composable transactions, scheduler friendly modular blocking, and comes with a companion library of composable lock-free data structures.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/eb3bea49-8fe0-441b-a4fc-3f36e478d8c9/a60fc6e6-5c07-4308-aa22-c51b98dc573f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/v3LtkXGeW5KXjziPQdzRJZ</video:player_loc><video:duration>1304</video:duration><video:rating>0</video:rating><video:view_count>7</video:view_count><video:publication_date>2024-09-29T15:39:28.001Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/cYiKFa5EbS3AqVgYzMHP5V</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/86b07f08-f89c-4c92-a268-c3b352e6fb63.jpg</video:thumbnail_loc><video:title>[OCaML'23] Buck2 for OCaml Users &amp; Developers</video:title><video:description>[OCaML'23] Buck2 for OCaml Users &amp; 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.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/60f11df8-14ed-489a-a85a-457659f3e911/dc75c97d-e172-4d99-9b9b-d7a3e948fef9-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/cYiKFa5EbS3AqVgYzMHP5V</video:player_loc><video:duration>1534</video:duration><video:rating>0</video:rating><video:view_count>10</video:view_count><video:publication_date>2024-09-29T15:48:58.213Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/uABzLbyAasoKbjyRwganh4</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/15f092e5-7a77-42e8-843b-8567c22ade38.jpg</video:thumbnail_loc><video:title>[OCaML'23] Less Power for More Learning: Restricting OCaml Features for Effective Teaching</video:title><video:description>[OCaML'23] Less Power for More Learning: Restricting OCaml Features for Effective Teaching

Max Lang, Nico Petzendorfer

We present a framework for sandboxing and restricting features of the OCaml programming language to effectively automate the grading of programming exercises, scaling to hundreds of submissions. We describe how to disable language and library features that should not be used to solve a given exercise. We present an overview of an implementation of a mock IO system to allow testing of IO-related exercises in a controlled environment. Finally, we detail a number of security considerations to ensure submitted code remains sandboxed, allowing automatic grading to be trusted without manual verification. The source code of our implementation is publicly available [1]. 
[1] As a git repository at https://github.com/just-max/less-power.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e7951952-00d7-4346-aaa3-b4773397c3ef/73493a7e-b54e-4937-90f1-76cf0ff61100-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/uABzLbyAasoKbjyRwganh4</video:player_loc><video:duration>1193</video:duration><video:rating>0</video:rating><video:view_count>25</video:view_count><video:publication_date>2024-09-29T16:04:22.573Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/qGN45zFDCVGxiKRz9mKkVp</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/add0528c-59d2-4107-80d5-16a752a8d186.jpg</video:thumbnail_loc><video:title>[OCaML'23] Efficient OCaml compilation with Flambda 2</video:title><video:description>[OCaML'23] Efficient OCaml compilation with Flambda 2

Pierre Chambart, Vincent LAVIRON, Mark Shinwell

Flambda 2 is an IR and optimisation pass for OCaml centred around inlining. We discuss the engineering constraints that shaped it and the overall structure that allows the compiler to be fast enough to handle very large industrial code bases.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/c80d75b9-88dd-42f4-9c11-c96b699e9e7d/f1eaea56-6341-4caf-9478-b8bb131e6e2a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/qGN45zFDCVGxiKRz9mKkVp</video:player_loc><video:duration>1338</video:duration><video:rating>0</video:rating><video:view_count>15</video:view_count><video:publication_date>2024-09-29T16:01:22.607Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/sj5jf9iieZA7E1cbDbnv2j</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c5717695-9ee2-4553-afff-78c5aed46aa7.jpg</video:thumbnail_loc><video:title>[OCaML'23] Targeted Static Analysis for OCaml C Stubs: Eliminating gremlins from the code</video:title><video:description>[OCaML'23] Targeted Static Analysis for OCaml C Stubs: Eliminating gremlins from the code

Edwin Török

Migration to OCaml 5 requires updating a lot of C bindings due to the removal of naked pointer support. Writing OCaml user-defined primitives in C is a necessity, but is unsafe and error-prone. It does not benefit from either OCaml’s or C’s type checking, and existing C static analysers are not aware of the OCaml GC safety rules, and cannot infer them from existing macros alone. The alternative is automatically generating C stubs, which requires correctly managing value lifetimes. Having a static analyser for OCaml to C interfaces is useful outside the OCaml 5 porting effort too. 
After some motivating examples of real bugs in C bindings a static analyser is presented that finds these known classes of bugs. The tool works on the OCaml abstract parse and typed trees, and generates a header file and a caller model. Together with a simplified model of the OCaml runtime this is used as input to a static analysis framework, Goblint. An analysis is developed that tracks dereferences of OCaml values, and together with the existing framework reports incorrect dereferences. An example is shown how to extend the analysis to cover more safety properties. 
The tools and runtime models are generic and could be reused with other static analysis tools.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/d513a6e6-86c6-4202-9431-d3479ff60b68/f93a2293-6935-41e3-9614-61b3f03aef27-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/sj5jf9iieZA7E1cbDbnv2j</video:player_loc><video:duration>1396</video:duration><video:rating>0</video:rating><video:view_count>9</video:view_count><video:publication_date>2024-09-29T14:32:44.829Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/7ZxKnBY2w3XCztpzbKm8YG</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/dc4c7f91-9ea8-4901-b51a-a33d6cc6aa88.jpg</video:thumbnail_loc><video:title>[OCaML'23] Modern DSL compiler architecture in OCaml our experience with Catala</video:title><video:description>[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.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/389fcac9-135f-4b6e-9afd-6215ddecdaa4/356d646d-9f6e-4b55-809e-493bd7195db7-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/7ZxKnBY2w3XCztpzbKm8YG</video:player_loc><video:duration>1172</video:duration><video:rating>0</video:rating><video:view_count>51</video:view_count><video:publication_date>2024-09-29T16:16:23.068Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/9Hxc81ac3k6GQF1fdZLx7d</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/bcc3f2e9-bae2-4cdf-a5b3-ac5408ab6a95.jpg</video:thumbnail_loc><video:title>[OCaML'23] Eio 1.0 – Effects-based IO for OCaml 5</video:title><video:description>[OCaML'23] Eio 1.0 – Effects-based IO for OCaml 5

Thomas Leonard, Patrick Ferris, Christiano Haesbaert, Lucas Pluvinage, Vesa Karvonen, Sudha Parimala, KC Sivaramakrishnan, Vincent Balat, Anil Madhavapeddy

Eio provides an effects-based direct-style IO stack for OCaml 5. This talk introduces Eio’s main features, such as use of effects, multi-core support and lock-free data-structures, support for modular programming, interoperability with other concurrency libraries such as Lwt, Async and Domainslib, and interactive monitoring support enabled by the custom runtime events in OCaml 5.1. We will report on our experiences porting existing applications to Eio.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/4695d391-9e90-4b54-b6c9-407fa1ed3a34/46d679bb-788e-4677-8820-8a547a496f55-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/9Hxc81ac3k6GQF1fdZLx7d</video:player_loc><video:duration>1211</video:duration><video:rating>0</video:rating><video:view_count>35</video:view_count><video:publication_date>2024-09-29T16:13:37.943Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2023/videos">OCaml Workshop 2023</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/rwDYUk9N3X9cMRyhCav35X</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/da273a66-26d6-4419-b199-87a2890d38ec.jpg</video:thumbnail_loc><video:title>Maybe OCaml Was the Friends We Made Along the Way - Dillon Mulroy - FUN OCaml 2024</video:title><video:description>Dillon Mulroy's FUN OCaml 2024 talk recording!

Overview by Dillon:

In my decade-long journey as a software engineer, the most transformative experience came from an unexpected source: learning and using OCaml. I will share how this functional programming language reshaped my approach to problem-solving, coding practices, and overall mindset about programming. Beyond the technical skills, OCaml connected me with incredibly bright, kind, and talented mentors and peers who have become lifelong friends. This journey also paved the way for my success on Twitch, allowing me to share my passion and knowledge with a broader audience. Join me as I explore the personal and professional growth that OCaml facilitated and celebrate the community that made it possible.

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/cebc2faf-3df3-4179-8ea8-64a50e1d84ff/832509f5-a36d-45ac-be09-d4a0979a2acf-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/rwDYUk9N3X9cMRyhCav35X</video:player_loc><video:duration>1868</video:duration><video:rating>0</video:rating><video:view_count>81</video:view_count><video:publication_date>2025-01-18T13:07:59.156Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/3i71o7rfq7UzzpTRyCSx2w</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/508a8b3a-88f5-4406-ab79-878c9ba46b66.jpg</video:thumbnail_loc><video:title>Easy GADTs by Repeating Yourself - Eduardo Rafael - FUN OCaml 2024</video:title><video:description>Eduardo Rafael's FUN OCaml 2024 talk recording!

Overview by Eduardo:


Traditionally GADT's are used for lightweight tasks as the code complexity increases quite. I will be arguing that this is mostly a lack of common "design patterns" and maybe some tools. The talk will go through describing what you can fundamentally do with GADT's, how you should think about them and a general technique to mimic dependent types in OCaml, Hopefully by the end, a show case of a proposal for the Michelson interpreter.


Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/12959f82-f503-4e77-8940-208cf81a9c84/cc384fb2-dd7a-46e6-89d7-75875dd700d9-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/3i71o7rfq7UzzpTRyCSx2w</video:player_loc><video:duration>2219</video:duration><video:rating>0</video:rating><video:view_count>60</video:view_count><video:publication_date>2025-01-18T13:53:28.207Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/hSHDx6iT8z9PBgoaXNnFmW</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c3501e6c-9fa7-4dec-924f-3f91473d771e.jpg</video:thumbnail_loc><video:title>The Story Behind the Fastest Image Comparison Library  - Dmitriy Kovalenko - FUN OCaml 2024</video:title><video:description>Dmitriy Kovalenko's FUN OCaml 2024 talk recording!

Overview by Dmitriy:

I am the author of dmtrKovalenko/odiff which claims to be and it is the fastest in the world (on my banchmarks lol) implementation of the pixel-by-pixel image comparison library which is written in OCaml (and a little bit of C). This is a story about standing the project. Why not to write it in C or Rust? How do we tune the garbage collector to avoid major collections at all? All this and much more like the hidden superpower of unboxed floats and some challenges about naked pointers and upgrading to OCaml v5 in my talk!

odiff: https://github.com/dmtrKovalenko/odiff

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/88a712b2-e800-4eee-bb16-e9710a9b5102/e3172fb3-af3e-4a57-97f5-db0d2c1bcc80-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/hSHDx6iT8z9PBgoaXNnFmW</video:player_loc><video:duration>2490</video:duration><video:rating>5</video:rating><video:view_count>46</video:view_count><video:publication_date>2025-01-18T14:23:52.408Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/wwYKmvEH8CqKZ7TzRAEZXq</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/39c48723-73cc-4011-bbe7-67e0392bfeed.jpg</video:thumbnail_loc><video:title>Universal React in OCaml - David Sancho Moreno - FUN OCaml 2024</video:title><video:description>David Sancho Moreno's FUN OCaml 2024 talk recording!

Overview by David:


server-reason-react implements react-dom/server and some of React's internals in OCaml. Its purpose is to natively render HTML markup from the server for a Reason React application. This pushes the idea for universal code (sharing code between the browser and native) and this talk is the story of all of this, and what are the solutions we applied at Ahrefs.


server-reason-react: https://github.com/ml-in-barcelona/server-reason-react

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f74571dc-c1e5-43d2-9d7d-e723a2165d02/c9f80c17-2ac9-4956-9a3f-ba032149adcb-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/wwYKmvEH8CqKZ7TzRAEZXq</video:player_loc><video:duration>1604</video:duration><video:rating>5</video:rating><video:view_count>29</video:view_count><video:publication_date>2025-01-18T14:41:54.387Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/2A6bTKjqQ1StL6yfQehnvp</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/5a4bfc62-e22b-4809-b7c9-925832cdc1c1.jpg</video:thumbnail_loc><video:title>The Future of Dune - Leandro Ostera - FUN OCaml 2024</video:title><video:description>Leandro Ostera's FUN OCaml 2024 talk recording!

Overview by Leandro:


In this talk Leandro Ostera, the PM of OCaml Build System team at Tarides shows the future of developer experience in dune. He will present the new features that are being developed and the roadmap for the next releases.

Try the Dune Developer Preview: https://preview.dune.build

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/0cdb9fba-13d4-48fb-b06c-ea7a9583356d/06d4e274-d33a-4e3b-8ce0-b5ed2cafdaf9-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/2A6bTKjqQ1StL6yfQehnvp</video:player_loc><video:duration>2284</video:duration><video:rating>0</video:rating><video:view_count>26</video:view_count><video:publication_date>2025-01-18T15:42:01.118Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/8guYKggC1zYWk8MjcHLtG9</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/2f3c5db2-5139-4835-87b4-3c1652bbb28c.jpg</video:thumbnail_loc><video:title>MirageOS - Developing Operating Systems in OCaml - Hannes Mehnert - FUN OCaml 2024</video:title><video:description>Hannes Mehnert's FUN OCaml 2024 talk recording!

Overview by Hannes:


OCaml is a great systems programming language. We use it since more than a decade to develop MirageOS unikernels: run OCaml as a virtual machine, no Linux kernel involved. Since OCaml is statically typed (and type safe), and memory safe, we use a single address space, and avoided a lot of complexity of general purpose operating systems. Security-wise this is excellent: less attack surface, fewer attack vectors. Also less resource-heavy than contemporary OS. The result are tiny unikernels (e.g. a firewall with ~3MB as the full virtual machine image) that only contain the code really needed. I'll present what MirageOS is today and where it is used, its future, and our learnings so far.

https://mirage.io

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3ad9fc58-ca49-4b2b-9278-fc980bcd7634/6e07a192-2615-4b1d-b1bc-13f2d5197a43-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/8guYKggC1zYWk8MjcHLtG9</video:player_loc><video:duration>1913</video:duration><video:rating>5</video:rating><video:view_count>61</video:view_count><video:publication_date>2025-01-18T15:41:56.745Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/bBWrw9qh6AaEFVRmFCFMKT</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/5cf07b59-eaf7-4604-98b2-bcb4f7530e1d.jpg</video:thumbnail_loc><video:title>Learning OCaml with Tiny Code Xmas - Michael Dales - FUN OCaml 2024</video:title><video:description>Michael Dales's FUN OCaml 2024 talk recording!

Overview by Michael:


Each year the demo community run Tiny Code Xmas - using fantasy consoles like TIC-80 and PICO-8 to teach people to do retro graphics effects and size coding. But I didn't want to learn size coding, I wanted to learn OCaml! So for my first OCaml project I built a small fantasy console engine using OCaml, and implemented both Tiny Code Xmas and most of Genuary (generate art January) in it. In this talk I'll show why demo coding suits functional programming, look at how I built my first OCaml library, and show some examples of generative art using it.


Tiny Code Xmas: https://tcc.lovebyte.party/

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/55fff7e8-5aff-4150-a326-1c407e40817d/b61237f8-1b78-4857-b749-c64f18493b08-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/bBWrw9qh6AaEFVRmFCFMKT</video:player_loc><video:duration>1383</video:duration><video:rating>0</video:rating><video:view_count>29</video:view_count><video:publication_date>2025-01-18T16:26:48.077Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/78sg2vm4WzbKvcbSmtCpwd</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/2ccc22eb-8740-4f62-9710-1731b69c071a.jpg</video:thumbnail_loc><video:title>Let Signals in OCaml - Rizo Isrof - FUN OCaml 2024</video:title><video:description>Rizo Isrof's FunOCaml 2024 talk recording!

Overview by Rizo:

Signals and fine-grained reactivity are two popular concepts in the JavaScript world, thanks to their simplicity, ergonomics and excellent performance. What are signals? What is their type? How can we use them in OCaml? Let's build a reactive UI library from scratch to find out! From simple callbacks, layers are added to support batching, resource cleanup and `let` syntax for composing effects. DOM interactions are implemented to allow predictable, minimal and efficient UI updates. Finally, helix is revealed, a library based on the presented reactivity principles. I review some examples and discuss how helix is used to implement real-world applications at Hyper and Tarides.

Find speaker: https://github.com/rizo, https://x.com/rizo_isrof


Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/31a13898-6c5a-4c82-aab9-6dcb0d805e64/0ae47ef2-f63a-4d00-98c7-84711f097b55-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/78sg2vm4WzbKvcbSmtCpwd</video:player_loc><video:duration>1837</video:duration><video:rating>0</video:rating><video:view_count>28</video:view_count><video:publication_date>2025-01-18T16:44:32.541Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/vCzFWXa4RfN6y7BTSenBY5</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/0ca24226-7678-488c-bf80-ce348eb158af.jpg</video:thumbnail_loc><video:title>A 'Melange' of Tooling Coming Together - Antonio Monteiro - FUN OCaml 2024</video:title><video:description>Antonio Monteiro's FUN OCaml 2024 talk recording!


Overview by Antonio:

Melange is a new compiler for OCaml targeting JavaScript. Melange codebases integrate with the OCaml Platform: install from OPAM, build with Dune, preprocess with `ppxlib`, format with OCamlformat and publish with `dune-release`. Merlin, OCaml-LSP and `odoc` work out of the box. In this talk, I will tell you about the Melange success story and give a glimpse of what's coming in the near future.


Melange: https://melange.re

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/eff48eec-03be-479e-ad76-0c454e63b938/41a7a460-7d14-44a0-bd88-035d0e171ea1-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/vCzFWXa4RfN6y7BTSenBY5</video:player_loc><video:duration>2261</video:duration><video:rating>0</video:rating><video:view_count>18</video:view_count><video:publication_date>2025-01-18T17:36:20.910Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/772GsUvu7eRobHgLDUeE2M</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c79ab9b0-8d48-43df-b979-abdae746811a.jpg</video:thumbnail_loc><video:title>How the Multicore Garbage Collector works - Sudha Parimala - FUN OCaml 2024</video:title><video:description>Sudha's FUN OCaml 2024 talk recording!

Overview by Sudha:

In a first, OCaml 5.0 shipped with native support for parallelism and concurrency. This was a multi-year effort by the Multicore team and the OCaml development team that culminated in OCaml 5.0. The most challenging aspect was designing a multicore-capable garbage collector that remains backwards compatible in terms of features, performance, and latency. This is described in the paper 'Retrofitting Parallelism onto OCaml,' which appeared in ICFP 2020. In this talk, we will explore the ideas presented in the paper through doodle illustrations and zines.


Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/316e573e-6622-46da-aa25-de81d4477ca7/e3186441-ac67-442e-9967-c307326a1ef7-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/772GsUvu7eRobHgLDUeE2M</video:player_loc><video:duration>1905</video:duration><video:rating>0</video:rating><video:view_count>25</video:view_count><video:publication_date>2025-01-18T18:08:58.219Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/21fL5BUJxWdLigoALGMpLb</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/e4cd54aa-a313-4f8d-be51-d4a9538672d0.jpg</video:thumbnail_loc><video:title>Building Incremental and Reproducible Data Pipelines  - Patrick Ferris - FUN OCaml 2024</video:title><video:description>Patrick Ferris's FUN OCaml 2024 talk recording!

Overview by Patrick:

We present the good and the bad of building a dataflow engine in OCaml. The engine underpins a complex ecological analysis of avoided deforestation projects in tropical moist rainforests. We will discuss: Onboarding experienced developers who are new to OCaml. - Building an operating system in OCaml to run Python/R code.Developing geospatial libraries and how this benefited from Outreachy internships and the compiler's backwards compatibility. Managing a transition from monadic, asynchronous libraries to direct-style code. This work is part of a multi-year collaboration between the departments of Computer Science, Ecology, Zoology and Geography at the University of Cambridge.


Full title: Building Incremental and Reproducible Data Pipelines for Tackling Climate Change

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/08223c1d-c6dc-4e73-b988-b58de2a407c6/fa3b6e0d-5738-4d1b-8210-27a4b4624858-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/21fL5BUJxWdLigoALGMpLb</video:player_loc><video:duration>2184</video:duration><video:rating>0</video:rating><video:view_count>22</video:view_count><video:publication_date>2025-01-18T18:19:54.207Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/g8xFJmbxhyXDnpwaT6pBJm</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/7cdb5bd4-5330-4ff0-8dce-17996c71e42c.jpg</video:thumbnail_loc><video:title>Type engineering in OCaml, Illustrated on the OCaml Compiler - Florian Angeletti - FUN OCaml 2024</video:title><video:description>Florian Angeletti's FUN OCaml 2024 talk recording!

Overview by Florian:


With four different kinds of variants and four different implementations of an object system, OCaml provides many options to design types to fit domain problems. However, it can be sometimes tempting to escalate type complexity, at the cost of code readability. It is therefore important to find a compromise between code complexity and type safety, in order to not let GADTs escape their scope. As a showcase, this talk proposes to review the use of advanced type features in the oldest OCaml project: the OCaml compiler


Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/7a86d018-021f-4e9e-bb8c-7be05d7e378c/f828dd70-c5c5-4db7-a701-a016fe124311-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/g8xFJmbxhyXDnpwaT6pBJm</video:player_loc><video:duration>1873</video:duration><video:rating>5</video:rating><video:view_count>48</video:view_count><video:publication_date>2025-01-18T19:08:31.267Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/uFvC5GQU8jChh5PmGNrmTo</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/aeba6eed-9e4f-44c4-a2f8-b7c6483fd609.jpg</video:thumbnail_loc><video:title>Using odoc to Write Documentation - Paul-Elliot Anglès d'Auriac - FUN OCaml 2024</video:title><video:description>Paul-Elliot Anglès d'Auriac's FUN OCaml 2024 talk recording!

Overview by Paul-Elliot:

This talk is a gentle introduction to the documenting part of the OCaml ecosystem. We will see how to use `odoc` to build nice documentation for your `dune`-based project, from a bare repository to a documentation with both API pages and documentation pages.

odoc: https://github.com/ocaml/odoc

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e844250f-a6c2-46aa-8d66-b9a436b6c8bc/bf6d526e-9c9b-4baf-9e9e-3f429db5a600-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/uFvC5GQU8jChh5PmGNrmTo</video:player_loc><video:duration>1205</video:duration><video:rating>0</video:rating><video:view_count>28</video:view_count><video:publication_date>2025-01-18T19:34:28.904Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/vQYhM1uQ3d3ZACKfRPCtrq</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b944947f-5f5d-47f8-a9d0-25cb4d9dc3de.jpg</video:thumbnail_loc><video:title>OCANNL, the `neural_nets_lib` - Lukasz Stafiniak - FUN OCaml 2024</video:title><video:description>Lukasz Stafiniak's FUN OCaml 2024 talk recording!

Overview by Lukasz:


Using OCANNL, we will build a toy feed forward network, we will train it, visualize its outputs. We will take a peek at the actual computation generated at various levels of abstraction: tensor node assignments, optimized C-language-like programs, translations to actual C (for CPUs, or CUDA but it is still work-in-progress). Lastly, we will parallelize training across multiple devices.

Connect with us
Website: https://fun-ocaml.com/
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/f1af695d-21a5-45d1-ad05-ba4c87a106be/bcee7760-52a5-47f7-91a3-8ae19b9f834b-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/vQYhM1uQ3d3ZACKfRPCtrq</video:player_loc><video:duration>1885</video:duration><video:rating>5</video:rating><video:view_count>17</video:view_count><video:publication_date>2025-01-18T19:41:40.349Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/eWRikkpwoox1SboAwrDshD</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9d342118-1e60-4653-b6a4-fc500d0ea002.jpg</video:thumbnail_loc><video:title>Outreachy December 2024 Demo</video:title><video:description>The OCaml community participated in the December 2024 round of [Outreachy internships](https://www.outreachy.org). One intern worked on a tool for diffing OCaml APIs.

This meeting was an opportunity for our intern to present their work and for the community to ask questions and was originally [announced on the discuss forum](https://discuss.ocaml.org/t/outreachy-december-2024-round/15223/5).</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/70ef58ff-ff7c-40d6-ab19-e886e4e98205/41f0c435-e6a7-4c88-83b0-72bfbf5bc8d7-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/eWRikkpwoox1SboAwrDshD</video:player_loc><video:duration>1791</video:duration><video:rating>0</video:rating><video:view_count>33</video:view_count><video:publication_date>2025-04-17T09:45:05.088Z</video:publication_date><video:tag>outreachy</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/kZJRFM6iw9ug9BLNjEgKeH</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/3604a5b1-1cc6-4c67-8702-7e4fe48c131c.jpg</video:thumbnail_loc><video:title>Outreachy May 2025 Demo Day</video:title><video:description>The OCaml community participated in the May 2025 round of Outreachy internships. Two interns worked on a range of projects including [Claudius](https://github.com/claudiusFX/claudius) and [Dune](https://github.com/ocaml/dune).

This meeting was an opportunity for the interns to present their work and for the community to ask questions and was [originally announced on the discuss forum](https://discuss.ocaml.org/t/outreachy-demo-day-august-2025).
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/a1ed70d6-f57a-4349-ba85-c12b2054529f/3f73ca54-e12e-4f8d-b957-819816638563-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/kZJRFM6iw9ug9BLNjEgKeH</video:player_loc><video:duration>2479</video:duration><video:rating>5</video:rating><video:view_count>68</video:view_count><video:publication_date>2025-09-02T09:28:48.816Z</video:publication_date><video:tag>outreachy</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/oTv8j7T7eGrtHxpzaRe1LZ</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/f79f69db-2da5-4be0-b126-9f15338762c6.jpg</video:thumbnail_loc><video:title>A Vision for OCaml in the AI Era - Thibaut Mattio - FUN OCaml 2025</video:title><video:description>A Vision for OCaml in the AI Era

Thibaut Mattio

ABSTRACT

AI is reshaping software development, yet OCaml's adoption in AI workflows remains limited. This talk explores how the OCaml community can proactively embrace AI to make OCaml a productive language in the AI era—both for writing AI applications and for AI-assisted development. We examine two critical questions:

First, how can OCaml become a viable alternative to Python for machine learning? By addressing ecosystem breadth and developer experience, we can solve real problems—from unifying research and production codebases to enabling scalable deployment with OCaml's performance guarantees.

Second, how can we make OCaml more productive for AI-assisted development? Strong type systems and integrated tooling give OCaml a natural advantage for coding agents, but we need specialized, open-source tools built for the OCaml ecosystem.

This talk introduces Raven, a modern scientific computing ecosystem for OCaml that mirrors Python's ML stack, and Spice, an upcoming local-first, OCaml-native coding agent.

Beyond tooling, we'll discuss how the community can anticipate changes in onboarding, documentation, and workflows to ensure OCaml thrives in an AI-driven future—while maintaining equal opportunity and access for all developers.


Session page: https://fun-ocaml.com/2025/a-vision-for-ocaml-in-the-ai-era/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/b959eeaf-e8c1-48e4-9d16-f8084a7bdda9/2a83a31d-755b-48fd-9473-0f145a78a2fd-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/oTv8j7T7eGrtHxpzaRe1LZ</video:player_loc><video:duration>2332</video:duration><video:rating>0</video:rating><video:view_count>47</video:view_count><video:publication_date>2025-12-02T08:31:50.359Z</video:publication_date><video:tag>FUN OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/62JkXM1mcVRAjX6k4xwfVk</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/e8f3a6fe-8bd6-4e31-b59e-7f57c9870927.jpg</video:thumbnail_loc><video:title>OCaml at LexiFi - Nicolás Ojeda Bär - FUN OCaml 2025</video:title><video:description>OCaml at LexiFi

Nicolás Ojeda Bär

ABSTRACT

LexiFi is likely to have been the first real industrial user of OCaml, back when it was funded in 2000. In this talk, I will present some of the things we have learned along the way. Some of the points I will address: our technology stack (development environment, deployment and distribution, cloud infrastructure, etc), tooling, strong and weak points of OCaml, people aspects (hiring and training), etc. If there is time, I will also present one of our key technical innovations: extending the OCaml compiler with type reflection (this topic will be explored further in the dedicated Workshop).

Session page: https://fun-ocaml.com/2025/ocaml-at-lexifi/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/28bb8857-ccb8-4888-876f-ba74d238a0cd/0c15f3d1-4088-46ab-9299-ba9a8814f4a7-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/62JkXM1mcVRAjX6k4xwfVk</video:player_loc><video:duration>2554</video:duration><video:rating>0</video:rating><video:view_count>24</video:view_count><video:publication_date>2025-12-02T08:40:40.090Z</video:publication_date><video:tag>FUN OCaml</video:tag><video:tag>OCaml</video:tag><video:tag>Software development</video:tag><video:tag>Conference</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/ewpvKhPvKhrKmvQ35N42kx</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/98596982-5b59-4dde-90fe-0198387c1ecc.jpg</video:thumbnail_loc><video:title>I Can See The Pixels: Designing Cross-Stitch Patterns in OCaml - Mindy Preston - FUN OCaml 2025</video:title><video:description>I Can See The Pixels: Designing Cross-Stitch Patterns in OCaml

Mindy Preston (yomimono)

ABSTRACT

I was unsatisfied with existing cross-stitch pattern generating software, which was mostly structured like pixel-based paint programs. Those programs with support for very common operations like tiling borders were locked behind paywalls. I decided to write my own in OCaml, and I've been using it to design cross-stitch patterns since 2019. I'll talk a bit about the joy of making the Exact Right Tool, the anguish of abandoned experiments, and the ambiguous pleasure of monetizing art.


Session page: https://fun-ocaml.com/2025/i-can-see-the-pixels/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/6d859b22-d09a-442a-b1a2-d9e3227a0ce9/5cdfede1-ceed-4dea-b014-4565bf759db9-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/ewpvKhPvKhrKmvQ35N42kx</video:player_loc><video:duration>1194</video:duration><video:rating>0</video:rating><video:view_count>20</video:view_count><video:publication_date>2025-12-02T08:48:18.610Z</video:publication_date><video:tag>Conference</video:tag><video:tag>Software development</video:tag><video:tag>FUN OCaml</video:tag><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/arLEkYE7NC4fdCcWz2LBLt</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/e2a19621-9541-4eb1-9756-434cb5693664.jpg</video:thumbnail_loc><video:title>Frameworks: No, Libraries: Yes. Developing a product in OCaml from Scratch - FUN OCaml 2025</video:title><video:description>Frameworks: No, Libraries: Yes. Developing a product in OCaml from Scratch

Malcolm Matalka (Terrateam)

ABSTRACT

Terrateam is an open source infrastructure management product written in OCaml. In order to stay lean and flexible, Terrateam has developed almost all of its own frameworks and tooling. With a small team, the Terrateam product punches well above its weight compared to its competition. This talk will cover the choice to develop their own frameworks, the good, the bad, and how OCaml has been instrumental in being able to achieve so much despite being a two person company.

Session page: https://fun-ocaml.com/2025/terrateam/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/4c7b5d96-7a93-42bd-9729-daaedd331c8f/1191ede7-631f-4b78-b8fb-3d94d8b6b05f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/arLEkYE7NC4fdCcWz2LBLt</video:player_loc><video:duration>1930</video:duration><video:rating>0</video:rating><video:view_count>35</video:view_count><video:publication_date>2025-12-02T09:21:37.556Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>Conference</video:tag><video:tag>Software development</video:tag><video:tag>FUN OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/1crzn8PE9UGcyPErYE6QYd</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/f22f6969-dd1c-4ce8-96a1-19870fc37560.jpg</video:thumbnail_loc><video:title>Purely functional gRPC and HTTP/2 with OCaml - Adam Cholewiński - FUN OCaml 2025</video:title><video:description>Purely functional gRPC and HTTP/2 with OCaml

Adam Cholewiński (Dialo)

Session page: https://fun-ocaml.com/2025/production-grade-network-protocols/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/0198f159-d03f-42ff-84b9-c79aa24737e4/283446eb-f01b-4e5e-a98e-c0a4966dd176-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/1crzn8PE9UGcyPErYE6QYd</video:player_loc><video:duration>1423</video:duration><video:rating>0</video:rating><video:view_count>13</video:view_count><video:publication_date>2025-12-02T09:16:07.797Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>FUN OCaml</video:tag><video:tag>Software development</video:tag><video:tag>Conference</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/aTPecM67BvKkb3fmdct4WB</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/b2800b78-1099-4598-8d92-78611ebc89dc.jpg</video:thumbnail_loc><video:title>Analyzing Programs with SMT Solvers - Tikhon Jelvis - FUN OCaml 2025</video:title><video:description>Analyzing Programs with SMT Solvers

Tikhon Jelvis (Semgrep)

ABSTRACT

We can use SMT solvers like Z3 to analyze programs and answer difficult questions about our code. By generating and solving complex constraints, we can improve error message localization, attack cryptographic protocols, check refinement types, search for proofs, verify invariants, compare programs against specifications or even synthesize code. Z3 is the goto state-of-the-art SMT solver, available under and open source license and has a first-class OCaml library.

In this talk, I'll walk through a simple OCaml program to generate SMT constraints that represent a bounded model of programs in a simple imperative language. Algebraic data types and pattern matching are a perfect fit for this kind of work.


Session page: https://fun-ocaml.com/2025/analyzing-programs-with-smt-solvers/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/501e4907-e1a2-4a03-b19a-659c98847333/1c5e9824-ea98-4e87-b176-a2dacce68e7f-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/aTPecM67BvKkb3fmdct4WB</video:player_loc><video:duration>1824</video:duration><video:rating>0</video:rating><video:view_count>8</video:view_count><video:publication_date>2025-12-02T09:27:15.433Z</video:publication_date><video:tag>Software development</video:tag><video:tag>Conference</video:tag><video:tag>FUN OCaml</video:tag><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/2oY2gmi7Dtfgb58iv4Ww7J</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/836c12c8-6cb5-4b26-a88b-a53ddf238fa5.jpg</video:thumbnail_loc><video:title>Slipshow: A Full-Featured Presentation Tool in OCaml - Paul-Elliot Anglès d'Auriac - FUN OCaml 2025</video:title><video:description>Slipshow: A Full-Featured Presentation Tool in OCaml

Paul-Elliot Anglès d'Auriac

ABSTRACT

Slipshow is a tool to create interactive presentations. Started as a JavaScript project, it is now fully written in OCaml and features a runtime engine, a compiler, a collaborative editing website, a VSCode extension, a standalone app...

This talk tells the story of how it is possible to develop and maintain such a challenging project as a single developer.

Session page: https://fun-ocaml.com/2025/slipshow/

Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/0b4e06b9-3657-472f-abeb-fa6e6ff1823e/b06ab867-c5d1-4050-bcbb-6aabf0c98231-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/2oY2gmi7Dtfgb58iv4Ww7J</video:player_loc><video:duration>2085</video:duration><video:rating>5</video:rating><video:view_count>7</video:view_count><video:publication_date>2025-12-02T09:57:27.520Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>Conference</video:tag><video:tag>Software development</video:tag><video:tag>FUN OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/a1aMiaWYLXVxU2Yf3iGFFE</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1d15c2cc-4ea4-41df-a558-1aeff51e6cd8.jpg</video:thumbnail_loc><video:title>0xCaml From a System Engineer's Point of View - Dmitriy Kovalenko - FUN OCaml 2025</video:title><video:description>0xCaml From a System Engineer's Point of View

Dmitriy Kovalenko (LightSource)

ABSTRACT

I do a lot of Rust, C, Zig and whatever else cursed systems programming languages are there. So recently 0xCaml popped out and I was def interested if I can finally use it. So I did some research on how it actually works comparing to native OCaml and other languages and try to build odiff (the fastest image comparison lib in the world) with 0xCaml. Here is what I learned.


Session page: https://fun-ocaml.com/2025/oxcaml-system-engineers-pov/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/48e84692-9e43-47c5-8d54-60550299e988/f95d601a-18cc-4beb-861e-6318be3edd9a-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/a1aMiaWYLXVxU2Yf3iGFFE</video:player_loc><video:duration>2015</video:duration><video:rating>0</video:rating><video:view_count>32</video:view_count><video:publication_date>2025-12-02T10:07:40.067Z</video:publication_date><video:tag>Conference</video:tag><video:tag>OCaml</video:tag><video:tag>Software development</video:tag><video:tag>FUN OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/4FDjm7yK4KsiXxN8fjV7ZW</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/59ea8a75-d46d-4bb0-a2b3-015597b1bbee.jpg</video:thumbnail_loc><video:title>Performance Pitfalls: Tales From a Python/OCaml Codebase - Emma Jin - FUN OCaml 2025</video:title><video:description>Performance Pitfalls: Tales From a Python/OCaml Codebase

Emma Jin (Semgrep)

ABSTRACT

Semgrep is a tool that enables developers to search their code for security vulnerabilities, built with an OCaml engine and a Python frontend. This has come with a fair amount of performance pain. In this talk, I'll share some of the worst problems we ran into, how we found them, and how we solved them (mostly, rewriting Python code in OCaml).

Session page: https://fun-ocaml.com/2025/performance-pitfalls-tales-from-a-python-ocaml-codebase/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/1dd46b85-e119-436a-ab62-f6b9e673e7e0/daf00cf5-1b8d-48dd-943b-0a46b146894d-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/4FDjm7yK4KsiXxN8fjV7ZW</video:player_loc><video:duration>1837</video:duration><video:rating>0</video:rating><video:view_count>16</video:view_count><video:publication_date>2025-12-02T10:28:25.508Z</video:publication_date><video:tag>Conference</video:tag><video:tag>OCaml</video:tag><video:tag>FUN OCaml</video:tag><video:tag>Software development</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/uSaQB8ejXBUdJGgUBfHCW8</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c0fc97cb-478e-4e05-93b4-a7292dbe096d.jpg</video:thumbnail_loc><video:title>Generating Static Websites the Functional Programming Way - Xavier Van de Woestyne - FUN OCaml 2025</video:title><video:description>Generating Static Websites the Functional Programming Way

Xavier Van de Woestyne (Tarides)

ABSTRACT

Static site generators like Jekyll, Zola, and Hugo are effective, but fall short for complex sites like personal encyclopedias, wikis, or sites with rich content. Features like backlinks and transclusions require richer context and efficient builds. This talk explores the theory behind static site generation (as a case of build systems) and shows how to implement advanced features inspired by Project Xanadu using YOCaml, a static site framework based on functional abstractions (such as strong profunctors) in OCaml.

Session page: https://fun-ocaml.com/2025/static-websites-functional-programming/


Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/e9c12245-eea3-4b71-87e3-4a467ddb0ffb/077e2031-0ad7-4d2f-9c61-532853d05828-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/uSaQB8ejXBUdJGgUBfHCW8</video:player_loc><video:duration>2232</video:duration><video:rating>0</video:rating><video:view_count>40</video:view_count><video:publication_date>2025-12-02T10:35:22.298Z</video:publication_date><video:tag>OCaml</video:tag><video:tag>FUN OCaml</video:tag><video:tag>Conference</video:tag><video:tag>Software development</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/x5XKaNB7Z2zyaFQWPBU2ZL</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9b1f1be3-23f5-4d6a-87ac-b7ee820a7637.jpg</video:thumbnail_loc><video:title>From OCaml 4 to 5 and from Parmap to Effects: A legacy code transition story - FUN OCaml 2025</video:title><video:description>From OCaml 4 to 5 and from Parmap to Effects: A legacy code transition story

SPEAKERS 

Nathan Taylor (Semgrep)
Nat Mote (Semgrep)

ABSTRACT

OCaml 5's support for shared memory parallelism and effects-based concurrency opens up new ways for developers to build new OCaml programs for modern hardware, but it isn't trivial to migrate existing software to this new world. We've spent the last few months porting a large (~3MM LoC) OCaml codebase from process-based parallelism to multi-domain Eio, and learned a lot along the way. In this talk, we'll discuss the fundamentals of shared-memory parallism, our incremental migration approach which used a combination of static and dynamic analysis, the pitfalls (both expected and unexpected) that we encountered along the way, and some lessons that others can adopt for their own journey.

Session page: https://fun-ocaml.com/2025/from-ocaml-4-to-5/

Connect with FUN OCaml:
Twitter: https://x.com/FunOCaml
Bluesky: https://bsky.app/profile/fun-ocaml.com

#ocaml

---

Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible!
* Octra Labs - https://octra.org/ - Platinum Sponsor
* Ahrefs - https://ahrefs.com/ - Platinum Sponsor
* Dialo - https://dialo.ai/ - Gold Sponsor
* LexiFi - https://www.lexifi.com - Bronze Sponsor
* Jane Street - https://www.janestreet.com/ - Bronze Sponsor

* LightSource - Volunteer / Organizer Commitment
* Tarides - Volunteer / Organizer Commitment</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/fbbca08e-f222-4c38-8ccc-f9cce61d9e6a/0731cab9-1a27-4a30-bd28-3007b3636bd1-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/x5XKaNB7Z2zyaFQWPBU2ZL</video:player_loc><video:duration>2059</video:duration><video:rating>0</video:rating><video:view_count>9</video:view_count><video:publication_date>2025-12-02T10:41:19.458Z</video:publication_date><video:tag>Software development</video:tag><video:tag>FUN OCaml</video:tag><video:tag>Conference</video:tag><video:tag>OCaml</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/funocaml/videos">FUN OCaml</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/c144wrFdZkNLBqbBDuuA3b</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/c7184eaf-b652-4e13-ae2b-bdc16e12815c.jpg</video:thumbnail_loc><video:title>[OCaml'25] Three steps for OCaml to crest the AI humps</video:title><video:description>Three steps for OCaml to crest the AI humps (Video, OCaml 2025)
Sadiq Jaffer, Jonathan Ludlam, Ryan Gibb, Thomas Gazagnaire, and Anil Madhavapeddy
(University of Cambridge; University of Cambridge; University of Cambridge; Tarides; University of Cambridge, UK)

Abstract: We discuss how OCaml could adapt to the fast-moving world of AI-assisted agentic coding. We first benchmark how well represented OCaml is in the large and diverse set of open weight models that can be run locally. We then consider what is unique about OCaml programming (in particular, modules and abstraction) that differentiates it in this space. We then consider the changes required in our ecosystem to work better with AI coding assistants.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/59166959-f1b2-431b-ae53-c126664e2346/fb18ff9f-eeff-4e4c-aba2-670703c39c95-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/c144wrFdZkNLBqbBDuuA3b</video:player_loc><video:duration>1515</video:duration><video:rating>5</video:rating><video:view_count>35</video:view_count><video:publication_date>2026-01-27T20:59:07.838Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/fWx1rkBCkGL3AzdEzY6JjU</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/65e84fdc-0460-44e9-b3fc-74165da8b4d8.jpg</video:thumbnail_loc><video:title>[OCaml'25] A New Era of OCaml Editing: Powered by Merlin, Delivered via LSP</video:title><video:description>A New Era of OCaml Editing: Powered by Merlin, Delivered via LSP (Video, OCaml 2025)
Xavier Van de Woestyne, Sonja Heinze, Ulysse Gérard, and Muluh Godson
(Tarides; Tarides; Tarides; Tarides)

Abstract: In an era where the number of code editors keeps growing, supporting only Vim and Emacs is no longer enough for a modern language like OCaml. Maintaining a proliferation of dedicated editor clients has become a real burden — what we unformally call the Editor Burnout. Fortunately, Language Server Protocol (LSP), which was originally introduced in 2016 for the editor Visual Studio Code, offers a generic open standard for all editors.
In this presentation, we will present our work on adopting LSP. We will explain how it has significantly improved OCaml editor support while keeping maintenance efforts to a minimum — we’ll also explain the costs it comes with.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/78fd36c1-86ee-411c-9812-6fc4b6c27c98/50daeb6a-74ff-4562-9099-598e2f5cc821-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/fWx1rkBCkGL3AzdEzY6JjU</video:player_loc><video:duration>1900</video:duration><video:rating>0</video:rating><video:view_count>19</video:view_count><video:publication_date>2026-01-27T21:16:07.529Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/irxZmnVsK5fB1TfrsK3xh3</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/1d710647-49b8-472b-8430-d7fd9c692b94.jpg</video:thumbnail_loc><video:title>[OCaml'25] A Mechanically Verified Garbage Collector for OCaml</video:title><video:description>A Mechanically Verified Garbage Collector for OCaml (Video, OCaml 2025)
Sheera Shamsu, Dipesh Kafle, Dhruv Maroo, Kartik Nagar, Karthikeyan Bhargavan, and KC Sivaramakrishnan
(IIT Madras; NIT Trichy, Tiruchirappalli, India; IIT Madras, Chennai; IIT Madras; Cryspen, France; IIT Madras and Tarides)

Abstract: The GC is a critical component of the OCaml runtime system, and its correctness is essential for the safety of OCaml programs. Therefore, we propose a strategy for crafting a correct, proof-oriented GC from scratch, designed to evolve over time with additional language features. Our approach neatly separates abstract GC correctness from OCaml-specific GC correctness, offering the ability to integrate further GC optimizations, while preserving core abstract GC correctness. As an initial step to demonstrate the viability of our approach, we have developed a verified stop-the-world mark-and- sweep GC for OCaml. The approach is mechanized in F* and its low-level subset Low*. We use the KaRaMel compiler to compile Low* to C, and the verified GC is integrated with the OCaml runtime. Our GC is evaluated against off-the shelf OCaml GC and Boehm-Demers-Weiser conservative GC, and the experimental results show that verified GC is pragmatic.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/8d3caa4f-ad8b-44f6-b935-b1e09e1af17e/cb96cfeb-a7e2-4e65-a4f3-367539fabc4e-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/irxZmnVsK5fB1TfrsK3xh3</video:player_loc><video:duration>1659</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2026-01-27T20:38:10.165Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/nQTF43QFWrzMTLkWVfBD95</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/7cbe86ee-2344-47f1-abff-36911eb9ac54.jpg</video:thumbnail_loc><video:title>[OCaml'25] Toward a More Secure OCaml Ecosystem</video:title><video:description>Toward a More Secure OCaml Ecosystem (Video, OCaml 2025)
Maksim Grankin
(Bloomberg)

Abstract: To meet the growing security expectations of industrial users and open source contributors alike, the OCaml Software Foundation (OCSF) has launched the OCaml Security Team — a new initiative to improve the security posture of the OCaml ecosystem.
This lightning talk shares the motivation behind the team’s creation, outlines the initial steps we’ve taken, and highlights the broader security challenges facing language ecosystems today.
More importantly, it’s an invitation: we’re looking to connect with developers, researchers, and organizations who rely on OCaml in environments where security, compliance, and regulatory obligations are real concerns. Whether you’re navigating specific threat models, implementing secure infrastructure, or adapting to evolving regulations, your input can help shape our priorities and guide where this effort goes next.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/b0e37527-8d5f-4d7b-869e-15f101466b80/eb55d9a6-28c0-4e93-801e-75943df80971-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/nQTF43QFWrzMTLkWVfBD95</video:player_loc><video:duration>1301</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2026-01-27T21:08:13.714Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/eAdpqFJRZUjYJjfQoXcda9</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/ff087733-f5d4-4858-b844-91b75df5b946.jpg</video:thumbnail_loc><video:title>[OCaml'25] Taming the Flat Float Array Optimization: Tracking Separability in the Type System</video:title><video:description>Taming the Flat Float Array Optimization: Tracking Separability in the Type System (Video, OCaml 2025)
Diana Kalinichenko, and Richard A. Eisenberg
(Jane Street; Jane Street)

Abstract: OCaml’s flat float array optimization stores floating-point values directly in arrays rather than through pointers, preventing performance degradation for numerical algorithms. However, this optimization requires that all types be \textit{separable} — containing either all float values or none. This restriction prevents certain useful types, such as unboxed existentials and an unboxed version of options. We present the approach taken by OxCaml (OCaml with Jane Street’s extensions) to tracking separability through the type system using a three-valued separability axis. This design enables previously rejected non-separable types while maintaining compatibility with existing code and enabling new optimizations for arrays of known non-float types. Our implementation builds on OxCaml’s kind system but could be adapted to vanilla OCaml.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/6e0dbc24-468a-4fca-93dd-f28aafcbceaa/25c9e9da-8852-40b1-83ac-f7925deac897-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/eAdpqFJRZUjYJjfQoXcda9</video:player_loc><video:duration>1796</video:duration><video:rating>0</video:rating><video:view_count>11</video:view_count><video:publication_date>2026-01-27T21:27:06.414Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/ggxSZ98Y3XRoDonLBE4Xxs</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/edd3c57d-a301-49ce-952c-ac91cf3d13df.jpg</video:thumbnail_loc><video:title>[OCaml'25] Embedding WebAssembly in OCaml for Safe Program Construction</video:title><video:description>Embedding WebAssembly in OCaml for Safe Program Construction (Video, OCaml 2025)
Hunter DeMeyer
(University of Illinois Urbana-Champaign)

Abstract: WebAssembly (wasm) is a binary instruction format for a stack-based virtual machine originally designed to improve the safety and performance of client-side web applications. It has since gained popularity outside of the browser because of its portability and security guarantees. These features make it an ideal encoding for serialized representations of computation, and a critical format for modern programming languages to interface with. While existing OCaml libraries support standards development, symbolic execution, and compiling OCaml to wasm, they lack explicit facilities for manipulating wasm modules. The ability to construct and rewrite wasm code, as provided in Rust by tools such as wasm-bindgen and wirm, would elevate wasm’s utility in the OCaml ecosystem. Leveraging OCaml’s strong typing and powerful type inference can help to ergonomically make illegal wasm programs unrepresentable.
Inspired by TyXML and Hardcaml, I propose WasML: a library that enforces syntactic and semantic constraints in wasm programs via OCaml types. WasML enables OCaml programmers to build and rewrite wasm programs with a higher assurance of correctness at compile time, laying the foundation for future work on serializable computation and parameterized code generation.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/7ba4e1f3-1504-41d8-b68d-c9a540a9c514/e29cc375-8b71-4ac9-b61b-ab502ba1800c-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/ggxSZ98Y3XRoDonLBE4Xxs</video:player_loc><video:duration>1616</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2026-01-27T21:37:35.018Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/e8tZZAT8mx9D15H3rAJXMi</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/10a02002-71dd-453e-a334-1bb2a462b7b2.jpg</video:thumbnail_loc><video:title>[OCaml'25] smaws: An AWS SDK for OCaml</video:title><video:description>smaws: An AWS SDK for OCaml (Video, OCaml 2025)
Chris Armstrong
(unaffiliated)

Abstract: This presentation introduces smaws, a new Amazon Web Services (AWS) Software Development Kit (SDK) implementation for OCaml that leverages its type safety and effects-based concurrency to create a modern library for interfacing with AWS cloud computing services. smaws uses AWS’s Smithy interface definition language (IDL) to generate the SDK, taking advantage of an existing ecosystem of specifications and compliance tests. It explores the fundamental design challenges of creating developer-facing libraries in OCaml, where decisions about abstraction, validation, and ecosystem integration have long-standing implications for both usability and maintainability. It will also look at existing OCaml libraries in this space, and the relative merits of Smithy as a new IDL.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/6a5243b6-ec69-47f9-ac0f-b02744b7e34f/ad543baa-43c8-4f3f-a5b2-912edf62dbc3-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/e8tZZAT8mx9D15H3rAJXMi</video:player_loc><video:duration>1733</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2026-01-27T20:24:29.643Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/i6UiPo9c4HgEe3PEXTmHtK</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/9fef7cfb-dd74-440b-b72a-8e389e58be62.jpg</video:thumbnail_loc><video:title>[OCaml'25] How the OCaml Community Established Its Code of Conduct</video:title><video:description>How the OCaml Community Established Its Code of Conduct (Video, OCaml 2025)
Sudha Parimala
(Tarides)

Abstract: The OCaml language has been open source since its inception. Originating at INRIA nearly three decades ago, the OCaml ecosystem has had contributors from diverse professional backgrounds and disciplines. A large number of OCaml projects are open-source, including the compiler itself, platform tooling, and associated libraries. Despite the existence of this extensive open-source ecosystem, the OCaml community adopted a Code of Conduct only three years ago. This presentation will detail the process of introducing this Code of Conduct: forming a team of volunteers, drafting the document, gathering community feedback, making amendments, and sharing the lessons learned.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/8a7e4fbf-c677-4575-affc-82813aa9fabd/3b002a02-1bb6-4143-917b-8ff1738203f7-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/i6UiPo9c4HgEe3PEXTmHtK</video:player_loc><video:duration>1492</video:duration><video:rating>0</video:rating><video:view_count>0</video:view_count><video:publication_date>2026-01-28T08:14:34.722Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/d2FxP2dytTejcC9v513HMx</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/cf3390c4-7fc6-48b1-8ff2-ecd647bef3aa.jpg</video:thumbnail_loc><video:title>[OCaml'25] OCaml Package Management with (only!) Dune</video:title><video:description>OCaml Package Management with (only!) Dune (Video, OCaml 2025)
Stephen Sherratt, Marek Kubica, and Rudi Grinberg
(Tarides; Tarides; OCaml Labs)

Abstract: The OCaml build system Dune keeps track of a project’s dependencies on external software packages. Historically however, Dune has been unable to download or install these packages completely independently, relying on additional tools to perform these functions. This complicated the development of projects in OCaml as users needed to be fluent in both Dune as well as an additional tool (often opam) to manage a project’s dependencies. Recent work on Dune has added package management capabilities directly to the build system, enabling workflows where Dune is the only tool necessary to develop software in OCaml.
This talk will showcase Dune’s new package management features by developing an OCaml program starting from a bare system with no OCaml tooling installed.


Presentation at the OCaml 2025 workshop, Oct 17, 2025, https://conf.researchr.org/home/icfp-splash-2025/ocaml-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/6169c7c1-6312-40d0-b026-af2837f41b25/02524da2-cc84-4465-935c-01664f5b7112-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/d2FxP2dytTejcC9v513HMx</video:player_loc><video:duration>2092</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2026-01-28T08:24:14.713Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/ocaml2025/videos">OCaml Workshop 2025</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/xiy244BRrnEagPd9pQWvS5</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/af798617-662b-4830-9586-6ba6f17bc78c.jpg</video:thumbnail_loc><video:title>[Tutorials @ ICFP/SPLASH'25] A guided tour through Oxidized OCaml</video:title><video:description>A guided tour through Oxidized OCaml (Video, Tutorials @ ICFP/SPLASH 2025)
Gavin Gray, Anil Madhavapeddy, KC Sivaramakrishnan, Will Crichton, Shriram Krishnamurthi, Chris Casinghino, and Richard A. Eisenberg
(Brown University; University of Cambridge, UK; IIT Madras and Tarides; Brown University; Brown University; Jane Street; Jane Street)

Abstract: OxCaml is a set of extensions to the OCaml programming language that form Jane Street’s production compiler for performance-oriented programming. OxCaml’s primary design goals are to provide safe, convenient, predictable control over performance-critical aspects of program behavior while preserving ML-style programming ergonomics. This tutorial will focus on key extensions in OxCaml, such as: - fearless concurrency: additions to the type system to statically rule out data races. - data layouts: providing more control over how data is laid out in memory and native access to vector instructions. - allocation control: reducing GC pressure and improving cache efficiency and determinism.


Presentation at the Tutorials @ ICFP/SPLASH 2025 event, October 12, 2025, https://conf.researchr.org/track/icfp-splash-2025/icfp-splash-2025-tutorials
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/fd7eaca7-e2f8-49d1-814c-d3e52a44da3c/02c8b472-1db8-4114-a4e4-eaecf47c93f1-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/xiy244BRrnEagPd9pQWvS5</video:player_loc><video:duration>4818</video:duration><video:rating>0</video:rating><video:view_count>38</video:view_count><video:publication_date>2026-01-28T09:15:07.635Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/general/videos">general</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/7RpSA6YsTM2ayx4GYiYHug</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/0e02dc35-a313-4b6b-b3f5-4ae820f72a76.jpg</video:thumbnail_loc><video:title>[TyDe'25] Generating a corpus of Hazel programs from ill-typed OCaml programs</video:title><video:description>Generating a corpus of Hazel programs from ill-typed OCaml programs (Extended Abstract) (Video, TyDe 2025)
Patrick Ferris, and Anil Madhavapeddy
(University of Cambridge, UK; University of Cambridge, UK)

Abstract: When developing a new programming language, having a large corpus of both correct and incorrect programs allows language designers to test and explore the capabilities of their new language. However, bootstrapping such a corpus of incorrect programs is time consuming and arduous. We therefore explore how to reuse code from more mature languages to generate a corpus of ill-typed code for newer ones. We have developed a compiler to Hazel, an emerging language with typed holes, from the more mature OCaml ecosystem. We find it practical to generate a comprehensive corpus of ill-typed programs for Hazel development, and discuss future larger scale efforts towards bridging ecosystems.


Presentation at the TyDe 2025 workshop, October 12, 2025, https://conf.researchr.org/home/icfp-splash-2025/tyde-2025
Sponsored by ACM SIGPLAN.</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/377cfd0b-b643-4474-9e21-3b2f4c70e77b/83cee936-6fcf-487f-a8ea-f3270bde9477-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/7RpSA6YsTM2ayx4GYiYHug</video:player_loc><video:duration>1527</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2026-01-28T09:04:50.626Z</video:publication_date><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/general/videos">general</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/w/8aUqMhFvhQGq4WJLH3ukjA</loc><video:video><video:thumbnail_loc>https://watch.ocaml.org/lazy-static/thumbnails/230cb832-5098-4130-a28b-f4348502d19a.jpg</video:thumbnail_loc><video:title>Outreachy Demo Day December 2025 Round</video:title><video:description>The OCaml community participated in the December 2025 round of Outreachy internships. We had four interns working on Raven, OCaml-TIFF and YOCaml.

This meeting was an opportunity for the interns to present their work and for the community to ask questions and was [originally announced on the discuss forum](https://discuss.ocaml.org/t/outreachy-demo-day-for-december-2025-round).
</video:description><video:content_loc>https://watch.ocaml.org/static/streaming-playlists/hls/3a11f957-adba-4c97-8618-2965f1829b02/b619c9c6-1527-44f4-a6de-5a69e2739c11-master.m3u8</video:content_loc><video:player_loc>https://watch.ocaml.org/videos/embed/8aUqMhFvhQGq4WJLH3ukjA</video:player_loc><video:duration>5944</video:duration><video:rating>5</video:rating><video:view_count>43</video:view_count><video:publication_date>2026-03-23T14:25:53.180Z</video:publication_date><video:tag>outreachy</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://watch.ocaml.org/c/outreachy_ocaml/videos">Outreachy</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://watch.ocaml.org/c/general/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2020/videos</loc></url><url><loc>https://watch.ocaml.org/c/diksha_channel/videos</loc></url><url><loc>https://watch.ocaml.org/c/patrick_channel/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2021/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2016/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2015/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2014/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2012/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2022/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2017/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2018/videos</loc></url><url><loc>https://watch.ocaml.org/c/tarides_tech_talk/videos</loc></url><url><loc>https://watch.ocaml.org/c/outreachy_ocaml/videos</loc></url><url><loc>https://watch.ocaml.org/c/emelletv/videos</loc></url><url><loc>https://watch.ocaml.org/c/jonah_channel/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2023/videos</loc></url><url><loc>https://watch.ocaml.org/c/funocaml/videos</loc></url><url><loc>https://watch.ocaml.org/c/ocaml2025/videos</loc></url><url><loc>https://watch.ocaml.org/a/bactrian/video-channels</loc></url><url><loc>https://watch.ocaml.org/a/dikshagupta/video-channels</loc></url><url><loc>https://watch.ocaml.org/a/patrickferris/video-channels</loc></url><url><loc>https://watch.ocaml.org/a/tarides/video-channels</loc></url><url><loc>https://watch.ocaml.org/a/davesnx/video-channels</loc></url><url><loc>https://watch.ocaml.org/a/jonahbeckford/video-channels</loc></url><url><loc>https://watch.ocaml.org/a/fun/video-channels</loc></url></urlset>