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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 7BBBF7FE44 for ; Thu, 7 Jul 2016 12:26:39 +0200 (CEST) IronPort-PHdr: 9a23:TX/Ptx9eha8xgP9uRHKM819IXTAuvvDOBiVQ1KB92+wcTK2v8tzYMVDF4r011RmSDN2dsaIP0raempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47AblHf6ke/8SQVUk2mc1EkfqKvSsWL04ye7KObw9XreQJGhT6wM/tZDS6dikHvjPQQmpZoMa0ryxHE8TNicuVSwn50dxrIx06vru/5xpNo8jxRtvQ97IYAFPyiJ+VrBYBfWRsvOXo06cmjjhLDQBGC/DNIXWwciBtFB07e5xH3RJrrmiT/v+t5niKdOJulY6ozXGGO5qFqRRvforMBJTo4uDXbg8pxgaYdqg+soQ57wqbZepucKPtnY66bdtNMFjkJZdpYSyEUWtD0VIAIFedUeL8A94Q= Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=daniel.buenzli@erratique.ch; spf=None smtp.mailfrom=daniel.buenzli@erratique.ch; spf=None smtp.helo=postmaster@smtp.webfaction.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=pra; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=mailfrom; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@smtp.webfaction.com) identity=helo; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="postmaster@smtp.webfaction.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BEAAD7LH5XhkpWN0pbwCWGGAKBYhEBAQEBAQEBAREBAQEICwsJIS+CMoIbAQUjVhALGgImAgJHEAYbE4gVrT+PRAEBCAEBAQEjgQGIcIEDhECDASuCLwWZE5gEDoVfkAo0giYUC4FNiWkBAQE X-IPAS-Result: A0BEAAD7LH5XhkpWN0pbwCWGGAKBYhEBAQEBAQEBAREBAQEICwsJIS+CMoIbAQUjVhALGgImAgJHEAYbE4gVrT+PRAEBCAEBAQEjgQGIcIEDhECDASuCLwWZE5gEDoVfkAo0giYUC4FNiWkBAQE X-IronPort-AV: E=Sophos;i="5.28,324,1464645600"; d="scan'208";a="184151756" Received: from mail6.webfaction.com (HELO smtp.webfaction.com) ([74.55.86.74]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 07 Jul 2016 12:26:38 +0200 Received: from [192.168.199.79] (gw-eduroam.dar.cam.ac.uk [131.111.194.10]) by smtp.webfaction.com (Postfix) with ESMTP id AE62821029FE; Thu, 7 Jul 2016 10:26:34 +0000 (UTC) Date: Thu, 7 Jul 2016 11:26:32 +0100 From: =?utf-8?Q?Daniel_B=C3=BCnzli?= To: Gabriel Scherer Cc: Damien Doligez , caml users Message-ID: <7BDA5C9D56314AE6A0D9E07226862399@erratique.ch> In-Reply-To: References: <5E818FB5-6908-4E29-838E-C6A2836F60CE@inria.fr> X-Mailer: sparrow 1.6.4 (build 1178) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Subject: Re: [Caml-list] About contributions to the Standard Library Le mardi, 21 juin 2016 =C3=A0 16:48, Gabriel Scherer a =C3=A9crit : > (3) As Daniel pointed out, we need a better understanding of how to make = code written using new stdlib functions compatible with older OCaml version= s. So far we've used ad-hoc solutions on each situation, and it was barely = manageable despite the small number of instances. (Bytes: in findlib; opaqu= e_identity: clever hack; String ascii functions: no solution). To sum up the current reality of the situation with respect to per compiler= version deprecations and gradual improvements for someone that tries to su= pport more than one version of the compiler is to either: 1. Have to buy into disputable source surgery techniques (preprocessing ifd= efs) or isolate differences in module implementations selected according to= the compiler version that is targeted. This complexifies your build system= , puts a general maintenance burden on everyone and multiplies the paths fo= r bugs. 2. Wait for two or three years to be able to use the new things (I'm person= ally targeting 4.01 now), possibly having to cope with/silence deprecation = warnings during that time (e.g. String.lowercase) which defeats the point o= f these deprecations. Given this, I'm wondering how feasible and beneficial, both from a technica= l and bureaucratic burden point of view, it would be to actually distribute= and evolve the standard library separately from the compiler. I didn't giv= e a hard thought about bootstrapping issues since I'm sure there are people= on this list that have a clearer answer to that than me. The goal behind this move would not be to change the stdlib conservativenes= s and minimalistic approach but make it possible to use improvement made to= stdlib in older OCaml versions. Of course there are point in times where new versions of this exo-stdlib wo= uld introduce lower bounds. But I expect these not to be that widespread. I= think they would only happen on significant language/runtime system change= s for example because:=20=20 a) A language feature becomes used in the implementation of the stdlib (e.g= . GADT for formatters) b) A language feature becomes used in the interface of the stdlib (e.g. a h= ypothetical implicits introduction) c) A language/runtime system feature entails additions of new modules that = can't be expressed in earlier version (e.g. a hypothetical introduction of = effects). Note that even in c) it should be possible to backport interfaces, stubbed = with failing implementations. Finally I would just like to say that the current situation also has its pl= uses as it encourages people to upgrade and hence follow the general evolut= ion the system. Best,=20=20 Daniel