caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: "lwn" <lwn@lwn.net>, "cwn"  <cwn@lists.idyll.org>, caml-list@inria.fr
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 25 Jan 2022 13:44:52 +0100	[thread overview]
Message-ID: <87a6fk56ij.fsf@m4x.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 14277 bytes --]

Hello

Here is the latest OCaml Weekly News, for the week of January 18 to 25,
2022.

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

wu-manber-fuzzy-search 0.1.0 (new library)
findlib-1.9.2
Signals and Threads on Memory Management
OCaml 4.14.0, first alpha release
A brief survey for Learn-OCaml Community
Blog post: Js_of_ocaml, a bundle size study
Interesting OCaml Articles
Old CWN


wu-manber-fuzzy-search 0.1.0 (new library)
══════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-wu-manber-fuzzy-search-0-1-0-new-library/9173/1>


Ifaz Kabir announced
────────────────────

  I'm happy to introduce wu-manber-fuzzy-seach, my library for doing
  fuzzy searches using the Wu and Manber fuzzy search algorithm.

  The novel part of this library particularly, when compared to
  `agrep/ocamlagrep', is that I additionally provide a right-leaning
  variant of the algorithm. The variant reports better matches and error
  counts when looking at the first match. Here's an example of the
  differences.

  ┌────
  │ # open Wu_Manber;;
  │ # StringSearch.(search ~k:2 ~pattern:"brown" ~text:"quick brown fox" |> report);;
  │ - : string = "Pattern matched with 2 errors at character 9 of text"
  │ # StringSearch.(search_right_leaning ~k:2 ~pattern:"brown" ~text:"quick brown fox" |> report);;
  │ - : string = "Pattern matched with 0 errors at character 11 of text"
  └────

  It's a pure OCaml implementation, using `Optint.Int63.t' as
  bit-vectors. I don't current support all the extensions that
  `agrep/ocamlagrep' supports, and will definitely not match the
  performance: OCaml+C vs pure OCaml.

  The documentation for the library can be found [here].

  It's not on `opam' yet, but there is a [PR].

  Expect more bitvector, Levenshtein distance, and fuzzy search
  shenanigans in the near future!


[here] <https://ifazk.github.io/wu-manber-fuzzy-search/>

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


findlib-1.9.2
═════════════

  Archive:
  <https://sympa.inria.fr/sympa/arc/caml-list/2022-01/msg00040.html>


Gerd Stolpmann announced
────────────────────────

  findlib-1.9.2 is out. The only change is a fix for a build problem
  regarding the OCaml-5 trunk.

  For manual, download, manuals, etc. see here:

  <http://projects.camlcity.org/projects/findlib.html>

  An updated OPAM package will follow soon.


Signals and Threads on Memory Management
════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/signals-and-threads-on-memory-management/9190/1>


gasche said
───────────

  I just had an excellent time listening to the last Signals and Threads
  podcast episode on [Memory Management], with Stephen Dolan (@stedolan)
  as the guest and Yaron Minsky (@Yaron_Minsky) as the host discussing:
  • memory management in programming languages in general
  • memory management in OCaml
  • ongoing research by Stephen and Leo White (@lpw25) on
    memory-management and data-representation features for OCaml
    (unboxed types, local values on the stack).

  The link <https://signalsandthreads.com/memory-management/> contains
  both the audio and a full text transcript.

  I would warmly recommend giving it a try if you are interested in
  programming language implementation. There is new stuff to learn for
  everyone, and I also liked the presentation of the parts I was already
  familiar with.


[Memory Management] <https://signalsandthreads.com/memory-management/>


Yaron Minsky replied
────────────────────

  Thanks for the nice words. Interviewing Dolan was fun and I learned a
  lot.

  Local types are still very new: we're hoping to start rolling it out
  in a limited way internally in the next few weeks, and I expect we'll
  learn a lot from that. We plan on discussing it more publicly as well,
  but that's a bit farther out. In the meantime, the source is all
  available [on Github] if anyone wants to poke around.

  The approach to stack allocation is different and simpler than the one
  in Rust, as Dolan explained in the episode.  Instead of having
  implicit, polymorphic lifetime variables, function arguments can be
  marked as local, which prevents the function in question from stashing
  a reference to those types. This avoids the need to deal with
  higher-rank polymorphism, which Rust's lifetime approach requires, and
  as a result makes inference work nicely.

  Another neat trick is that you can create functions that can allocate
  on the parent stack frame (by dint of not having their own stack
  frame). This lets you build smart constructors for stack-allocated
  values.

  Local types are apparently an example of modal types, though I don't
  really know enough type theory to have a deep sense of what that
  means. But it's a powerful thing, and local types appear to be useful
  for more than just stack allocation, as we're just starting to
  discover.


[on Github] <https://github.com/ocaml-flambda/ocaml-jst>


Yaron Minsky then added
───────────────────────

  And, I suppose as I should always mention: we're looking for people to
  come and work with Dolan and Leo and the rest of the team on this kind
  of stuff.

  More here:

  <https://blog.janestreet.com/applied-PL-research/>


OCaml 4.14.0, first alpha release
═════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-4-14-0-first-alpha-release/9191/1>


octachron announced
───────────────────

  The set of new features for the future version 4.14.0 of OCaml has
  been (finally) stabilized, three months after the release of OCaml
  4.13.1. I am thus happy to announce the first alpha release for OCaml
  4.14.0 .

  This alpha version is here to help fellow hackers join us early in our
  bug hunting and opam ecosystem fixing fun (see below for the
  installation instructions). You can see the progress on this front at
  <https://github.com/ocaml/opam-repository/issues/20501> .

  If you find any bugs, please report them here:

  <https://github.com/ocaml/ocaml/issues>

  Most major OCaml developer tools are already supported with this alpha
  (from odoc to merlin), thus I expect us to switch to beta releases in
  the beginning of February. The full release is expected to happen in
  late February.

  This early release will give us time to focus on the release of OCaml
  5.0.

  If you are interested by the list of new features and the ongoing list
  of bug fixes, the updated change log for OCaml 4.14.0 is available at:

  <https://github.com/ocaml/ocaml/blob/4.14/Changes>

  Happy hacking, Florian Angeletti for the OCaml team.


Installation instructions
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  The base compiler can be installed as an opam switch with the
  following commands
  ┌────
  │ opam update
  │ opam switch create 4.14.0~alpha1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
  └────
  With opam 2.1, the previous command line can be simplified to
  ┌────
  │ opam update
  │ opam switch create 4.14.0~alpha1
  └────
  If you want to tweak the configuration of the compiler, you can switch
  to the option variant with:
  ┌────
  │ opam update
  │ opam switch create <switch_name> --packages=ocaml-variants.4.14.0~alpha1+options,<option_list>
  │ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
  └────
  or with opam 2.1:
  ┌────
  │ opam update
  │ opam switch create <switch_name> ocaml-variants.4.14.0~alpha1+options <option_list>
  └────

  where `<option_list>' is a comma separated list of ocaml-option-*
  packages. For instance, for a flambda and no-flat-float-array switch:
  ┌────
  │ opam switch create 4.14.0~alpha1+flambda+nffa ocaml-variants.4.14.0~alpha1+options ocaml-option-flambda
  │ ocaml-option-no-flat-float-array
  └────
  All available options can be listed with `opam search ocaml-option'.

  If you want to test this version, it is advised to install the alpha
  opam repository

  <https://github.com/kit-ty-kate/opam-alpha-repository>

  with
  ┌────
  │ opam repo add alpha git://github.com/kit-ty-kate/opam-alpha-repository.git
  └────
  This alpha repository contains various fixes in the process of being
  upstreamed.

  The source code for the alpha is also available at these addresses:

  • <https://github.com/ocaml/ocaml/archive/4.14.0-alpha1.tar.gz>
  • <https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.0~alpha1.tar.gz>


A brief survey for Learn-OCaml Community
════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/a-brief-survey-for-learn-ocaml-community/9193/1>


Erik Martin-Dorel announced
───────────────────────────

  [This post is just a follow-up of an earlier message on [caml-list],
  intended to reach more learn-ocaml instructors, so you can ignore this
  one if you already replied!]

  The OCaml Software Foundation is developing the teaching platform
  Learn-OCaml that provides auto-graded exercises for OCaml, and was
  initially authored by OCamlPro for the OCaml MOOC:
  <https://ocaml-sf.org/learn-ocaml>.

  The platform is free software and easy to deploy; this is great, but
  as a result we keep learning of users/deployments that we had no idea
  of. We would be interested in having a better view of our user-base.

  If you use Learn-OCaml as a teacher, could you fill *[this Evento
  survey]* to let us know?  (the survey will be closed on 2022-02-07)

  → It contains these questions:
  • Where are you using Learn-OCaml? (in which university (a specific
    course?), which company, online community or…?)
  • Would you like to see your university/company added in
    [github.com/ocaml-sf/learn-ocaml-places]?
  • How many students/learners use your deployment in a year?

  And just to recall, a few links:

  • For an example of Learn-OCaml instance, see
    <https://discuss.ocaml.org/t/interesting-ocaml-exercises-from-francois-pottier-available-online/7050>
  • Last October we had a 0.13.0 release with several new features:
    <https://discuss.ocaml.org/t/ann-release-of-ocaml-sf-learn-ocaml-0-13-0/8577>
  • For any question related to Learn-OCaml, feel free to create a
    discussion topic on <https://discuss.ocaml.org>, category
    *`Community'*, tag *`learn-ocaml'* (/similarly to this discussion
    topic!/ :slight_smile:)
  • And if need be, opening an issue in
    <https://github.com/ocaml-sf/learn-ocaml/issues> if of course warmly
    welcome as well.


[caml-list]
<https://sympa.inria.fr/sympa/arc/caml-list/2021-12/msg00007.html>

[this Evento survey]
<https://evento.renater.fr/survey/learn-ocaml-community-survey-vsn3yc7j>

[github.com/ocaml-sf/learn-ocaml-places]
<https://github.com/ocaml-sf/learn-ocaml-places#readme>


Blog post: Js_of_ocaml, a bundle size study
═══════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/blog-post-js-of-ocaml-a-bundle-size-study/9211/1>


Javier Chávarri announced
─────────────────────────

  Hi all, I hope your Monday is going great. :slight_smile:

  I wanted to analyze bundle size performance in Js_of_ocaml, so I
  rewrote an existing ReScript web app to compare both outputs.

  Here is the blog post with all the data, conclusions, and takeaways:

  <https://www.javierchavarri.com/js_of_ocaml-bundle-size-study/>

  It has been a very interesting experiment, that helped me learn more
  about Js_of_ocaml and the way it generates JavaScript code, and also
  improve some small things along the way in the libraries I was using
  for the project.

  The conclusions, while maybe already known by others, are also quite
  exciting to me, as the experiment confirms my suspicion that
  Js_of_ocaml bundle size scales just fine as applications get more
  complex, so it is suitable for a quite significant number of real
  world scenarios.

  I hope you find it interesting and exciting as well. Please share any
  feedback you might have! Or any questions if anything is unclear.


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

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


Yotam Barnoy said
─────────────────

  <https://blog.darklang.com/first-thoughts-on-rust-vs-ocaml/#tooling-musing>


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@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/>


[-- Attachment #2: Type: text/html, Size: 27784 bytes --]

             reply	other threads:[~2022-01-25 12:45 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-25 12:44 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-07-26 17:54 Alan Schmitt
2022-07-19  8:58 Alan Schmitt
2022-07-12  7:59 Alan Schmitt
2022-07-05  7:42 Alan Schmitt
2022-06-28  7:37 Alan Schmitt
2022-06-21  8:06 Alan Schmitt
2022-06-14  9:29 Alan Schmitt
2022-06-07 10:15 Alan Schmitt
2022-05-31 12:29 Alan Schmitt
2022-05-24  8:04 Alan Schmitt
2022-05-17  7:12 Alan Schmitt
2022-05-10 12:30 Alan Schmitt
2022-05-03  9:11 Alan Schmitt
2022-04-26  6:44 Alan Schmitt
2022-04-19  5:34 Alan Schmitt
2022-04-12  8:10 Alan Schmitt
2022-04-05 11:50 Alan Schmitt
2022-03-29  7:42 Alan Schmitt
2022-03-22 13:01 Alan Schmitt
2022-03-15  9:59 Alan Schmitt
2022-03-01 13:54 Alan Schmitt
2022-02-22 12:43 Alan Schmitt
2022-02-08 13:16 Alan Schmitt
2022-02-01 13:00 Alan Schmitt
2022-01-11  8:20 Alan Schmitt
2022-01-04  7:56 Alan Schmitt
2021-12-28  8:59 Alan Schmitt
2021-12-21  9:11 Alan Schmitt
2021-12-14 11:02 Alan Schmitt
2021-11-30 10:51 Alan Schmitt
2021-11-16  8:41 Alan Schmitt
2021-11-09 10:08 Alan Schmitt
2021-11-02  8:50 Alan Schmitt
2021-10-19  8:23 Alan Schmitt
2021-09-28  6:37 Alan Schmitt
2021-09-21  9:09 Alan Schmitt
2021-09-07 13:23 Alan Schmitt
2021-08-24 13:44 Alan Schmitt
2021-08-17  6:24 Alan Schmitt
2021-08-10 16:47 Alan Schmitt
2021-07-27  8:54 Alan Schmitt
2021-07-20 12:58 Alan Schmitt
2021-07-06 12:33 Alan Schmitt
2021-06-29 12:24 Alan Schmitt
2021-06-22  9:04 Alan Schmitt
2021-06-01  9:23 Alan Schmitt
2021-05-25  7:30 Alan Schmitt
2021-05-11 14:47 Alan Schmitt
2021-05-04  8:57 Alan Schmitt
2021-04-27 14:26 Alan Schmitt
2021-04-20  9:07 Alan Schmitt
2021-04-06  9:42 Alan Schmitt
2021-03-30 14:55 Alan Schmitt
2021-03-23  9:05 Alan Schmitt
2021-03-16 10:31 Alan Schmitt
2021-03-09 10:58 Alan Schmitt
2021-02-23  9:51 Alan Schmitt
2021-02-16 13:53 Alan Schmitt
2021-02-02 13:56 Alan Schmitt
2021-01-26 13:25 Alan Schmitt
2021-01-19 14:28 Alan Schmitt
2021-01-12  9:47 Alan Schmitt
2021-01-05 11:22 Alan Schmitt
2020-12-29  9:59 Alan Schmitt
2020-12-22  8:48 Alan Schmitt
2020-12-15  9:51 Alan Schmitt
2020-12-01  8:54 Alan Schmitt
2020-11-03 15:15 Alan Schmitt
2020-10-27  8:43 Alan Schmitt
2020-10-20  8:15 Alan Schmitt
2020-10-06  7:22 Alan Schmitt
2020-09-29  7:02 Alan Schmitt
2020-09-22  7:27 Alan Schmitt
2020-09-08 13:11 Alan Schmitt
2020-09-01  7:55 Alan Schmitt
2020-08-18  7:25 Alan Schmitt
2020-07-28 16:57 Alan Schmitt
2020-07-21 14:42 Alan Schmitt
2020-07-14  9:54 Alan Schmitt
2020-07-07 10:04 Alan Schmitt
2020-06-30  7:00 Alan Schmitt
2020-06-16  8:36 Alan Schmitt
2020-06-09  8:28 Alan Schmitt
2020-05-19  9:52 Alan Schmitt
2020-05-12  7:45 Alan Schmitt
2020-05-05  7:45 Alan Schmitt
2020-04-28 12:44 Alan Schmitt
2020-04-21  8:58 Alan Schmitt
2020-04-14  7:28 Alan Schmitt
2020-04-07  7:51 Alan Schmitt
2020-03-31  9:54 Alan Schmitt
2020-03-24  9:31 Alan Schmitt
2020-03-17 11:04 Alan Schmitt
2020-03-10 14:28 Alan Schmitt
2020-03-03  8:00 Alan Schmitt
2020-02-25  8:51 Alan Schmitt
2020-02-18  8:18 Alan Schmitt
2020-02-04  8:47 Alan Schmitt
2020-01-28 10:53 Alan Schmitt
2020-01-21 14:08 Alan Schmitt
2020-01-14 14:16 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2019-12-31  9:18 Alan Schmitt
2019-12-17  8:52 Alan Schmitt
2019-12-10  8:21 Alan Schmitt
2019-12-03 15:42 Alan Schmitt
2019-11-26  8:33 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-05  6:55 Alan Schmitt
2019-10-15  7:28 Alan Schmitt
2019-09-03  7:35 Alan Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a6fk56ij.fsf@m4x.org \
    --to=alan.schmitt@polytechnique.org \
    --cc=caml-list@inria.fr \
    --cc=cwn@lists.idyll.org \
    --cc=lwn@lwn.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).