From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr 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 2F3FA80130 for ; Mon, 22 May 2017 18:36:12 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jdimino@janestreet.com; spf=Pass smtp.mailfrom=jdimino@janestreet.com; spf=None smtp.helo=postmaster@mxout1.mail.janestreet.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of jdimino@janestreet.com) identity=pra; client-ip=38.105.200.78; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of jdimino@janestreet.com designates 38.105.200.78 as permitted sender) identity=mailfrom; client-ip=38.105.200.78; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mxout1.mail.janestreet.com) identity=helo; client-ip=38.105.200.78; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="postmaster@mxout1.mail.janestreet.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AEKC+BBYpnH9fzpgOhy4Uhnn/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZrsi8bnLW6fgltlLVR4KTs6sC0LuI9f2/ESxYuNDa4S9EKMQNHzY+yu?= =?us-ascii?q?wo3CUYQ/S5QXXhK/DrayFoVO9jb3RCu0+BDE5OBczlbEfTqHDhpRQbGxH4KBYn?= =?us-ascii?q?br+tQt2agMu4zf299IPOaAtUmjW9falyLBKrpgnNq8Uam4VvJ6IwxxfTonZFef?= =?us-ascii?q?ldyWd0KV6OhRrx6MO98Zx5/yhMp/4t8tNLXLnncag/UbFXAzMqPnwv6sHsqRfN?= =?us-ascii?q?UxaE6GEGUmURnBpIAgzF4w//U5zsrCb0tfdz1TeDM8HuQr86RTqt76FwSB/1ky?= =?us-ascii?q?gHLCI28HvWisNrkq1Wpg+qqgFlzI7VZIGVM+d+fr/YcNgHS2dNQtpdWipcCY66?= =?us-ascii?q?coABDfcOPfxAoof9qVUArgawCxewC+701j9EmmX70bEm3+g9EwzL2hErEdIUsH?= =?us-ascii?q?TTqdX4LKMcXv6vzKbWyDXDbu1Z0irz5ojJdxAhoPeMXbVtesfWy0kgCgLFjlCR?= =?us-ascii?q?qYzjODOYzeYNvHKd7+V+TuKvl3QnpB9vrTiz3Msjlo7JhocMx13C6C53zoE1Jd?= =?us-ascii?q?iiR056Z96pCJRQtyCGN4t2X8MtWHtktzo9yr0DoZK7fjIFyJI5yB7Ed/yHaZaH?= =?us-ascii?q?7Qz/VOqLPTh4g3dldbSijBix6Uit0uPxW8qu3FpXsiZIksPAum4R2xDP8MSKSP?= =?us-ascii?q?hw8l+/1TqT0w3f8OJJLEAumabFNpIswqQ8m5gNvUnFAyT4gl/5jLWMeUUh4uWo?= =?us-ascii?q?6/roYrHhppKEMo91hQb+MrkymsCiG+g4NxIBX2mf+eim1r3s50v5T6tRjv0qiK?= =?us-ascii?q?nWro7VJdgBqqGlBA9V154v6xe5Dzi4zNQVhXcKIVFfdB6ak4TkO0vCLO7kAfuj?= =?us-ascii?q?mVihkjRmy+jDPrL7A5XNKnbDkK3mfbZ480Ncyhc8zdFa55JVDLEBJ+n+Wk3ru9?= =?us-ascii?q?zeEBA5KBC0w/z5B9pjyoMSQ36AAqicMK/Kq1+H+vovI/WQZI8SoDvyN+Iq5/vq?= =?us-ascii?q?jXMgnV8dfLKp3YcMZXCjHvVmJl2ZbmD2jtcAF2cKpAs+Q/bwhF2MSz4AL0q1Cu?= =?us-ascii?q?g37zQ/TYanFpvrR4a3gbXH0j3xVsldb2VCT1SNCmvAdoOeWv5KZjjEZocrlTcN?= =?us-ascii?q?ULzkQIg72Dmhswj1z7doNO3J4jZevpXmnpAh4ObakBV3/jtuAuyS1GaCS2x7hG?= =?us-ascii?q?QVXyRw16d69x9T0FCGhIp1mfFdFNEby/JMUwE9fcrew+1/Ctb1cgDIeNqSVEyr?= =?us-ascii?q?T8ngCjY0GIFii+QSalpwTo3xxivI2DCnVucY?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AdAwDFEiNZfU7IaSZdHgwGGQwGhAyBD?= =?us-ascii?q?AeDaLIDgg8sixIHQRYBAQEBAQEBAQEBARIBAQsUCFeCMyKCbR0BATglDwImAiQ?= =?us-ascii?q?SAQUBDgETAYo2AwuiIz+LHWqCJoMJAQEFiCEBAQgBAQEBARsDBRJ5hVSMboJgi?= =?us-ascii?q?UuNL4chhx2DNYhNiwaGaAKTABQfgRUmBoE1LyAIGhVfBoRXHYFkdQGJKQEBAQ?= X-IPAS-Result: =?us-ascii?q?A0AdAwDFEiNZfU7IaSZdHgwGGQwGhAyBDAeDaLIDgg8sixI?= =?us-ascii?q?HQRYBAQEBAQEBAQEBARIBAQsUCFeCMyKCbR0BATglDwImAiQSAQUBDgETAYo2A?= =?us-ascii?q?wuiIz+LHWqCJoMJAQEFiCEBAQgBAQEBARsDBRJ5hVSMboJgiUuNL4chhx2DNYh?= =?us-ascii?q?NiwaGaAKTABQfgRUmBoE1LyAIGhVfBoRXHYFkdQGJKQEBAQ?= X-IronPort-AV: E=Sophos;i="5.38,377,1491256800"; d="scan'208";a="274152225" Received: from mxout1.mail.janestreet.com ([38.105.200.78]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 May 2017 18:36:11 +0200 Received: from [172.27.56.106] (helo=tot-qpr-mailcore2) by mxout1.mail.janestreet.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89) (envelope-from ) id 1dCqJV-0001Wt-8A for caml-list@inria.fr; Mon, 22 May 2017 12:36:09 -0400 X-JS-Flow: external X-JS-Scanner-attachment: (ok) No attachments Received: by tot-qpr-mailcore2 with ocaml/mailcore/mailcore 1.0+90 (160ed8e8fef2) (envelope-from ) id BZIxN5-AY8qOw-HQ; 2017-05-22 12:36:09.236606-04:00 Received: from mail-lf0-f72.google.com ([209.85.215.72]) by mxgoog1.mail.janestreet.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.89) (envelope-from ) id 1dCqJV-0006ME-6V for caml-list@inria.fr; Mon, 22 May 2017 12:36:09 -0400 Received: by mail-lf0-f72.google.com with SMTP id u29so14272010lfi.10 for ; Mon, 22 May 2017 09:36:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=Sp6jQCwU+jw2JD3FVBXSUGytDr0S/fqnM64PndGmWzM=; b=s6nNUK80oEGqFnSaWtex1ShUkXYAVZqafR+6CNhNEesyQ1frK+3lqGO0Du4NrvCWcb n53bFz0akcuKNSlExhqYn3F4TjXM7VzE7PKPhi6BO3+cFgv+ThxED7TPQMDBPIUsdwF0 9zRzVlbaRhGS1STLUtvxonS3UH/hcboVNqS28= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Sp6jQCwU+jw2JD3FVBXSUGytDr0S/fqnM64PndGmWzM=; b=R/FES0+Wa3lebxr7CEF4SWq4UK2TVe38++GQix/6fDCd0Isx0Oy3/2r7UpDwhq0dFA dikHCOK7CgYVFK9XEu8P6BH/WgTJN+woABS5TpAfc7nDDKyrRdAuK2bXoBI90SYQaGze lM6yGVBBl4Y2wQwjC1xukJAlGoOkyPOJVYVu1xauvkxG1jKAIBN395O+XgsCIhiAAYR4 thv55b53zxkVLmwlUyRE7NP9XWPX4wN2KoXZXx/dnXurgmWkWJHyHZQc6m8Vg1AijLxR HuBY68lKxCIJ105XzeGaPe9dbF4puXYXcD5Dtjbe6+3BUyFYk7XCteLTndHddUECtPC/ dnCA== X-Gm-Message-State: AODbwcANda1WBaNgLkdcf9O6a4luY+LZkCvhA0gIOzvfAfjVoDBRYy2A JBXB8T/zAaGYvSxwai4B8YNY8UlhKLwUMLiJaKr7Emr5BfnxrBjT3rmwi7UAzlR0a6SRFMeXrI3 BCX6E54fEt2fyVHQE X-Received: by 10.25.165.10 with SMTP id o10mr6107310lfe.168.1495470967997; Mon, 22 May 2017 09:36:07 -0700 (PDT) X-Received: by 10.25.165.10 with SMTP id o10mr6107303lfe.168.1495470967569; Mon, 22 May 2017 09:36:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.25.199.9 with HTTP; Mon, 22 May 2017 09:36:07 -0700 (PDT) From:Jeremie Dimino Date: Mon, 22 May 2017 17:36:07 +0100 Message-ID: To:"caml-list@inria.fr" , "ocaml-core@googlegroups.com" Content-Type: text/plain; charset="UTF-8" X-JS-Exim-Data-Received: 2017-05-22 12:36:09-0400 X-JS-Processed-by: mailcore Subject: [Caml-list] [ANN] v0.9 release of Jane Street packages Dear OCaml developers, I'm happy to announce the v0.9 release of Jane Street packages! This release comes 13 months after the last stable one and is packed with a ton of new stuff. We are now releasing 94 packages, so 32 more than the previous release. New packages cover a wide range of areas, such as shell programming, web programming, standard libraries, Emacs hacking and more. Given its size and the increasing number of users, getting this release out in opam was a challenge. Especially I thank Anil Madhavapeddy for his help with the testing and fixing of reverse dependencies. All the packages are now in opam and the API documentation is available on our website: https://ocaml.janestreet.com/ocaml-core/v0.9/doc/ We don't have public release notes for this release yet. However, we are in the process of reviewing the past year of change logs and hope to publish them online soon. In the meantime, here is a summary of major changes and new features available in this release. Simpler versioning ------------------ The first noteworthy change is the versioning scheme. We used to assign version numbers based on our internal ones. However these didn't make much sense outside of Jane Street, and especially there was a huge gap between each releases. So we are now using a more classic versioning scheme. In order to keep version numbers going up, they had to be prefixed with a 'v'. And because this release introduce a new standard library, Base, with an API that is still under active development, the new versions start with v0.9.0. Faster and more portable builds ------------------------------- This release is the first one to use Jbuilder [1], a new build system that was initially designed to ease the publication of our packages. The main consequences for users are: - much faster compilation times. It has been observed that Jane Street packages such as Core are now 6 times faster to build and install - improved portability. For instance packages whose code is portable build on Windows with nothing more than a working OCaml compiler Regarding portability, this release introduces configurator [2], a small but convenient package that helps finding out available system features. We started using it systematically in packages where we have C stubs. [1] https://github.com/janestreet/jbuilder [2] https://github.com/janestreet/configurator Better compatibility with multiple versions of OCaml ---------------------------------------------------- Since the switch to ppx our packages used to be stuck with one version of the compiler. This was due to our heavy use of ppx rewriters and to the fact that each version of OCaml tends to break code using the compiler libraries. In this release all our ppx code is based on the ocaml-migrate-parsetree [1] library. As a result our packages now build with OCaml from 4.03 to 4.06. There are still some issues related to ppx versioning that will need one more round of refactoring to be solved. [1] https://github.com/let-def/ocaml-migrate-parsetree New lighter, portable and guilt free standard library ----------------------------------------------------- This new release introduces Base [1], a wholesale replacement of the standard library distributed with OCaml. It aims to provide better standards and conventions, while only offering fully portable features. Base is still under active development, and work on the API is not yet finished. However, it was initially developed mostly by reorganising code from Core_kernel and it is the basis for all the Jane Street code base, meaning that it is carefully reviewed and heavily tested. Using it in old and new code is a breeze. Note that to be fully portable Base doesn't expose IO operations. These are provided by the companion Stdio library [2]. [1] https://github.com/janestreet/base [2] https://github.com/janestreet/stdio And more... ----------- Following is a brief overview of the other new packages available in this release, with more details available on their respective home pages. * Ppx_hash Automatic generation of Hash functions from type expressions and type definitions. https://github.com/janestreet/ppx_hash * Bin_prot shapes An extension to bin_prot to check safe use of deserialization. https://github.com/janestreet/bin_prot/tree/master/shape * Incr_dom A library for building dynamic webapps, using Js_of_ocaml. https://github.com/janestreet/incr_dom * Incr_map Helpers for incremental operations on map like data structures. https://github.com/janestreet/incr_dom * Incr_select Handling of large set of incremental outputs from a single input https://github.com/janestreet/incr_select * Virtual_dom OCaml bindings for the virtual-dom library https://github.com/janestreet/virtual_dom * Shexp Shexp was initially intended as a S-expression based shell to replace bash in Makefile based build for Jane Street packages. However, this project was superseded by Jbuilder. What's left is a nice process monad allowing one to construct complex and typed process pipelines. Shexp is still in its infancy but has already been successfully used for various purposes. https://github.com/janestreet/shexp * Spawn Essentially an improved version of Unix.create_process, implemented using vfork on Unix, which is much more efficient than fork. https://github.com/janestreet/spawn * Posixat Bindings to the various *at posix functions. https://github.com/janestreet/posixat * Ecaml OCaml plugins for Emacs. https://github.com/janestreet/ecaml * Expect_test_helpers_kernel Various helpers for writing expectation tests. https://github.com/janestreet/expect_test_helpers_kernel * Parsexp Lighter S-expression parsing library, with a more consistent API and better behaved in JavaScript. https://github.com/janestreet/parsexp * Cinaps Trivial meta-programming a la expect-test. More here: https://blogs.janestreet.com/trivial-meta-programming-with-cinaps/ https://github.com/janestreet/cinaps * Ppx_optional Match statements for zero allocation options. https://github.com/janestreet/ppx_optional * Sexp_pretty A S-expression prettifying library. https://github.com/janestreet/sexp_pretty * Topological_sort Single-module library that implements a simple topological-sort algorithm. https://github.com/janestreet/topological_sort -- Jeremie Dimino