[cwn] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue May 2 01:01:22 PDT 2023


Hello

Here is the latest OCaml Weekly News, for the week of April 25 to May
02, 2023.

Table of Contents
─────────────────

Lambda Capabilities
My Thoughts on OCaml vs Haskell/Rust in 2023
Interesting OCaml Articles
Dream-html - DSL to build HTML, integrated with Dream
Trying the 7GUIs with LablGTK3/OCaml
Call for new opam-repository maintainers
Old CWN


Lambda Capabilities
═══════════════════

  Archive: <https://discuss.ocaml.org/t/lambda-capabilities/12021/1>


Thomas Leonard announced
────────────────────────

  Several people, after reading the [Eio tutorial], have asked for more
  details about what “capabilities” are (and why they should care). I
  couldn’t find an introduction aimed at functional programmers, so I
  had a go at writing my own:

  <https://roscidus.com/blog/blog/2023/04/26/lambda-capabilities/>

  Please let me know if anything is unclear!


[Eio tutorial]
<https://github.com/ocaml-multicore/eio/blob/main/README.md>


My Thoughts on OCaml vs Haskell/Rust in 2023
════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/my-thoughts-on-ocaml-vs-haskell-rust-in-2023/12027/1>


Sid Kshatriya announced
───────────────────────

  Recently, osa1’s [My Thoughts on OCaml] generated quite a [robust]
  conversation on Hacker News. Overall I felt the blog post was a bit
  too critical about OCaml. However, everyone has a right to their
  opinions and I respect whatever has been written.

  Except for a couple of points, that post /didn’t/ resonate with me, so
  I thought I should pen down my good/bad experiences with OCaml and see
  if others have felt the same way as me.

  *I’ve written a longish blog post [here]* as sort my reponse! Please
  check it out!

  Your feedback and comments would be useful!

  If people think this is a worthy blog post, I’d like to post my blog
  on Hacker news also :-). If anybody feels enthusiastic about this
  write up do feel free to put it up on Hackernews yourself too!


[My Thoughts on OCaml]
<https://osa1.net/posts/2023-04-24-ocaml-thoughts.html>

[robust] <https://news.ycombinator.com/item?id=35699697>

[here]
<https://github.com/sidkshatriya/me/blob/master/007-My-Thoughts-on-OCaml-vs-Haskell-Rust-2023.md>


Tim McGilchrist later said
──────────────────────────

  Another take on the current state of OCaml from
  <https://borretti.me/article/two-years-ocaml>. There are many points I
  do and don’t agree with from both, but I think it is important to
  reflect on the language and tooling. These fresh takes on things are
  useful to read. Thanks @sid for taking the time to write your version
  up.

  For me personally I would like a version of modular implicits to land
  and to have a typed effect system to go along with my EIO/Multicore. I
  should writeup a longer version given my background with Haskell and
  OCaml.


Interesting OCaml Articles
══════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/interesting-ocaml-articles/1867/102>


NomadicLabs announced
─────────────────────

  We published a blog post that might be interesting to OCaml devs. When
  working with large codebases such as Tezos Octez, it is important to
  make the code highly readable. Discover “labelled type parameters” - a
  lesser-known OCaml trick used by Nomadic Labs devs to reach this
  objective:
  <https://research-development.nomadic-labs.com/labelled-type-parameters-in-ocaml.html>


Dream-html - DSL to build HTML, integrated with Dream
═════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/pre-release-dream-html-dsl-to-build-html-integrated-with-dream/12032/1>


