From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id 103F15D4 for ; Sat, 22 Aug 2020 04:14:24 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.76,339,1592863200"; d="scan'208,217";a="464283952" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 22 Aug 2020 06:14:23 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id DE42DE01C5; Sat, 22 Aug 2020 06:14:23 +0200 (CEST) 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 348DFE01C5 for ; Sat, 22 Aug 2020 06:14:15 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=yawar.amin@gmail.com; spf=Pass smtp.mailfrom=yawar.amin@gmail.com; spf=None smtp.helo=postmaster@mail-io1-f46.google.com IronPort-PHdr: =?us-ascii?q?9a23=3A1udJcB0aDcaxAixrsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?seIfKfad9pjvdHbS+e9qxAeQG9mCtbQd0rGd7vGocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbAhEmTuwbalvIBmrowjduckbjI9/Iast1xXFpWdFdf?= =?us-ascii?q?5Lzm1yP1KTmBj85sa0/JF99ilbpuws+c1dX6jkZqo0VbNXAigoPGAz/83rqALM?= =?us-ascii?q?TRCT6XsGU2UZiQRHDg7Y5xznRJjxsy/6tu1g2CmGOMD9UL45VSi+46ptVRTlkz?= =?us-ascii?q?kMOSIn/27Li8xwlKNbrwynpxxj2I7ffYWZOONjcq/BYd8WQGxMVdtTWSNcGIOx?= =?us-ascii?q?d4QAD+QDMuhYoYfzpEYAowWiCgS3Huzj1iVFi2Xq0aEm0eksFxzN0gw6H9IJtX?= =?us-ascii?q?TZtNf6O70cUO+v1qnD0CnOb/ZX2Tf79YPFdRAgruuCXL1qa8rd01MgFwbEjlWW?= =?us-ascii?q?soHlMDaV2f4Ms2if9eZvSeWvi2s+pgx3vzOgydsihJPTiYIJ1lDL6z95wIAtKN?= =?us-ascii?q?CmRkN2fd6qHYVUui2HK4Z7Q8MsTmN1tSs5ybALu4O2cScIxZooxxDSaf6KfoeH?= =?us-ascii?q?7BzjV+ucPzd2iXxhdby/mRu/91WrxOP7VsmxyllKryxFn8HSuXAJ0hzf88yHRe?= =?us-ascii?q?F7/keuwzqP0BrT6u5CLEsplqTbM4YszqAsmpcXq0jOHS/7lF/rgKKXd0go4Oel?= =?us-ascii?q?5uXhb777vJGTLZV0hRv7Mqk2msywH+A4Mg8WUmie4+u81bnj8VT4QLVNk/E6i6?= =?us-ascii?q?fZvZ/bKMgBqa65BAhV0okn6xmhFTupzNMYnXwfIFJEfhKIkZTpNknQLPzkCfqz?= =?us-ascii?q?mVehnTdxy/zbP7DsA4/BI3fCnbv5eLZy8U9cyA49zdBF4JJUD6kMIfLpVU7/rt?= =?us-ascii?q?PYFAU1PBaxw+bmDtVwzYweWWeVDa+YNKPeq0OH5uUqI+WUfo8apC79K+Q55/7p?= =?us-ascii?q?lXI2hUUSfayt3ZcObHC4H+9mI1mCbHr3gtYBFH8KsRAkQOzrjl2CSz9TaGyoU6?= =?us-ascii?q?Iy/DFoQL6hWKnZT4Yih72a6w28FJpKLjRIEFmKGnDpbMOOXP0LdAqZL8YnnCZS?= =?us-ascii?q?Bpa7TIp05BixvRWy4r9mKKKA6yQHvIil3d104cXckBgz8Xp/CMHLgDLFdH19gm?= =?us-ascii?q?5dH2x+56t4u0Eojw7bifEp0cwdLsRa4rZyail/MJfdy+JgDNWrA1DOe96ITBCt?= =?us-ascii?q?RdD0WGhtHOJ0+McHZgNGI/vnlgrKhnP4DLoclrjND5sxoPqFgirBYv1lwnOD75?= =?us-ascii?q?EPylkrRswVaD+jj697sgnUXsvHzxvfmKGteqARmiXK8TXbwA=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C3BAA1m0Bfhi6mVdFfhSdGVDMshDeBH?= =?us-ascii?q?IJejTqLFYhuiBkLAQMBDB8QBAEBhEwCgkQCHAcBBDQTAhABAQUBAQECAQMDBAE?= =?us-ascii?q?TAQEBCAsLCCmFYwyCNykBgxIBAQMBEhEdARsdAQMBCwYFBAEGNwICIgERAQUBH?= =?us-ascii?q?AYTGgiDBAGCSgEDDiClWoEEPYsogRUFAReDAgWFBwoZKA1iA4E0AgEGEoEmhUO?= =?us-ascii?q?HXw+BTT+BR4IsLj6CXAGCDYJqgmAEthMqB4JmgQoEC4dLkUAhoDKdCpUYDyOBS?= =?us-ascii?q?E2BLTMaI1AxgjhQGQ2OOYNXhRSFXigwNwIGAQkBAQMJkTgBAQ?= X-IPAS-Result: =?us-ascii?q?A0C3BAA1m0Bfhi6mVdFfhSdGVDMshDeBHIJejTqLFYhuiBk?= =?us-ascii?q?LAQMBDB8QBAEBhEwCgkQCHAcBBDQTAhABAQUBAQECAQMDBAETAQEBCAsLCCmFY?= =?us-ascii?q?wyCNykBgxIBAQMBEhEdARsdAQMBCwYFBAEGNwICIgERAQUBHAYTGgiDBAGCSgE?= =?us-ascii?q?DDiClWoEEPYsogRUFAReDAgWFBwoZKA1iA4E0AgEGEoEmhUOHXw+BTT+BR4IsL?= =?us-ascii?q?j6CXAGCDYJqgmAEthMqB4JmgQoEC4dLkUAhoDKdCpUYDyOBSE2BLTMaI1Axgjh?= =?us-ascii?q?QGQ2OOYNXhRSFXigwNwIGAQkBAQMJkTgBAQ?= X-IronPort-AV: E=Sophos;i="5.76,339,1592863200"; d="scan'208,217";a="357020986" X-MGA-submission: =?us-ascii?q?MDHvzpvZAs8/BTbMVKWfulZGEMoSalv7uG7BeS?= =?us-ascii?q?aDKQjDyrJJkfAUHX/ccRIBFzB7sU+wmer5C2e69uNVPnCWyhDN842PR6?= =?us-ascii?q?CPK88pz13p5f9ytp2YSr74XzYk4WlXv8P0adRgPktQnxuKV7SkCbjVof?= =?us-ascii?q?l/1K1z+BFRB5Fbhbxr5ljfUg=3D=3D?= Received: from mail-io1-f46.google.com ([209.85.166.46]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384; 22 Aug 2020 06:14:13 +0200 Received: by mail-io1-f46.google.com with SMTP id z17so3722229ioi.6 for ; Fri, 21 Aug 2020 21:14:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=NDx2s7dJZ/RiYpKn5Jf/Zxi0SHCUiY+P1HSDk6YJGhk=; b=PIKINAmMEY+Ezf5hzjc1W/tXvhKHuLITGAOiq0C3v7KSr0zLfk26aCeLuYKPg2lXfE Ehktspyzv23yun6jwPB6kJopGqzNZGx/9evTpZ+vU6VbMn8KY+2tO+WAN0GprwX4b4zw bO8ImgxTSVZ4zy2XupejmI1oPFwS8Y8xBb12193kggKLkDNiaRgzjK5IleAnA6vPhhbS YC1AfkxAGXzuS47rGDOkf0cv1bSPelMTz6uPYjioOt0DdyJ9nhLUy44uhG4TEmAsiCTe mETvTXly93w2baPmxLyYRfQDfWFJqtVlpvqsmiIKXDFwsapJ/y5xiRE3UvVeuxWpQKa1 hiPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=NDx2s7dJZ/RiYpKn5Jf/Zxi0SHCUiY+P1HSDk6YJGhk=; b=pw89Vgzi9re04gIpfN60cXZTTfBnH0IkBFBFeMcSDWRZzOXz30jhndr3gIfC0ydzFZ ehATgRxM5YkdlpqmvDzEL+GcePXrqSDDpc85Mfwle2u9Or+/SvoFADuI22czr10TCXin dcC3fd6tjoIrspbVUmqj0LP492n+Di1fxZUB3RhyPqnlqYZB93JumRttyfHEE6EbYRYb 0TYlyfsuxxzYxyrFEejxfoOHwrqEw5GsmWQWfkoH43TXw+aPPmje3p/l+BGZTC660ztU +yGNGq1qO6ZT15t3AROaoWCAEExqS7sDifz9/5SXsXGS+Z3i21+8AFAEW/PoQ48ixLaP MUJg== X-Gm-Message-State: AOAM530v73SNwIsHEUdIsBcq8Pj4nam7zzzj0j5x7RO1EV1PuHfnZ11I Dsl0IZ1zd7Thjo0Oen2i1VlZ2r6bT/+yBdQk/uQ49l5fifWZ X-Google-Smtp-Source: ABdhPJzcL5V9vsmiXbL6ua6U7Vjc32mxT/jf13wOajtIX5Y1NXnZV4ZUsAl4Xwj070CyX0SxJyu5bqSYrfcrv8e4I6c= X-Received: by 2002:a05:6602:15d3:: with SMTP id f19mr4631403iow.91.1598069652390; Fri, 21 Aug 2020 21:14:12 -0700 (PDT) MIME-Version: 1.0 References: <71ff7d61-6899-9b05-4c01-3984d47698ca@cea.fr> In-Reply-To: <71ff7d61-6899-9b05-4c01-3984d47698ca@cea.fr> From: Yawar Amin Date: Sat, 22 Aug 2020 00:09:02 -0400 Message-ID: To: =?UTF-8?Q?Fran=C3=A7ois_Bobot?= Cc: OCaml Mailing List Content-Type: multipart/alternative; boundary="000000000000f5071605ad6f9509" Subject: Re: [Caml-list] Tools for helping backward compatibility? Reply-To: Yawar Amin X-Loop: caml-list@inria.fr X-Sequence: 18226 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: --000000000000f5071605ad6f9509 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Fri, Aug 21, 2020 at 8:19 AM Fran=C3=A7ois Bobot wrote: > ... > - Given an API, the guarantees of the possible modifications of the API= , > and a new version of the > API: check if the new version follows the guarantees > Do you mean something like Semantic Versioning here? See e.g. Elm which has a package manager that can enforce SemVer by comparing types: https://elm-lang.org/news/0.14 > For package authors, it means we can automatically enforce semantic versioning. No user will ever get a breaking API change in a patch version again! Something like this for OCaml would be very cool. But I've heard that SemVer for OCaml is either difficult or effectively impossible, indeed due to some of the reasons you listed. I think any practical codification of backward-compatibility rules would probably need to ignore the presence of features like 'module type of' and 'include'. Regards, Yawar --000000000000f5071605ad6f9509 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

On Fri, Aug 21, 2020 at 8:19 AM Fr= an=C3=A7ois Bobot <francois.bob= ot@cea.fr> wrote:
...
=C2=A0 - Given an API, the guarantees of the possible modifications of the = API, and a new version of the
API: check if the new version follows the guarantees
<= br>
Do you mean something like Semantic Versioning here? See e.g.= Elm which has a package manager that can enforce SemVer by comparing types= : https://elm-lang.org/news/0.14=

> For package authors, it means we can aut= omatically enforce semantic versioning. No user will ever get a breaking API change in a patch version again!

Something like this for OCa= ml would be very cool. But I've heard that SemVer for OCaml is either d= ifficult or effectively impossible, indeed due to some of the reasons you l= isted. I think any practical codification of backward-compatibility rules w= ould probably need to ignore the presence of features like 'module type= of' and 'include'.

Regards,

Yawar
--000000000000f5071605ad6f9509--