[cwn] Attn: Development Editor, Latest OCaml Weekly News
Alan Schmitt
alan.schmitt at polytechnique.org
Tue Jul 30 02:41:46 PDT 2019
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.schmitt at 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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20190730/05a99310/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20190730/05a99310/attachment-0001.pgp>
More information about the caml-news-weekly
mailing list