From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTP id AFBF85D4 for ; Tue, 25 Feb 2020 08:51:49 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.70,483,1574118000"; d="scan'208,217";a="437524428" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 25 Feb 2020 09:51:47 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id CE22F7F438; Tue, 25 Feb 2020 09:51:47 +0100 (CET) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 5FFFD7EC77 for ; Tue, 25 Feb 2020 09:51:43 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.70,483,1574118000"; d="scan'208,217";a="437524387" Received: from set.irisa.fr (HELO set) ([131.254.10.170]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384; 25 Feb 2020 09:51:43 +0100 From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr, comp@lists.orbitalfox.eu Date: Tue, 25 Feb 2020 09:51:35 +0100 Message-ID: <877e0b6odk.fsf@polytechnique.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News Reply-To: Alan Schmitt X-Loop: caml-list@inria.fr X-Sequence: 18013 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Here is the latest OCaml Weekly News, for the week of February 18 to 25, 2020. Table of Contents =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 Dune 2.3.0 What's the OCaml equivalent for HLint? Training Sessions for "Expert OCaml" in Paris OCaml 4.10 released Old CWN Dune 2.3.0 =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90 Archive: Rudi Grinberg announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 On behalf of the dune team, I'm proud to announce the 2.3.0 release of dune. This release is particularly relevant for users of coq that use dune to build their theories, developers of coq that use dune to build their favorite theorem prover. I'd like to thank @ejgallego for all the hard work to improve dune in this regard. I'd also like to point out the `(strict_package_deps)' option that is now available in project files. This option will now ask dune to validate the package dependencies specified in the `package' stanzas in your dune-project files. Here's the full change list, and as always, happy hacking! 2.3.0 (15/02/2020) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C =E2=80=A2 Improve validation and error handling of arguments to `dune ini= t' (#3103, fixes #3046, @shonfeder) =E2=80=A2 `dune init exec NAME' now uses the `NAME' argument for private modules (#3103, fixes #3088, @shonfeder) =E2=80=A2 Avoid linear walk to detect children, this should greatly impro= ve performance when a target has a large number of dependencies (#2959, @ejgallego, @aalekseyev, @Armael) =E2=80=A2 [coq] Add `(boot)' option to `(coq.theories)' to enable bootstr= ap of Coq's stdlib (#3096, @ejgallego) =E2=80=A2 [coq] Deprecate `public_name' field in favour of `package' (#20= 87, @ejgallego) =E2=80=A2 Better error reporting for "data only" and "vendored" dirs. Usi= ng these with anything else than a strict subdirectory or `*' will raise an error. The previous behavior was to just do nothing (#3056, fixes #3019, @voodoos) =E2=80=A2 Fix bootstrap on bytecode only switches on windows or where `-j= 1' is set. (#3112, @xclerc, @rgrinberg) =E2=80=A2 Allow `enabled_if' fields in `executable(s)' stanzas (#3137, fi= xes #1690 @voodoos) =E2=80=A2 Do not fail if `ocamldep', `ocamlmklib', or `ocaml' are absent.= Wait for them to be used to fail (#3138, @rgrinberg) =E2=80=A2 Introduce a `strict_package_deps' mode that verifies that dependencies between packages in the workspace are specified correctly. (@rgrinberg, #3117) =E2=80=A2 Make sure the `@all' alias is defined when no `dune' file is pr= esent in a directory (#2946, fix #2927, @diml) What's the OCaml equivalent for HLint? =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 Archive: Continuing this thread, St=C3=A9phane Lavergne said =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Aside from Mascot and `ppx_js_style', it seems that [ocp-lint] is actively maintained by the folks at OcamlPro. I personally only use `ocamlformat' so I can't vouch for it, but it seems promising. [ocp-lint] Training Sessions for "Expert OCaml" in Paris =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90 Archive: Laur=C3=A8ne Gibaud announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 OCamlPro organizes a cross-company training in French for developers who already use OCaml. The "Expert OCaml" training mixes theory and practice and will allow you to master OCaml's advanced features such as its type-system, OCaml's open source tools and libraries, and how to write compact and efficient code. When? The next session is scheduled for March 3-4, 2020, the second will be on April 7-8, 2020. Where? Paris 14, at our office If interested, contact us at contact@ocamlpro.com or register on: . We can also organize custom and on-site sessions upon request. More info on: OCaml 4.10 released =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90 Archive: octachron announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80 We have the pleasure of celebrating the birthday of Francis Ronalds by announcing the release of OCaml version 4.10.0. Some of the highlights in this release are: =E2=80=A2 A new best-fit allocator for the major heap which reduces both = GC cost an memory usage. =E2=80=A2 Some preliminary runtime work for OCaml multicore =E2=80=A2 Immutable strings are now enforced at configuration time =E2=80=A2 User-defined indexing operators for multidimensional arrays =E2=80=A2 Coming soon: statmemprof, a new statistical memory profiler. T= he external API will be release next version. =E2=80=A2 Various improvements to the manual =E2=80=A2 More precise exhaustiveness check for GADTs =E2=80=A2 Many bug fixes Merlin, the OCaml editor service, is not yet available for this release. We will publish a follow-up announcement when Merlin is ready. This release is (or soon will be) available as a set of OPAM switches, and as a source download here: Editor note: please follow the archive link for the full changelog Old CWN =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 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] [the archive] [RSS feed of the archives] [online] [Alan Schmitt] --=-=-= Content-Type: text/html; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable OCaml Weekly News

OCaml Weekly News

Previous Week Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of February 18 to 25, 20= 20.

Dune 2.3.0

Rudi Grinberg announced

On behalf of the dune team, I'm proud to announce the 2.3.0 release of dune= . This release is particularly relevant for users of coq that use dune to b= uild their theories, developers of coq that use dune to build their favorit= e theorem prover. I'd like to thank @ejgallego for all the hard work to improve dune = in this regard.

I'd also like to point out the (strict_package_deps) option th= at is now available in project files. This option will now ask dune to vali= date the package dependencies specified in the package stanzas= in your dune-project files.

Here's the full change list, and as always, happy hacking!

2.3.0 (15/02/2020)

  • Improve validation and error handling of arguments to dune init (#3103, fixes #3046, @shonfeder)
  • dune init exec NAME now uses the NAME argumen= t for private modules (#3103, fixes #3088, @shonfeder)
  • Avoid linear walk to detect children, this should greatly improve performance when a target has a large number of dependencies (#2959, @ejgallego, @aalekseyev, @Armael)
  • [coq] Add (boot) option to (coq.theories) to = enable bootstrap of Coq's stdlib (#3096, @ejgallego)
  • [coq] Deprecate public_name field in favour of packa= ge (#2087, @ejgallego)
  • Better error reporting for "data only" and "vendored" dirs. Using these= with anything else than a strict subdirectory or * will raise an er= ror. The previous behavior was to just do nothing (#3056, fixes #3019, @voodoos)
  • Fix bootstrap on bytecode only switches on windows or where -j1 is set. (#3112, @xclerc, @rgrinberg)
  • Allow enabled_if fields in executable(s) stan= zas (#3137, fixes #1690 @voodoos)
  • Do not fail if ocamldep, ocamlmklib, or ocaml are absent. Wait for them to be used to fail (#3138, @rgrinberg)
  • Introduce a strict_package_deps mode that verifies that de= pendencies between packages in the workspace are specified correctly. (@rgrinberg, #3117)
  • Make sure the @all alias is defined when no dune file is present in a directory (#2946, fix #2927, @diml)

What's the OCaml equivalent for HLint?

Continuing this thread, St=C3=A9phane Lavergne said

Aside from Mascot and ppx_js_style, it seems that ocp-lint is actively maintaine= d by the folks at OcamlPro. I personally only use ocamlformat = so I can't vouch for it, but it seems promising.

Training Sessions for "Expert OCaml" in Paris

Laur=C3=A8ne Gibaud announced

OCamlPro organizes a cross-company training in French for developers who already use OCaml. The "Expert OCaml" training mixes theory and practice and will allow you to master OCaml's advanced features such as its type-system, OCaml's open source tools and libraries, and how to write compact and efficient code.

When? The next session is scheduled for March 3-4, 2020, the second will be on April 7-8, 2020.

Where? Paris 14, at our office

If interested, contact us at contact@ocamlpro.com or register on: = http://www.ocamlpro.com/forms/preinscriptions-formation-ocaml/. We can also organize custom and on-site sessions upon request.

More info on: http:/= /www.ocamlpro.com/training-ocamlpro/

OCaml 4.10 released

octachron announced

We have the pleasure of celebrating the birthday of Francis Ronalds by announcing the release of OCaml version 4.10.0.

Some of the highlights in this release are:

  • A new best-fit allocator for the major heap which reduces both GC cost = an memory usage.
  • Some preliminary runtime work for OCaml multicore
  • Immutable strings are now enforced at configuration time
  • User-defined indexing operators for multidimensional arrays
  • Coming soon: statmemprof, a new statistical memory profiler. The external API will be release next version.
  • Various improvements to the manual
  • More precise exhaustiveness check for GADTs
  • Many bug fixes

Merlin, the OCaml editor service, is not yet available for this release. We will publish a follow-up announcement when Merlin is ready.

This release is (or soon will be) available as a set of OPAM switches, and as a source download here:

https://caml.inri= a.fr/pub/distrib/ocaml-4.10/

Editor note: please follow the archive link for the full changelog

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 loo= k at the archive or the RSS feed of the archives<= /a>.

If you also wish to receive it every week by mail, you may subscribe online.

--=-=-=--