caml-list - the Caml user's mailing list
 help / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: "lwn" <lwn@lwn.net>, "cwn"  <cwn@lists.idyll.org>, caml-list@inria.fr, comp@lists.orbitalfox.eu
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 21 Jul 2020 16:42:16 +0200
Message-ID: <871rl5aq0n.fsf@m4x.org> (raw)

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

Hello

Here is the latest OCaml Weekly News, for the week of July 14 to 21,
2020.

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

Dune-release: version 1.4.0 released
Using AF_XDP sockets for high-performance packet processing in OCaml
Ubase 0.03
clangml 4.2.0: OCaml bindings for Clang API (for C and C++ parsing)
Old CWN


Dune-release: version 1.4.0 released
════════════════════════════════════

  Archive:
  [https://discuss.ocaml.org/t/dune-release-version-1-4-0-released/6103/1]


Sonja Heinze announced
──────────────────────

  This post is about [dune-release], a tool that helps users release
  their packages to Opam in a fast and organized manner. You can install
  it via `opam install dune-release'.

  On behalf of the dune-release team at Tarides, I'm happy to announce
  the new dune-release [1.4.0 release]. The release includes two new
  subcommands described below and a variety of bug fixes and user
  experience improvements. In particular, we've put some work into
  improving the error handling and reporting.

  One of the new subcommands is `dune-release config' , which inspects
  and edits dune-release's global configuration, such as git related,
  opam related and github related data. For example, if you insert a
  typo when being asked for your github id during your first release
  with dune-release, you can correct it comfortably with that new
  subcommand.

  The other new subcommand is `dune-release delegate-info', which helps
  users with an alternative release workflow to integrate dune-release
  into it: imagine you want to use dune-release only for a couple of
  things, such as tagging the distribution and creating the distribution
  tarball and the documentation.  In that case, now you can integrate
  the work done by dune-release into your individual release workflow by
  accessing the path to the created tarball etc via `dune-release
  delegate-info'. It forms part of the broader change in progress
  described in the following post:
  [https://discuss.ocaml.org/t/replacing-dune-release-delegates/4767]


[dune-release] https://github.com/ocamllabs/dune-release/#readme

[1.4.0 release]
https://github.com/ocamllabs/dune-release/releases/tag/1.4.0


Using AF_XDP sockets for high-performance packet processing in OCaml
════════════════════════════════════════════════════════════════════

  Archive:
  [https://discuss.ocaml.org/t/using-af-xdp-sockets-for-high-performance-packet-processing-in-ocaml/6106/1]


suttonshire announced
─────────────────────

  I just wanted to share a fun result from a project I've been hacking
  on.  [ocaml-xsk] is a binding to AF_XDP interface of libbpf.

  AF_XDP is an address family in Linux for high-performance packet
  processing. With an AF_XDP socket a packet bypasses most of the kernel
  networking stack and is passed directly to userspace program.
  Depending on the configuration packets can be passed from the NIC
  without any data copies on either Rx or Tx. If you're interested in
  this kind of stuff here are a couple very useful resources:

  • [https://github.com/torvalds/linux/blob/master/Documentation/networking/af_xdp.rst]
  • [https://github.com/xdp-project/xdp-tutorial/tree/master/advanced03-AF_XDP]

  The cool part is that without installing large dependencies like DPDK
  you can get packets into your program basically as fast as your NIC
  can provide them! It turns out this is true even if your program is
  written in OCaml. Using ocaml-xsk I could receive or transmit 64 byte
  UDP packets at 14.8M packets per second. This is the limit for a
  10Gb/s NIC.

  I'm still trying to figure out the best interface for AF_XDP. There
  are several resources to manage, and simple receive and transmit
  operations actually require a few steps. But it's encouraging know
  OCaml doesn't get in the way of packet throughput.


[ocaml-xsk] https://github.com/suttonshire/ocaml-xsk


Ubase 0.03
══════════

  Archive: [https://discuss.ocaml.org/t/ann-ubase-0-03/6115/1]


sanette announced
─────────────────

  I'm happy to announce the release of [ubase], a tiny library whose
  only purpose is to remove diacritics (accents, etc.) from utf8-encoded
  strings using the latin alphabet.

  It was created after the discussion:
  [https://discuss.ocaml.org/t/simplify-roman-utf8/4398].

  It's now available from `opam':

  `opam install ubase'

  This also installs an executable that you may use in a shell, for
  instance:

  ┌────
  │ $ ubase "et grønt træ"
  │ et gront trae
  │ 
  │ $ ubase Anh xin lỗi các em bé vì đã đề tặng cuốn sách này cho một ông người lớn.
  │ Anh xin loi cac em be vi da de tang cuon sach nay cho mot ong nguoi lon.
  └────

  More info [here].


[ubase] https://github.com/sanette/ubase

[here] https://sanette.github.io/ubase/


clangml 4.2.0: OCaml bindings for Clang API (for C and C++ parsing)
═══════════════════════════════════════════════════════════════════

  Archive:
  [https://discuss.ocaml.org/t/ann-clangml-4-2-0-ocaml-bindings-for-clang-api-for-c-and-c-parsing/6123/1]


Thierry Martinez announced
──────────────────────────

  We are happy to announce the new clangml 4.2.0 release.  Clangml
  provides bindings for all versions of Clang, from 3.4 to the not yet
  released 10.0.1.

  The library can be installed via opam: `opam install clangml' The
  documentation is online:
  [https://memcad.gitlabpages.inria.fr/clangml/]

  This new release improves C++ support, including C++20 specific
  constructs.

  All Clang C/C++ attributes should now be supported.  You may have a
  look to the interface of the new auto-generated module [`Attributes'].

  There is now a lazy version of the AST (`Clang.Lazy.Ast'): this is
  useful to explore large ASTs efficiently (note that Clang parsing
  itself can still be slow; the lazy part only concerns the conversion
  into the `Clang.Lazy.Ast' datatypes).


[`Attributes']
https://memcad.gitlabpages.inria.fr/clangml/doc/clangml/Clang__/Attributes/


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] http://alan.petitepomme.net/cwn/

[RSS feed of the archives] http://alan.petitepomme.net/cwn/cwn.rss

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

[Alan Schmitt] http://alan.petitepomme.net/


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

         reply index

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-03  7:35 Alan Schmitt
2019-10-15  7:28 Alan Schmitt
2019-11-05  6:55 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-26  8:33 Alan Schmitt
2019-12-03 15:43 Alan Schmitt
2019-12-10  8:21 Alan Schmitt
2019-12-17  8:52 Alan Schmitt
2019-12-31  9:18 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2020-01-14 14:17 Alan Schmitt
2020-01-21 14:09 Alan Schmitt
2020-01-28 10:54 Alan Schmitt
2020-02-04  8:47 Alan Schmitt
2020-02-18  8:18 Alan Schmitt
2020-02-25  8:51 Alan Schmitt
2020-03-03  8:00 Alan Schmitt
2020-03-10 14:29 Alan Schmitt
2020-03-17 11:04 Alan Schmitt
2020-03-24  9:31 Alan Schmitt
2020-03-31  9:55 Alan Schmitt
2020-04-07  7:51 Alan Schmitt
2020-04-14  7:28 Alan Schmitt
2020-04-21  8:58 Alan Schmitt
2020-04-28 12:45 Alan Schmitt
2020-05-05  7:45 Alan Schmitt
2020-05-12  7:46 Alan Schmitt
2020-05-19  9:53 Alan Schmitt
2020-06-09  8:29 Alan Schmitt
2020-06-16  8:36 Alan Schmitt
2020-06-30  7:00 Alan Schmitt
2020-07-07 10:05 Alan Schmitt
2020-07-14  9:55 Alan Schmitt
2020-07-21 14:43 Alan Schmitt [this message]
2020-07-28 16:58 Alan Schmitt

Reply instructions:

You may reply publically 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=871rl5aq0n.fsf@m4x.org \
    --to=alan.schmitt@polytechnique.org \
    --cc=caml-list@inria.fr \
    --cc=comp@lists.orbitalfox.eu \
    --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

caml-list - the Caml user's mailing list

Archives are clonable: git clone --mirror https://inbox.ocaml.org/caml-list

AGPL code for this site: git clone https://public-inbox.org/ public-inbox