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
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 31 Dec 2019 10:18:38 +0100
Message-ID: <87y2usx381.fsf@polytechnique.org> (raw)

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

Hello

Here is the latest OCaml Weekly News, for the week of December 17 to 31,
2019.

Sorry for the hiatus last week, I was away with no internet
access. Happy new year!

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

Internships at Be Sport (OCaml, Ocsigen)
ocaml-lsp preview
Reproducible builds with OCaml / opam and MirageOS
the OCaml Software Foundation
soupault: a static website generator based on HTML rewriting
Release of owl-symbolic 0.1.0
Old CWN


Internships at Be Sport (OCaml, Ocsigen)
════════════════════════════════════════

  Archive:
  <https://sympa.inria.fr/sympa/arc/caml-list/2019-12/msg00023.html>


Be Sport announced
──────────────────

  Be Sport currently has several open internship positions for OCaml
  developers.

  Keywords: OCaml, Ocsigen, Mobile app development, Web, Database,
  Sport, Social networks

  Be Sport develops the first global platform dedicated to sport, in
  collaboration with prominent actors of sport in France and in the
  world.  All our development is done in OCaml. Our Web and mobile apps
  (iOS, Android) are developed as a multi-tier app using the Ocsigen
  framework.  Our premises are located in the center of Paris.

  Please contact me for more information.


ocaml-lsp preview
═════════════════

  Archive: <https://discuss.ocaml.org/t/ann-ocaml-lsp-preview/4876/1>


Rudi Grinberg announced
───────────────────────

  I'm excited to announce [ocaml-lsp]. This project contains an
  implementation of an LSP server for the OCaml language. The current
  implementation piggy backs on the widely successful [merlin] tool to
  provide completion & type inference. In the future, we'd like to use
  all other essential tools such as ocamlformat, odoc, dune to provide
  more functionality in your editors.

  For now, the project isn't yet available on opam as we're still
  polishing some rough edges in the release process. Nevertheless, I
  invite all brave souls who are ready to experiment to give this lsp
  server a try. Your feedback & contributions are most welcome
  :slight_smile:


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

[merlin] <https://github.com/ocaml/merlin>


UnixJunkie asked and Anton Kochkov replied
──────────────────────────────────────────

        This project looks nice.

        If I am an Emacs or Vi user, can I take advantage of an
        LSP server?

        Or, is this only for some new editors like Atom or VScode?

  @UnixJunkie of course! That's the whole point of this tooling.

  For Vim you can choose between:
  • [Coc.nvim] - most powerful of all, but written in TypeScript and
    heaviest of all
  • [Ale] - pure VimL
  • [vim-lsp] - pure VimL
  • [LanguageClient-neovim] - written in Rust
  • Some other implementations

  I am not an Emacs expert, but there is amazing LSP integration too:
  • [lsp-mode]

  <https://aws1.discourse-cdn.com/standard11/uploads/ocaml/original/2X/b/b8acd745527e801fef1eb3d4e8722d49c5c2ed1a.png>


[Coc.nvim] <https://github.com/neoclide/coc.nvim>

[Ale] <https://github.com/dense-analysis/ale>

[vim-lsp] <https://github.com/prabirshrestha/vim-lsp>

[LanguageClient-neovim]
<https://github.com/autozimu/LanguageClient-neovim>

[lsp-mode] <https://github.com/emacs-lsp/lsp-mode>


Pau Ruiz Safont said
────────────────────

  Neovim 0.5.0 (now pre-released) has native LSP support as well:
  <https://github.com/neovim/neovim/pull/11336>

  Not sure how well integrated is it going to be with various plugins
  ([example])


[example] <https://github.com/Shougo/deoplete-lsp>


Anton Kochkov added
───────────────────

  NeoVim 0.5.0 will also include the [tree-sitter] parser for syntax
  highlighting, which will allow way better coloring. And tree-sitter
  already has [OCaml grammar], so implementing semantics-aware syntax
  highlighter will be easier. But I expect the support more or less
  ready for external contributions only in 0.6.0, sadly. Integrating the
  tool with something like [GitHub Semantic] (*Haskell alert*) will
  greatly improve OCaml experience on GitHub too, see the [corresponding
  issue].


