OCaml Weekly News
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
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
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 https://github.com/evancz/elm-playground 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 https://github.com/aryx/ocaml-elm-playground
And merry christmas!
First release of flatunionfind
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.
Serving This Article from RAM with Dream for Fun and No Real Benefit
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!
Other OCaml News
From the ocaml.org blog
Here are links from many OCaml blogs aggregated at the ocaml.org blog.
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.