OCaml Weekly News December 31
| From: | Alan Schmitt <alan.schmitt-AT-polytechnique.org> | |
| To: | "lwn" <lwn-AT-lwn.net>, caml-list-AT-inria.fr | |
| Subject: | Attn: Development Editor, Latest OCaml Weekly News | |
| Date: | Tue, 31 Dec 2024 09:03:48 +0100 | |
| Message-ID: | <m21pxob7ob.fsf@petitepomme.net> |
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: <https://discuss.ocaml.org/t/blog-using-property-based-tes...> 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! 🎄🎅 🎁 😄 <https://tarides.com/blog/2024-12-23-multicore-property-ba...> First release of elm_playground ═══════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-first-release-of-elm-play...> 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 └──── <https://global.discourse-cdn.com/flex020/uploads/ocaml/op...> 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 └──── <https://global.discourse-cdn.com/flex020/uploads/ocaml/op...> 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 └──── <https://global.discourse-cdn.com/flex020/uploads/ocaml/op...> Note that you can write more complex games. For example here is a screenshot of a toy tetris app: <https://global.discourse-cdn.com/flex020/uploads/ocaml/or...> For more information, follow the README at <https://github.com/aryx/ocaml-elm-playground> And merry christmas! First release of flatunionfind ══════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-first-release-of-flatunio...> 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] <https://cambium.inria.fr/~fpottier/flatunionfind/doc/flat...> Serving This Article from RAM with Dream for Fun and No Real Benefit ════════════════════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/serving-this-article-from-ram...> 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] <https://soap.coffee/~lthms/posts/DreamWebsite.html> 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] <https://ocaml.org/blog/> [Serving This Article from RAM with Dream for Fun and No Real Benefit] <https://soap.coffee/~lthms/posts/DreamWebsite.html> [Multicore Property-Based Tests for OCaml 5: Challenges and Lessons Learned] <https://tarides.com/blog/2024-12-23-multicore-property-ba...> 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] <mailto:alan.schmitt@polytechnique.org> [the archive] <https://alan.petitepomme.net/cwn/> [RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss> [caml-list] <https://sympa.inria.fr/sympa/info/caml-list> [Alan Schmitt] <https://alan.petitepomme.net/>
Attachment: None (type=text/html)(HTML attachment elided)
