[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