From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p3CIJt0q002730 for ; Tue, 12 Apr 2011 20:19:56 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ar4BALqWpE0SCRkNm2dsb2JhbACESpQNjSkUAQEBAQEICQsJFCWxV4hHiG2BKYNNeAQ X-IronPort-AV: E=Sophos;i="4.64,197,1301868000"; d="scan'208";a="96810411" Received: from dmz-mailsec-scanner-2.mit.edu ([18.9.25.13]) by mail2-smtp-roc.national.inria.fr with ESMTP; 12 Apr 2011 20:19:50 +0200 X-AuditID: 1209190d-b7c48ae000004826-4b-4da497bd2738 Received: from mailhub-auth-4.mit.edu ( [18.7.62.39]) by dmz-mailsec-scanner-2.mit.edu (Symantec Messaging Gateway) with SMTP id 93.B2.18470.DB794AD4; Tue, 12 Apr 2011 14:19:41 -0400 (EDT) Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) by mailhub-auth-4.mit.edu (8.13.8/8.9.2) with ESMTP id p3CIJmHe008449 for ; Tue, 12 Apr 2011 14:19:49 -0400 Received: from localhost (CONTENTS-VNDER-PRESSVRE.MIT.EDU [18.9.64.11]) (authenticated bits=0) (User authenticated as jfc@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id p3CIJlw8019462 for ; Tue, 12 Apr 2011 14:19:48 -0400 (EDT) Message-Id: <201104121819.p3CIJlw8019462@outgoing.mit.edu> To: caml-list@inria.fr X-Mailer: MH-E 8.2; nmh 1.3; GNU Emacs 23.1.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Date: Tue, 12 Apr 2011 14:19:47 -0400 From: John Carr X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGIsWRmVeSWpSXmKPExsUixG6nrrt3+hJfg/XruS0+7djA4sDoMenF IZYAxigum5TUnMyy1CJ9uwSujJ7Zz5gK9rFUbN66jbGB8RxzFyMnh4SAicTRF6eZIGwxiQv3 1rOB2EIC+xglTm0FinMB2ScZJXo2LWGFcGYySVxb2skKUsUrYCUxcVY7I4gtAtQ9a/4VFhBb WEBLov3OAlaIqboSHxfNZIeoF5Q4OfMJWA2zgLrEn3mXmCFsbYllC1+D2SwCqhLfFq4A62UT kJV41N7FOIGRbxaS9llI2mchaV/AyLyKUTYlt0o3NzEzpzg1Wbc4OTEvL7VI10gvN7NELzWl dBMjKMg4JXl3ML47qHSIUYCDUYmHdy/3Yl8h1sSy4srcQ4ySHExKorwFwBAV4kvKT6nMSCzO iC8qzUktPsQowcGsJMJ7ogoox5uSWFmVWpQPk5LmYFES550pqe4rJJCeWJKanZpakFoEk5Xh 4FCS4P03GahRsCg1PbUiLTOnBCHNxMEJMpwHaHgRyGLe4oLE3OLMdIj8KUZdjv9bDu1jFGLJ y89LlRLnvQIySACkKKM0D24OLDm8YhQHekuYdwdIFQ8wscBNegW0hAloSVQM2JKSRISUVANj 9wHV6XOVA1emCNfrVsqpn7lxgOtjtlp4jqJgT9675727vLMVHz4ym7JL5MqnS5dnPM/SeSHm +PzTv960mLfnrB3K9/XNiqyU0n7NYWC14UbcuaVdck/kwi8rzdhSIrDntMGcy/3KL0zX55aI H2y3e7HbtuhQ1NLHhqqnGSe1cnRobj7vYS+qxFKckWioxVxUnAgATzOQk+kCAAA= Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id p3CIJt0q002730 Subject: [Caml-list] What is the safe subset of OCaml? What must be removed from OCaml to get a safe subset of the language? There is a proof that a smaller language is safe (Rémy 2000). I don't know the full difference between that smaller language and the one we have today. In the standard library, Obj, Marshal, and everything with unsafe in the name are unsafe. External functions are unsafe. Programs may overflow the system stack. Am I missing anything? My recollection from a previous discussion is that polymorphic exceptions are safe in programs but may crash the pretty printer in the toplevel.