Yawar Amin announced
────────────────────

  Hi, I have been working on a ’simple’ OCaml library to generate HTML,
  with close integration with Dream. I am already using it on a [side
  project] and think it’s nearing production level for general use. I
  wanted to give a preview here in case anyone is interested.

  • Repo: <https://github.com/yawaramin/dream-html>
  • Doc:
    <https://yawaramin.github.io/dream-html/dream-html/Dream_html/index.html>

  In terms of approach taken, it is closer to [Webs_html] than to TyXML.
  Things that are statically typechecked:

  • ’Standard’ tags have attributes and children
  • Void elements have no children
  • Some tags can contain only a single text node
  • Attributes with boolean, int, or enumerated string values

  All attributes and text nodes support format strings i.e.
  interpolation. So no need to pull in `Printf.sprintf'. HTML comments
  are also supported. HTML escaping is done for almost all text nodes
  and attribute values, leaving aside the ones that aren’t supported by
  Dream’s escaping i.e. JavaScript and CSS content.

  Oh, one more thing. I also added the core htmx attributes since I’m
  using htmx.

  Check out the test file for a slightly larger idiomatic usage:
  <https://github.com/yawaramin/dream-html/blob/main/test/dream_html_test.ml>


[side project] <https://zettelkit.xyz/>

[Webs_html]
<https://erratique.ch/software/webs/doc/Webs_html/El/index.html>


Simon Cruanes then said
───────────────────────

  Very nice! I like this combinator-based approach, I have [a similar
  thing] in tiny_httpd. I think it’s a nice balance between simplicity
  and expressiveness.


[a similar thing]
<https://c-cube.github.io/tiny_httpd/0.12/tiny_httpd/Tiny_httpd_html/index.html>


Trying the 7GUIs with LablGTK3/OCaml
════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/trying-the-7guis-with-lablgtk3-ocaml/12033/1>


Frédéric Loyer announced
────────────────────────

  I have tried to implement the 7GUIs
  (<https://eugenkiss.github.io/7guis/>) with LablGTK3/OCaml.

  The first 6 are done (but would need some polishing). The last one
  won’t be possible (there are no real Table widget in Gtk… then the
  `gtksheet' example is rather big).

  I hhave to admit that finding some functions/method was not always
  easy. For changing the background of a widget, multiple methods exist
  and only one works. Some methods are hidden in a `#misc' suffix
  (`drawing#misc#queue_draw'…), I had to hack some way to create a
  `GMisc.drawing_area' of a given dimension since this constructor
  doesn’t like `~width' or `~height'. But the library seems to be rather
  convenient and complete.

  See [Implementation of 7GUIs in OCaml with LablGtk3]


[Implementation of 7GUIs in OCaml with LablGtk3]
<https://github.com/F-loyer/7guis-ocaml-lablgtk3>


Later on, Frédéric Loyer said
─────────────────────────────

  I guess the `Cells' is nearly ready with one function (SUM) which
  support range and list of range, the 4 arithmetic operators + 2 unary
  operators. There are some lacking enhancement (NullValues could be
  seen as 0…).

  The number of lines of code is:
  ┌────
  │    21 lexer.mll
  │    43 parser.mly
  │   189 expr.ml
  │    73 cells.ml
  │   326 total
  └────
  The 7th is nearly as big as the 6 first together!

  Where all the spreadsheet engine is in `expr.ml' Cells deals with the
  GUI (and the Parser calls since I can have a depancy circle
  Parser<->Expr).


Frédéric Loyer added
────────────────────

  Note, the site has migrated here :
  <https://7guis.github.io/7guis/implementations/>

  I hope my pull request will be handled soon and makes my contribution
  referenced.


Call for new opam-repository maintainers
════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/call-for-new-opam-repository-maintainers/12041/1>


Kate announced
──────────────

  Come and help maintenance of the `opam-repository'!

  [opam-repository] is the official store of package descriptions for
  the OCaml ecosystem. It allows everyone to easily install whatever
  dependency their project might need. It also allows everyone, by just
  opening a PR, to easily make their code available to the community at
  large.

  The repository is maintained by a handful of people who work together
  to ensure that the packages are up-to-date, high-quality, and their
  metadata are consistent. **We are looking for new contributors to help
  us maintain the repository and keep it running smoothly.**

  You don’t need to be an expert in OCaml or `opam' to get involved –
  all you need is a willingness to learn and a desire to contribute (and
  a github account :sweat_smile:). As a new maintainer, you’ll start
  with triaging access, which means you’ll be able to review and approve
  changes to the repository. After a few weeks of successful triaging,
  you can decide to stick around and you’ll be granted full access.

  Let us know if you have any questions or if you want to try it out!

  Kate, Marcello, Raphaël


[opam-repository] <https://github.com/ocaml/opam-repository>


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
  [online].

  [Alan Schmitt]


[send me a message] <mailto:alan.schmitt at polytechnique.org>

[the archive] <https://alan.petitepomme.net/cwn/>

[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>

[online] <http://lists.idyll.org/listinfo/caml-news-weekly/>

[Alan Schmitt] <https://alan.petitepomme.net/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20230502/5f4f8c90/attachment-0001.html>


More information about the caml-news-weekly mailing list