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 3B0AD5D5 for ; Sun, 24 Jan 2021 15:28:44 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.79,371,1602540000"; d="scan'208";a="488745912" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 24 Jan 2021 16:28:43 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 1B9C2E00A6; Sun, 24 Jan 2021 16:28:43 +0100 (CET) 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 BEC70E00C7 for ; Sun, 24 Jan 2021 16:28:34 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=Markus.Elfring@web.de; spf=Pass smtp.mailfrom=Markus.Elfring@web.de; spf=None smtp.helo=postmaster@mout.web.de IronPort-PHdr: =?us-ascii?q?9a23=3A5oAfOxOpybqK9hEgU4cl6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0I/zzrarrMEGX3/hxlliBBdydt6sVzbCP+Py6ESxYuNDd6S9EKMQNHzY+yu?= =?us-ascii?q?wu1zQ6B8CEDUCpZNXLVAcdWPp4aVl+4nugOlJUEsutL3fbo3m18CJAUk6nbVk9?= =?us-ascii?q?Kev6AJPdgNqq3O6u5ZLTfx9IhD2gar9uMRm6twrcutQSjId4NKo91xTFr3RWd+?= =?us-ascii?q?9LwW9kOU+fkwzz68ut/pNv6Thct+4k+8VdTaj0YqM0QKBCAj87KW41/srrtRfC?= =?us-ascii?q?TQuL+HQRV3gdnwRLDQbY8hz0R4/9vSTmuOVz3imaJtD2QqsvWTu+9adrSQTnhz?= =?us-ascii?q?kBOjUk7WzYkM1wjKZcoBK8uxxyxpPfbY+JOPZieK7WYMgXTnRdUMlPSyNBA5u8?= =?us-ascii?q?b4oRAOoHIeZYtJT2q18XoRejGQWgGObjxzlVjXH0wKI6yfwsHx/I3AIgAtwAs3?= =?us-ascii?q?rao9v6O6gQTe+7w7LFzSnab/5MxTvx9IbFfxInrPqRXbxwa83RyUw3Gg3ClFqQ?= =?us-ascii?q?s4/lPy6O1u8QvGab6+RgVfiui24hpAF6vz+iyMA2hYnThYIV10vE+T92zoYxK9?= =?us-ascii?q?24Uk97YdirEJZLuSCVKZB5Ttk/TG52oSs3zKANtpGnciYQ0psn2wLfZOKdc4iO?= =?us-ascii?q?+h/vSvicLzl2in57Zr+yhBW//VW9x+D8VcS50ldHoCRYn9TPtX0Ayx7e5tWbR/?= =?us-ascii?q?Zy/Uqs1jaB2g7O5uxGI004iLbWJpg8ybAzjpoeqVrPEjL0lUnsjqKaaF8o9vWs?= =?us-ascii?q?5uj5eLnrpJyRO5dwhwzwKKgih8KyDOoiPgQTXWWW+f6w2b7n8ED/Xb5ElOc5kr?= =?us-ascii?q?PDv5DfPckbprC2AwtS0os77ha/CCqm0MgCkXgJMl1KYwiLgJX3NF3WIfD4C+mw?= =?us-ascii?q?g0i0nTt12vzLPKftD5fTInTZjbvseahx51RexQcw1dxf4ohbCrAFIPL9QE/xs9?= =?us-ascii?q?nYAwc+PQOu2ebnC8h91pgEVWyABq+ZPrnSsV6O5uIgOOSNapEaty3nJ/c4+fHi?= =?us-ascii?q?lWU5lkMFfam1wZsXb2i1Eeh8LEWcZXrgm9MBEWYRvgoiV+Hqk12DUTtLZ3moRa?= =?us-ascii?q?485zc7CJinDYjZXIytjqaBj2+HGch2a2ZKEFGPWV3vcIDMD/cBbi6II8xJjjsc?= =?us-ascii?q?UrnnU4gmzFelswqsmJR9Ke+B3yQCto/4nPVx6ffSkx56oRl9FceAyCegS29un2?= =?us-ascii?q?UHbyA71uZzrBoumR+4zaFkjqkARpRo7PRTX1J/bMaElrEoO5XJQgvEO+yxZhOm?= =?us-ascii?q?T9GhWGpjS9Us35kRbkw7F9jw1kmfjRrvOKcckvmwPLJx6rjVjyruKsw7x3uUjP?= =?us-ascii?q?Bw3WljedNGMCidvoA68gHSA4DTlEDJxbmnf+IQ0XyU+Q=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BWBQAjkQ1gh07ASNliHgEBCxIMQIFRg?= =?us-ascii?q?wptMi+EQJEqCCUDg32GMoYoi2oLAQMBDSwBAgQBAYRKAoF4Ah0HAQQ0EwIQAQE?= =?us-ascii?q?FAQEBAgEDAwQBEwEBAQwNCQgphWgMQwEQAYFjKQGDEgEEASMdAQERJgEECwsaA?= =?us-ascii?q?iYCAlcGDQgBAYMiglUBAw4ksld2gTKDBQEBBoJMgXkfLCJNgTsJgQ4qAY09Jg+?= =?us-ascii?q?BTT+BOAyCOC4+hD6DGYJggkp6CU1cToEIt0FlLAeBaIESgR0LmjsFCh+TBw0Gj?= =?us-ascii?q?16xMYRsgW2BejMaJE+CaVAZDY4hGoQKiiZAMzcCBgoBAQMJWQEBggGJOQEB?= X-IPAS-Result: =?us-ascii?q?A0BWBQAjkQ1gh07ASNliHgEBCxIMQIFRgwptMi+EQJEqCCU?= =?us-ascii?q?Dg32GMoYoi2oLAQMBDSwBAgQBAYRKAoF4Ah0HAQQ0EwIQAQEFAQEBAgEDAwQBE?= =?us-ascii?q?wEBAQwNCQgphWgMQwEQAYFjKQGDEgEEASMdAQERJgEECwsaAiYCAlcGDQgBAYM?= =?us-ascii?q?iglUBAw4ksld2gTKDBQEBBoJMgXkfLCJNgTsJgQ4qAY09Jg+BTT+BOAyCOC4+h?= =?us-ascii?q?D6DGYJggkp6CU1cToEIt0FlLAeBaIESgR0LmjsFCh+TBw0Gj16xMYRsgW2BejM?= =?us-ascii?q?aJE+CaVAZDY4hGoQKiiZAMzcCBgoBAQMJWQEBggGJOQEB?= X-IronPort-AV: E=Sophos;i="5.79,371,1602540000"; d="scan'208";a="370944049" X-MGA-submission: =?us-ascii?q?MDHaMnyb5fkHDQ/4wOm9MsQNEWp9M9b6OPn5hI?= =?us-ascii?q?/ZKJt3gB4dwVdmqcYVAGPRIIkt083HDOOy+pjeSGI9+6F04xSKtkySeW?= =?us-ascii?q?fls/4I27n+yABkt1z8LReTI0K+ibYpWFAqRXOUYhnZX/6ivFzI4oiE6k?= =?us-ascii?q?Wx2xxY3ERve9YlclFbWt676Q=3D=3D?= Received: from mout.web.de ([217.72.192.78]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2021 16:28:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1611502098; bh=5wUx5godj4W62Dvp1gSaIQWF0VOhFxu9G/q0MYt9XR4=; h=X-UI-Sender-Class:To:References:Cc:From:Subject:Date:In-Reply-To; b=h2nDoeZw9RIxVjbWnIXq/pmGwXbE8b2AgHqNy7GIoZlp91QCDLMPjFmzBHnh1PeNk 523d2KX3DXBS9de5Yw42iVb8qFc3NNw3OfrKNuSOY+JoFEvxzPgxywxw5wGCkOHORX TUQM+sGYkQk2HSRjOsDJ8kOFvRlmsq+/xvnu6A1o= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.1.2] ([93.133.175.89]) by smtp.web.de (mrweb101 [213.165.67.124]) with ESMTPSA (Nemesis) id 0M73Jx-1lxRI43YtJ-00wmsW; Sun, 24 Jan 2021 16:28:17 +0100 To: Hendrik Boom References: <41485ac7-50cf-08fe-4206-b9f863c4d2f5@web.de> <20210124140838.hnx2eeqn7xdvq624@topoi.pooq.com> Cc: caml-list@inria.fr From: Markus Elfring Message-ID: Date: Sun, 24 Jan 2021 16:28:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <20210124140838.hnx2eeqn7xdvq624@topoi.pooq.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:3/r+5y9q2AsvMrg163FIEtsKFABhlwm+wxtEXgj5KjyJmUjtIOJ EWRgMB2I/Si5+npGhrWr6yhkExdiout6VmUp5r4KBMiFico/13QIGHnMJz17SjixETgq3bw tsGiTOroFOV9TLPHgf3HoVXooOGzATwbqMW+CLKMNkpzzYUWJa3n9OBd8FdhJGGcV3kU31X udO10RfqYZNAb9t6TZoTA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:DQEMDTnAhZE=:IHm4vz35la9+ssynxmKzzS WFiw328nXQY+BZIIxn0hFxoInLyW1pRpitEP+MqXvWTZy8tA7V4y+eo4nqCFffrrE7K7WpqYq yLQwS/TPn4Bkm7rHoqLvytjdAc4+NQM144+wBZhDwXN6tHwrW7Pj43kEAVE5Z76rI8VrnMd1W LAZ0iMIuJ5AWt2MzWP5QUYDkLITsEfHRwU3adzuvTJ1M0uSXPoYhVz5G7/iSe0kD9uKWpIgy7 ZiPlRqWlP+zT5TBcTJLf3brAJQCWjjlH/vGxqiGcRtHkrqf+Er338j1aMeRTGctnGQ1Viqv05 jRzHGa7xNV13oWlmhvJUXbO1ZBt/XyzatxIvEgOyqU5/odFPj0/X4jzjysgvbfhZahpJoFMAm WYuPmQdGCs/p+/eunR1oi3GsV4BWNm40cUTyTSKnT72DqAlRG7iRMdOzVZy233fAft3UW12tz hvuzLiK0/hVoVuhFl2DRovgUU8di5Gn61+9/NUAiHoLRK6uLSkTZccWSNk2ZPw1BSAAK5RibW z9pWLA9d9R/J3VDHofLUazEIG8i+gQugTC3QZkupZBeR6ExlicdWTi6rks5ZAHscCdakwMY+e W66XeqmM3soXWWRFVo7lF7dFQsPTDMUSTuF9LASteVjiZXRH+4+x9D2XG8KZwTXBs90RDTmWk SlknmHY32vpP0XywoDy9RtIQUQyspYQBevZTB0u+UXempYd4aI1wAfjE2jKkSKlMcmKvMWYU6 LdwQnY7q6/XX+Pd8PzjgURG5TPNRLIX+VKq8O316vewzMWvcP7sL5mXde+FuYNtBp28Q2j6oQ Chx5/uWoCVLejQMrhug0dI/7+lw8vXNVThf7qJAYmt3x7h9Lvq5v7ux7nI1aweb5D45f5XPj8 eqKMhnU5Pbdtv3WEJKow== Subject: Re: [Caml-list] Detecting missed checks for error indications in ML code Reply-To: Markus Elfring X-Loop: caml-list@inria.fr X-Sequence: 18379 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: >> I got the impression that corresponding error checks can occasionally b= e missing. >> How do you think about to detect such cases by advanced source code ana= lysis? > > Hard to do without knowing how the function encodes error information in= its > return value. For example, is it success or failure that it indicates b= y > returning the value zero? Such information should be provided for the safe application of programmin= g in interfaces, shouldn't it > A ver simple approach is to return a disjoint union -- a choice between > a valid valid or an invalid value of another type. THen, of course, the > compiler's type checker will prevent any use of the valid value without = a > check being performed. Would you like to improve pattern matching for any OCaml data structures directly after special function calls? Regards, Markus