[tree-sitter] <https://tree-sitter.github.io/tree-sitter/>

[OCaml grammar] <https://github.com/tree-sitter/tree-sitter-ocaml>

[GitHub Semantic] <https://github.com/github/semantic>

[corresponding issue] <https://github.com/github/semantic/issues/138>


Pieter Goetschalckx said
────────────────────────

  The next step for Semantic support is documented [here], but I'm
  working on some [improvements] of the tree-sitter parser first.


[here]
<https://github.com/tree-sitter/haskell-tree-sitter/blob/master/docs/codegen.md>

[improvements]
<https://github.com/tree-sitter/tree-sitter-ocaml/pull/36>


Carlos D'Agostino said
──────────────────────

  For Emacs there is also `eglot': <https://github.com/joaotavora/eglot>
  – As the README says, it's quite minimalist compared to `lsp-mode'.


Reproducible builds with OCaml / opam and MirageOS
══════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/reproducible-builds-with-ocaml-opam-and-mirageos/4877/1>


Hannes Mehnert announced
────────────────────────

  I wrote up recent developments about reproducible builds with opam –
  including some tooling <https://hannes.nqsb.io/Posts/ReproducibleOPAM>

  Thanks to everyone involved in the effort to get OCaml and opam
  deterministic
  • Nov 2015 [I collected downstream patches and asked kindly to get
    them upstream] (temporary flle names in binaries, timestamps)
  • Dec 2017 [BUILD_PATH_PREFIX_MAP support] (and further patches for
    that)
  • Dec 2018 Paris summit [opam reproducibility] [MirageOS]
  • [`orb'] tool for reproducibility testing (so much better than the
    shell scripts I used in the meantime)
  • Dec 2019 [Marrakesh summit]

  The journey is not yet finished, we're in a pretty good shape, but
  further testing and tooling is needed to expose the information "is my
  library reproducible?" to OCaml developers.

  I'm interested in feedback, please let us discuss this further here in
  case you're interested. :D


[I collected downstream patches and asked kindly to get them upstream]
<https://github.com/ocaml/ocaml/issues/7037>

[BUILD_PATH_PREFIX_MAP support]
<https://github.com/ocaml/ocaml/pull/1515>

[opam reproducibility]
<https://reproducible-builds.org/events/paris2018/report/#Toc11410_331763073>

[MirageOS]
<https://reproducible-builds.org/events/paris2018/report/#Toc11681_331763073>

[`orb'] <https://github.com/rjbou/orb>

[Marrakesh summit]
<https://reproducible-builds.org/events/Marrakesh2019/>


Anil Madhavapeddy added
───────────────────────

  An absolutely amazing cross-layer effort; well done on pushing all
  this through @hannes!  I really enjoyed reading the minutes of the
  Paris summit last year:
  <https://reproducible-builds.org/events/paris2018/report/#Toc11681_331763073>


the OCaml Software Foundation
═════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-the-ocaml-software-foundation/4476/13>


Continuing this thread, gasche announced
────────────────────────────────────────

  A small report on the actions that we launched since my initial
  posting.

  (There was also some progress on the "enabling individual donations"
  front, maybe something will be possible in the next few months. Don't
  start holding your breath yet.)

  • We are funding the "Leafs" research project in Lisbon to develop
    teaching material for theoretical-computer-science courses (automata
    and stuff) in OCaml, with interactive visualization components, some
    of which will hopefully be integrated in the [Learn-OCaml] platform
    over the course of 2020/2021.
  • We provide funding for the [Gallium/Cambium] research team at INRIA
    Paris (France), an active place for OCaml-related fundamental
    research (some of the team members are also very active on the
    implementation front, for example Xavier Leroy, Damien Doligez,
    Florian @octachron Angeletti, and Sébastien Hinderer).
  • We sponsor the [SWERC] programming contest for 2019-2020, and in
    return the contest added OCaml to the list of available
    languages. Most participants to these competitive-programming events
    use C++, but we talked to past and active participants who said they
    would be interested in using OCaml on some problems with more
    symbolic computation.
  • Over the course of the 4.10 release process, we are funding work by
    @kit-ty-kate to have a wide look at the ecosystem and improve
    compatibility with the upcoming release. (I believe that the
    upstream PR [#9176] is a first result of this effort.)
  • In reaction to the Discourse thread [Suggestions for OCaml
    documentation], we are planning to fund further work by @sanette to
    experiment with the HTML rendering of the OCaml manual, in
    coordination with @octachron to try to upstream improvements when
    reasonably possible.
  • We got in touch with the [Owl] project to sponsor a development
    sprint in 2020.


[Learn-OCaml] <http://ocaml-sf.org/learn-ocaml.html>

[Gallium/Cambium] <http://cambium.inria.fr/>

[SWERC] <https://swerc.eu/2019/about/>

[#9176] <https://github.com/ocaml/ocaml/pull/9176>

[Suggestions for OCaml documentation]
<https://discuss.ocaml.org/t/suggestions-for-ocaml-documentation/4504>

[Owl]
<https://discuss.ocaml.org/t/suggestions-for-ocaml-documentation/4504>


soupault: a static website generator based on HTML rewriting
════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-soupault-a-static-website-generator-based-on-html-rewriting/4126/10>


Daniil Baturin announced
────────────────────────

  Made a [1.7.0 release].

  First improvement is that you now can pipe the content of any element
  through any external program with `preprocess_element' widget (PR by
  Martin Karlsson).  For example, insert inline SVG versions of all
  graphviz graphs from `<pre class="language-graphviz">' and also
  highlight the Dot source itself with [highlight] (or any other tool of
  your choice):

  ┌────
  │ [widgets.graphviz-svg]
  │   widget = 'preprocess_element'
  │   selector = 'pre.language-graphviz'
  │   command = 'dot -Tsvg'
  │   action = 'insert_after'
  │ 
  │ [widgets.highlight]
  │   after = "graphviz-svg"
  │   widget = "preprocess_element"
  │   selector = '*[class^="language-"]'
  │   command = 'highlight -O html -f --syntax=$(echo $ATTR_CLASS | sed -e "s/language-//")'
  │   action = "replace_content" # default
  └────

  <https://aws1.discourse-cdn.com/standard11/uploads/ocaml/original/2X/a/a4d8cc05d65634de0faf3c05b16e0de8d27a78a3.png>

  Two other improvements are multiple index "views" and default value
  option for custom index fields, like
  ┌────
  │ [index.custom_fields]
  │   category = { selector = "span#category", default = "Misc" }
  └────


[1.7.0 release]
<https://soupault.neocities.org/blog/soupault-1.7.0-release>

[highlight] <http://andre-simon.de>


Release of owl-symbolic 0.1.0
═════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/announce-release-of-owl-symbolic-0-1-0/4930/1>


jrzhao42 announced
──────────────────

  We are please to release [owl-symbolic 0.1.0]. It fully supports
  defining a computation graph and running on accelerators (TPU/GPU) via
  [ONNX] specification. It also aims to support converting an Owl
  computation graph into symbolic representation and then to ONNX
  model. The module also has some cool features like converting a
  computation graph into LaTeX string, and then showing the result in a
  web UI, etc.

  We implements a full neural network module atop of it (the interface
  of which is basically identical to that in Owl's core). It turns out
  that the design of `owl-symbolic' is so nice that the DNN module only
  has 179 LOC! You can easily define popular DNN architectures such as
  Inception, ResNet, VGG, etc. just like in Owl.

  This is still an on-going project and a lot remains to be
  done. Despite its name, `owl-symbolic' does not do any useful computer
  algebra (CAS) stuff at the moment, but CAS is indeed on our TODO.

  For more information, please check out the related section in [Owl
  tutorial book].


[owl-symbolic 0.1.0] <https://opam.ocaml.org/packages/owl-symbolic/>

[ONNX] <https://onnx.ai/>

[Owl tutorial book] <https://ocaml.xyz/owl_tutorials/symbolic.html>


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: 26832 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 [this message]
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
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=87y2usx381.fsf@polytechnique.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

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