Hello Here is the latest OCaml Weekly News, for the week of December 24 to 31, 2024. Table of Contents ───────────────── Using Property-Based Testing to Test OCaml 5 First release of elm_playground First release of flatunionfind Serving This Article from RAM with Dream for Fun and No Real Benefit Other OCaml News Old CWN Using Property-Based Testing to Test OCaml 5 ════════════════════════════════════════════ Archive: Jan Midtgaard announced ─────────────────────── I've written up part 2 on our effort to utilize property-based testing to stress test the OCaml 5 run time system. Happy Christmas reading! 🎄🎅 🎁 😄 First release of elm_playground ═══════════════════════════════ Archive: Yoann Padioleau announced ───────────────────────── It is my pleasure to announce the first release of `elm_playground', an OCaml package that allows you to easily create /pictures/, /animations/, and even /video games/ in a portable way using an API that really simplifies how to view the computer and its devices (the screen, keyboard, and mouse). The library offers a native backend to run the games from a terminal and a web backend to run the games in your browser. This is a port of the excellent Elm playground package to OCaml. You can install it via OPAM via `opam install elm_playground'. Here are a few examples of code using the library. First a "picture" app: ┌──── │ (* from https://elm-lang.org/examples/picture *) │ open Playground │ │ let app = │ picture [ │ rectangle brown 40. 200. │ |> move_down 80.; │ circle green 100. │ |> move_up 100.; │ ] │ │ let main = Playground_platform.run_app app └──── Then an "animation" app: ┌──── │ (* from https://elm-lang.org/examples/animation *) │ open Playground │ │ let view time = [ │ octagon darkGray 36. │ |> move_left 100. │ |> rotate (spin 3. time); │ octagon darkGray 36. │ |> move_right 100. │ |> rotate (spin 3. time); │ rectangle red 300. 80. │ |> move_up (wave 50. 54. 2. time) │ |> rotate (zigzag (-. 2.) 2. 8. time); │ ] │ │ let app = │ animation view │ │ let main = Playground_platform.run_app app └──── And finally a "game" app: ┌──── │ (* from https://elm-lang.org/examples/mouse *) │ open Playground │ │ let view _computer (x, y) = [ │ square blue 40. │ |> move x y │ ] │ │ let update computer (x, y) = │ (x +. to_x computer.keyboard, y +. to_y computer.keyboard) │ │ let app = │ game view update (0., 0.) │ │ let main = Playground_platform.run_app app └──── Note that you can write more complex games. For example here is a screenshot of a toy tetris app: For more information, follow the README at And merry christmas! First release of flatunionfind ══════════════════════════════ Archive: François Pottier announced ────────────────────────── I am pleased to announce the first release of `flatunionfind', a small library that offers a union-find data structure, stored inside a vector. This library is an alternative to my existing library `unionFind', and could be faster or slower, depending on your use case. ┌──── │ opam update │ opam install flatunionfind └──── For more information, see the [documentation]. Happy unions and finds, FP. [documentation] Serving This Article from RAM with Dream for Fun and No Real Benefit ════════════════════════════════════════════════════════════════════ Archive: Thomas Letan announced ────────────────────── I’ve been playing with my website lately, more precisely on how the contents is delivered to the readers. Before, it was merely a boring, static website delivered by Nginx; now it’s a Dream-powered HTTP server with all the pages in-memory. [I’ve written about this fun, little project], and you may find the article interesting. It covers several topis: fun experiments with the Dream library, HTTP arcane one cannot ignore if they want to implement a browser-friendly server, and even some Docker because why not! Happy holidays everyone! [I’ve written about this fun, little project] Other OCaml News ════════════════ From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [Serving This Article from RAM with Dream for Fun and No Real Benefit] • [Multicore Property-Based Tests for OCaml 5: Challenges and Lessons Learned] [the ocaml.org blog] [Serving This Article from RAM with Dream for Fun and No Real Benefit] [Multicore Property-Based Tests for OCaml 5: Challenges and Lessons Learned] Old CWN ═══════ If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe to the [caml-list]. [Alan Schmitt] [send me a message] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt]