Hello

Here is the latest OCaml Weekly News, for the week of July 23 to 30,
2019.

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

Dune 1.11.0
OCaml 4.08.1+rc2
Down 0.0.1
OpenAPI Generator now supports OCaml client generator
findlib-1.8.1
first release of nice_parser
Other OCaml News
Old CWN


Dune 1.11.0
═══════════

 Archive: <https://discuss.ocaml.org/t/ann-dune-1-11-0/4138/1>


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

On behalf of the dune team, I'm pleased to announce the release of
 dune 1.11.0. This release contains quite a few new interesting
features such as custom dialects: anyone can define their own OCaml
 based syntax. Is anyone up to revive the revised syntax?
 :slight_smile: I'd also like to highlight the the re-launch of
variants feature in a sounder form, a new `build-info' library that queries build information, and that `dune init' can initialize an entire project. But of course, by far the most important thing is that
 the compiler's colours are now back :champagne:


1.11.0 (23/07/2019)
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

• Don't select all local implementations in `dune utop'. Instead, let
   the default implementation selection do its job. (#2327, fixes
   #2323, @TheLortex, review by @rgrinberg)

• Check that selected implementations (either by variants or default implementations) are indeed implementations. (#2328, @TheLortex,
   review by @rgrinberg)

 • Don't reserve the `Ppx' toplevel module name for ppx rewriters
   (#2242, @diml)

 • Redesign of the library variant feature according to the #2134
   proposal. The set of variants is now computed when the virtual
   library is installed.  Introducing a new `external_variant'
   stanza. (#2169, fixes #2134, @TheLortex, review by @diml)

• Add proper line directives when copying `.cc' and `.cxx' sources
   (#2275, @rgrinberg)

• Fix error message for missing C++ sources. The `.cc' extension was
   always ignored before. (#2275, @rgrinberg)

• Add `$ dune init project' subcommand to create project boilerplate according to a common template. (#2185, fixes #159, @shonfeder)

• Allow to run inline tests in javascript with nodejs (#2266, @hhugo)

 • Build `ppx.exe' as compiling host binary. (#2286, fixes #2252,
   @toots, review by @rgrinberg and @diml)

• Add a `cinaps' extension and stanza for better integration with the
   [cinaps tool] tool (#2269, @diml)

• Allow to embed build info in executables such as version and list
   and version of statically linked libraries (#2224, @diml)

• Set version in `META' and `dune-package' files to the one read from
   the vcs when no other version is available (#2224, @diml)

 • Add a variable `%{target}' to be used in situations where the
context requires at most one word, so `%{targets}' can be confusing; stdout redirections and "-o" arguments of various tools are the main use case; also, introduce a separate field `target' that must be used instead of `targets' in those situations. (#2341, @aalekseyev)

• Fix dependency graph of wrapped_compat modules. Previously, the dependency on the user written entry module was omitted. (#2305,
   @rgrinberg)

 • Allow to promote executables built with an `executable' stanza
   (#2379, @diml)

• When instantiating an implementation with a variant, make sure it matches virtual library's list of known implementations. (#2361,
   fixes #2322, @TheLortex, review by @rgrinberg)

• Add a variable `%{ignoring_promoted_rules}' that is `true' when `--ingore-promoted-rules' is passed on the command line and false
   otherwise (#2382, @diml)

• Fix a bug in `future_syntax' where the characters `@' and `&' were not distinguished in the names of binding operators (`let@' was the
   same as `let&') (#2376, @aalekseyev, @diml)

• Workspaces with non unique project names are now supported. (#2377,
   fix #2325, @rgrinberg)

• Improve opam generation to include the `dune' dependencies with the minimum constraint set based on the dune language version specified
   in the `dune-project' file. (2383, @avsm)

• The order of fields in the generated opam file now follows order
   preferred in opam-lib. (@avsm, #2380)

• Fix coloring of error messages from the compiler (@diml, #2384)

 • Add warning `66' to default set of warnings starting for dune
projects with language verison >= `1.11' (@rgrinberg, @diml, fixes
   #2299)

 • Add (dialect …) stanza (@nojb, #2404)

 • Add a `--context' argument to `dune install/uninstall' (@diml,
   #2412)

• Do not warn about merlin files pre 1.9. This warning can only be
   disabled in 1.9 (#2421, fixes #2399, @emillon)

 • Add a new `inline_tests' field in the env stanza to control
inline_tests framework with a variable (#2313, @mlasson, original
   idea by @diml, review by @rgrinberg).

• New binary kind `js' for executables in order to explicitly enable Javascript targets, and a switch `(explicit_js_mode)' to require
   this mode in order to declare JS targets corresponding to
   executables. (#1941, @nojb)


[cinaps tool] <https://github.com/janestreet/cinaps>


OCaml 4.08.1+rc2
════════════════

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


Florian Angeletti announced
───────────────────────────

The release of OCaml version 4.08.1 is almost here, we have created a
 second release candidate that you can test.

 This new release candidate combines the rc1 fix for compilation
failures in presence of "-pack" reported by Fabian @copy (breaking nocrypto), with a new fix for dynlinking failures in bytecode mode
 reported by Andre Maroneze (breaking Frama-C).

 The source code is available at these addresses:

  <https://github.com/ocaml/ocaml/archive/4.08.1+rc2.tar.gz>
  <https://caml.inria.fr/pub/distrib/ocaml-4.08/ocaml-4.08.1+rc2.tar.gz>

The compiler can also be installed as an OPAM switch with one of the
 following commands:

 ┌────
│ opam switch create ocaml-variants.4.08.1+rc2 --repositories=default,ocaml-beta=git+https://github.com/ocaml/ocaml-beta-repository.git
 └────

 or

 ┌────
│ opam switch create ocaml-variants.4.08.1+rc2+<VARIANT> --repositories=default,ocaml-beta=git+https://github.com/ocaml/ocaml-beta-repository.git
 └────

 where you replace <VARIANT> with one of these:
 • afl
 • default-unsafe-string
 • force-safe-string
 • flambda
 • fp
 • fp+flambda

 We want to know about all bugs. Please report them here:
 <https://github.com/ocaml/ocaml/issues>

 Happy hacking, Florian Angeletti, for the OCaml team.


OCaml 4.08.1 rc2:
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ Bug fixes:

• #7887: ensure frame table is 8-aligned on ARM64 and PPC64   (Xavier Leroy, report by Mark Hayden, review by Mark Shinwell    and Gabriel
   Scherer)

• #8751: fix bug that could result in misaligned data section when compiling to   native-code on amd64.  (observed with the mingw64
   compiler)   (Nicolás Ojeda Bär, review by David Allsopp)

• #8769, #8770: Fix assertion failure with -pack   (Leo White, review
   by Gabriel Scherer, report by Fabian @copy)

• #8816, #8818: fix loading of packed modules with Dynlink (regression
   in #2176).    (Leo White, report by Andre Maroneze, review by
   Gabriel Scherer)


Down 0.0.1
══════════

 Archive: <https://discuss.ocaml.org/t/ann-down-0-0-1/4140/1>


Daniel Bünzli announced
───────────────────────

 It's my pleasure to announce the first release of Down:

       Down is an unintrusive user experience upgrade for the
       ocaml toplevel (REPL).

       Simply load the zero dependency Down library in the
       `ocaml' toplevel and you get line edition, history,
       session support and identifier completion and
       documentation (courtesy of ocp-index).

       Add this to your `~/.ocamlinit':

       #use "down.top"

       Down is distributed under the ISC license.

 Down has no library dependency hence it should be easy to get
installed and working in more constrained environments. In particular
 it works with `ocamlnat'.

 Down is also toplevel environmentally friendly: it just adds the
`Down' module to your scope and installs a `SIGWINCH' signal handler.

 The Down manual can be consulted [here] and is available to you
 locally via `odig doc down'.

 Homepage: <https://erratique.ch/software/down>
 Installation: `opam install down'


[here] <https://erratique.ch/software/down/doc/manual.html>


OpenAPI Generator now supports OCaml client generator
═════════════════════════════════════════════════════

 Archive:
 
<https://discuss.ocaml.org/t/openapi-generator-now-supports-ocaml-client-generator/4171/1>


William Cheng announced
───────────────────────

 We've added the OCaml client generator to the OpenAPI Generator
 project. To generate an OCaml client given an OpenAPI/Swagger
 specification file, please follow 3 simple steps below:

 1. Download the Java JAR
    
<https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.1.0-SNAPSHOT/openapi-generator-cli-4.1.0-20190729.024538-72.jar>
 2. Rename the JAR as "openapi-generator-cli.jar"
3. Run the following command to generate an OCaml API client for the
    Petstore API:

 Mac/Linux:

 ┌────
│ java -jar openapi-generator-cli.jar generate -g ocaml -i https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml -o /var/tmp/ocaml
 └────

 Windows:

 ┌────
│ java -jar openapi-generator-cli.jar generate -g ocaml -i https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml -o C:\tmp\ocaml
 └────

If you've any feedback or question, please let us know by opening an
 issue in the Github repo.

 Thanks Christophe Gensoul for contributing the new generator
 (<https://github.com/OpenAPITools/openapi-generator/pull/3446>).


findlib-1.8.1
═════════════

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


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

 findlib-1.8.1 is out:

 • fixes an issue with upcoming ocaml-4.09 (-vmthreads gone)

 • support for loading packages by prefix

 For manual download, manuals, etc. see here:

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

 An updated OPAM package will follow soon.

 Sorry for the delay.


first release of nice_parser
════════════════════════════

 Archive:
 <https://discuss.ocaml.org/t/ann-first-release-of-nice-parser/4175/1>


Steffen Smolka announced
────────────────────────

I’m pleased to announce the first release of [nice_parser], a single functor library that wraps your {menhir, ocamlyacc}-generated parser with a nice, high-level interface with beautiful loaction-aware error
 messages:
 ┌────
 │ opam install nice_parser
 │ ocaml
 │ #use "topfind";;
 │ #require “nice_parser”;;
 │ #show_module Nice_parser.Make;;
 │ module Make :
 │   functor (P : Nice_parser.RAW_PARSER) ->
 │     sig
 │       type token = P.token
 │       type result = P.result
│ exception LexError of { msg : string; loc : Location.t; } │ exception ParseError of { token : token; loc : Location.t; }
 │       val pp_exceptions : unit -> unit
│ val parse_string : ?pos:Lexing.position -> string -> result │ val parse_chan : ?pos:Lexing.position -> in_channel -> result
 │       val parse_file : string -> result
 │     end
 └────

The library relies on OCaml 4.08's new [source highlighting mechanism]
 for pretty lexing and parsing errors,
 ┌────
 │ File "examples/illegal.katbb", line 1, characters 10-17:
 │ 1 | this!; is illegal!; isntit?
 │               ^^^^^^^
 │ Error: [parser] unexpected token
 └────
 but can also be used with earlier versions of OCaml.

The [nice_parser repository] includes an example that helps you get started with your own parser in seconds. The API is documented [here].

 Happy parsing!


[nice_parser] <https://github.com/smolkaj/ocaml-parsing>

[source highlighting mechanism]
<https://github.com/ocaml/ocaml/pull/2096>

[nice_parser repository] <https://github.com/smolkaj/ocaml-parsing/>

[here] <https://smolka.st/ocaml-parsing/nice_parser/index.html>


Other OCaml News
════════════════

From the ocamlcore planet blog
──────────────────────────────

Here are links from many OCaml blogs aggregated at [OCaml Planet].

 • [Down]


[OCaml Planet] <http://ocaml.org/community/planet/>

[Down] <https://erratique.ch/software/down>


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.schm...@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: signature.asc
Description: PGP signature

_______________________________________________
caml-news-weekly mailing list
caml-news-weekly@lists.idyll.org
http://lists.idyll.org/listinfo/caml-news-weekly

Reply via email to