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 7AE2A7F778 for ; Fri, 13 May 2016 09:53:59 +0200 (CEST) IronPort-PHdr: 9a23:CagTOxZONbT0IfZl3NuFgq//LSx+4OfEezUN459isYplN5qZpcm7bnLW6fgltlLVR4KTs6sC0LqH9fq4EjVaud6oizMrTt9lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUiv2OQc9HOnpAIma153xjLDjvceLKFwS3HKUWvBbElaflU3prM4YgI9veO4a6yDihT92QdlQ3n5iPlmJnhzxtY+a9Z9n9DlM6bp6r5YTGfayQ6NtRrVdCHEiMnspzMztrxjKCwWVtVUGVWBDuRpSAhPZ6wn6abdvvSbg/r522DObJtHxVbByWTOv4KpxYAP1zS0KLTo49ifbh5oj3+pgvBu9qkknkMbva4aPOa8mcw== Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=christoph.hoeger@tu-berlin.de; spf=None smtp.mailfrom=christoph.hoeger@tu-berlin.de; spf=None smtp.helo=postmaster@mail.tu-berlin.de Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of christoph.hoeger@tu-berlin.de) identity=pra; client-ip=130.149.7.33; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="christoph.hoeger@tu-berlin.de"; x-sender="christoph.hoeger@tu-berlin.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of christoph.hoeger@tu-berlin.de) identity=mailfrom; client-ip=130.149.7.33; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="christoph.hoeger@tu-berlin.de"; x-sender="christoph.hoeger@tu-berlin.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail.tu-berlin.de) identity=helo; client-ip=130.149.7.33; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="christoph.hoeger@tu-berlin.de"; x-sender="postmaster@mail.tu-berlin.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BEAQBihzVXkCEHlYJehA0rUwG4boEEgXYihXICgS85EwEBAQEBAQEBEQEBAQEJCwkJIS+CLYIWAQEEIwQLAVYLGgImAgJXEwYCAQEQiBsECq1ekHoBCyWBAYcagleEC4M0glkFjV+KSIV+kVuFXo9BIQGCRREKgU1siFoBAQE X-IPAS-Result: A0BEAQBihzVXkCEHlYJehA0rUwG4boEEgXYihXICgS85EwEBAQEBAQEBEQEBAQEJCwkJIS+CLYIWAQEEIwQLAVYLGgImAgJXEwYCAQEQiBsECq1ekHoBCyWBAYcagleEC4M0glkFjV+KSIV+kVuFXo9BIQGCRREKgU1siFoBAQE X-IronPort-AV: E=Sophos;i="5.24,613,1454972400"; d="scan'208";a="218124745" Received: from mail.tu-berlin.de ([130.149.7.33]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 May 2016 09:53:58 +0200 X-tubIT-Incoming-IP: 91.66.50.149 Received: from ip5b423295.dynamic.kabel-deutschland.de ([91.66.50.149] helo=[192.168.178.42]) by mail.tu-berlin.de (exim-4.76/mailfrontend-6) with esmtpsa [UNKNOWN:AES128-SHA:128] for id 1b17v3-0000Cj-3J; Fri, 13 May 2016 09:53:58 +0200 To: caml-list@inria.fr References: From: =?UTF-8?Q?Christoph_H=c3=b6ger?= Organization: =?UTF-8?Q?Technische_Universit=c3=a4t_Berlin?= Message-ID: <5c240ab2-3a40-3b5d-72bb-16bb4f6ad75e@tu-berlin.de> Date: Fri, 13 May 2016 09:53:53 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2016.5.13.74516 X-PMX-Spam: Gauge=IIIIIII, Probability=0%, Report='' Subject: Re: [Caml-list] [ANN] Batteries 2.5.0, compatible with OCaml 4.03 Unfortunately, I am unable to use some modules: consider the following simple test: % cat foo.ml let () = Printf.printf "%s\n" Batteries.Sys.os_type % ocamlbuild -pkg batteries foo.native ... File "_none_", line 1: Error: No implementations provided for the following modules: BatConcreteQueue_402 referenced from [..]/opam/4.02.3/lib/batteries/batteries.cmxa(BatQueue) BatOpaqueInnerSys referenced from [..]/opam/4.02.3/lib/batteries/batteries.cmxa(BatSys) Command exited with code 2. This is opam 1.2.2, OCaml 4.02.3 and batteries 2.5.0 Did I break something or is this an actual bug? Am 12.05.2016 um 16:41 schrieb Gabriel Scherer: > ## Batteries > > Batteries Included is a community-maintained standard library > extension, with a focus on stability and compatibility. Bug reports, > pull requests and other contributions are warmly welcome, see the > project page at > https://github.com/ocaml-batteries-team/batteries-included/ > > The library's API documentation at: > http://ocaml-batteries-team.github.io/batteries-included/hdoc2/ > > Batteries 2.5.0 is a minor release, coming shortly after 2.4.0 > released in December 2015. The main change in 2.5.0 is that it is > compatible with the newly released OCaml 4.03. > > Note that, as usual for Batteries release, Batteries 2.5.0 is > compatible with older OCaml releases as well, and provides back-ported > versions of most standard library functions made available in 4.03 > only. For example, BatString.uppercase_ascii is usable under all OCaml > versions. > > If the documentation of a Batteries function says > @since 2.5.0 > then it is available under all supported OCaml versions (3.12.1 and > up). If it says > @since 2.5.0 and OCaml 4.03.0 > then it is only available under OCaml 4.03.0. > > Many thanks to the contributors for this release, Cedric Cellier, > Pieter Goetschalckx KC Sivaramakrishnan, Gabriel Scherer, and Thibault > Suzanne. > > ## Detailed Changelog > > - BatTuple: add Tuple{N}.make : 'a1 -> ... -> 'an -> 'a1 * ... * 'an > #657 > (Thibault Suzanne) > - BatBig_int: fix sequence operators (--), (---) to avoid polymorphic comparison > #674, #675, #676 > (Pieter Goetschalckx and Cedric Cellier) > - Extend all Batteries module to cover OCaml 4.03 features > #670 > (Gabriel Scherer, KC Sivaramakrishnan) > > ## Future plans > > OCaml 4.03 introduced a type `('a, 'b) result` contributed by Yaron > Minsky, meant to serve as common denominator between the various > libraries relying on some kind of sum/either type. > > type ('a,'b) result = Ok of 'a | Error of 'b > > Batteries has long had its own `result` type, which unfortunately uses > a different name for the second constructor: > > type ('a, 'b) result = Ok of 'a | Bad of 'b > > Unfortunately, this means that the two types are incompatible (see > PR#7102 for a feature request on renaming variant > constructors). Batteries 2.5.0 is compatible with previous Batteries > versions, and keeps using Batteries' result type. > > Of course, the right long-term move for Batteries is to drop its own > result type and use the standard result type instead. But this means > a breaking change for our users as well. We plan to make a major > release 3.0 in the following months, that integrates this breaking > changes and some other incompatible interface changes that were > proposed over the 2.x lifetime. > > Happy hacking! > -- Christoph Höger Technische Universität Berlin Fakultät IV - Elektrotechnik und Informatik Übersetzerbau und Programmiersprachen Sekr. TEL12-2, Ernst-Reuter-Platz 7, 10587 Berlin Tel.: +49 (30) 314-24890 E-Mail: christoph.hoeger@tu-berlin.de