[cwn] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue Oct 15 00:28:27 PDT 2019


Hello

Here is the latest OCaml Weekly News, for the week of October 08 
to 15,
2019.

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

capnp-rpc 0.4.0
Ocaml-protoc.plugin.1.0.0
Old CWN


capnp-rpc 0.4.0
═══════════════

  Archive: 
  <https://discuss.ocaml.org/t/ann-capnp-rpc-0-4-0/4524/1>


Thomas Leonard announced
────────────────────────

  I'm pleased to announce the release of [capnp-rpc 0.4.0], an 
  OCaml
  implementation of the Cap'n Proto RPC specification.

  If you haven't used the library before, please see the 
  [documentation
  and tutorial]. Cap'n Proto RPC aims to provide secure, 
  efficient,
  typed communications between multiple parties.

  This library is now being used to build [ocaml-ci], where it is 
  used
  for all communication between the web frontend and backend 
  services,
  and to provide a command-line client.


[capnp-rpc 0.4.0]
<https://github.com/mirage/capnp-rpc/releases/tag/v0.4.0>

[documentation and tutorial]
<https://github.com/mirage/capnp-rpc/blob/master/README.md>

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

Main changes since v0.3
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  Breaking changes:

  • Wrap errors with the ``Capnp' tag to make it easier to compose 
  with
    other types of error.

  • Prefix all command-line options with `capnp-'.
    e.g. `--listen-address' is now `--capnp-listen-address'.  The 
    old
    names were confusing for applications that supported other 
    protocols
    too (e.g. a web server).

  New features:

  • Add `Capability.with_ref' convenience function.  This 
  automatically
    calls `dec_ref' when done.

  • Add Unix `Cap_file' module to load and save `Sturdy_refs'.  In
    particular, this ensures that saved cap files get a mode of 
    `0o600',
    since they contain secrets.

  • Export cmdliner network address parsing.  This is useful if 
  you
    don't want to use the default option parsing.  For example, if 
    you
    want to make Cap'n Proto an optional feature of your program.

  • Upgrade from `uint' (which is deprecated) to the newer 
  `stdint'.
    The latest version of `uint' is just a wrapper around 
    `stdint', so
    this shouldn't break anything if you are using the latest 
    version.

  • Put cmdliner options in their own man-page section.  Use
    `Capnp_rpc_unix.manpage_capnp_options' to control where in 
    your
    man-page they appear.

  • Enable `SO_KEEPALIVE' for TCP connections.  For use with 
  Docker's
    libnetwork, try something like this in your `stack.yml':
    ┌────
    │ sysctls:
    │   - 'net.ipv4.tcp_keepalive_time=60'
    └────


Ocaml-protoc.plugin.1.0.0
═════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-ocaml-protoc-plugin-1-0-0/4535/1>


Anders Fugmann announced
────────────────────────

  I'm happy to announce the second release of 
  [ocaml-protoc-plugin].

  Ocaml-protoc-plugin is a plugin to googles `protoc' compiler 
  which
  generates type idiomatic to ocaml from `.proto' files including 
  full
  compliant serialization and deserialization functions.


[ocaml-protoc-plugin] 
<https://github.com/issuu/ocaml-protoc-plugin>

Most noteworthy changes in this release:
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  • Full proto2 support.
  • The list of dependencies has been slimmed way down, and now 
  only
    depends on `conf-protoc' (the `protoc' compiler and googles 
    *well
    known types*).
  • Buckescript support.
  • Added options to change the ocaml (type for scalar types (int, 
  int64
    or int32).

  Many thanks to Wojtek Czekalski for helping trimming 
  dependencies and
  for Buclescript support.


Full changelog:
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  • Support enum aliasing
  • Avoid name clash with on 'name'
  • Fix code generation when argument contains a path
  • Refactor internal types to make serialization and 
  deserialization
    type spec symmetrical.
  • Optimize deserialization for messages with max_id < 1024
  • Don't depend on Base in runtime
  • Slim runtime dependencies: Remove need for base, ocplib-endian 
  and
    ppx_let
  • Honor [packed=…] flag.
  • Make fixed scalar types default to int32 and int64
  • Support proto2 specification
  • Add options to switch between int64|int32 and int
  • Fix name clash problem with special enum names
  • Refactor serialization and deserialization to simplify emitted 
  code
  • Eagerly evaluate serialization (for speed).


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/20191015/5d55a836/attachment.htm>
-------------- 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/20191015/5d55a836/attachment.pgp>


More information about the caml-news-weekly mailing list