From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 439E5BC57 for ; Wed, 26 May 2010 18:15:06 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuMCAKbl/EtKfVK2imdsb2JhbACSDIwECBUBAQETDBgisXKCAYVFLohPAQEDBYUOBA X-IronPort-AV: E=Sophos;i="4.53,304,1272837600"; d="scan'208";a="60077544" Received: from mail-wy0-f182.google.com ([74.125.82.182]) by mail1-smtp-roc.national.inria.fr with ESMTP; 26 May 2010 18:15:06 +0200 Received: by wyj26 with SMTP id 26so1398180wyj.27 for ; Wed, 26 May 2010 09:15:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=1uoFGwjXD146S6a0X2JXMfcAVNG0nF6CD8gUwot2aZo=; b=HSe1F0QYyCbI06j89nUtb8DJ5gzJNXa3Ur3Q4kfuKr/J/tAWbMUgdG24SS9+7coS/y NG6L6uNYUED2djPV8/Q3tJIucGd+dbNnKUx+IN6YJ6cFd60oe4XXis/63ET0Y/rlKKML wcf4nS5JWJxHufFxlYT5jWH9C0IYl0SZkysrw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=hhmuHh7yh/JPJphNOqlZCtwLl7Xb3fBOLo4nU+nAKEBnhaxLtSTiWj7h6bTR08y887 jleTYZfKTaE2DUmLR/U6IzSoWaQ669P0E2YO1arwcwolZB92uJXNsxiEUx+uDeeEhJlJ 1govPy1sarKC+0GyWZohibqrXv697NClo211Q= MIME-Version: 1.0 Received: by 10.216.88.211 with SMTP id a61mr5518583wef.65.1274890505227; Wed, 26 May 2010 09:15:05 -0700 (PDT) Received: by 10.216.0.71 with HTTP; Wed, 26 May 2010 09:15:05 -0700 (PDT) Date: Wed, 26 May 2010 18:15:05 +0200 Message-ID: Subject: Static exception analysis or alternative to using exceptions From: Hans Ole Rafaelsen To: caml-list@inria.fr Content-Type: multipart/alternative; boundary=0016e6d99a45b1141204878193da X-Spam: no; 0.00; rafaelsen:01 uncaught:01 ocamlexc:01 ocamlexc:01 ocaml:01 monads:01 rafaelsen:01 uncaught:01 ocaml:01 monads:01 exception:01 exception:01 exceptions:01 exceptions:01 caml:02 --0016e6d99a45b1141204878193da Content-Type: text/plain; charset=ISO-8859-1 Hi, when running server software, it is quite frustrating when the program crashes due to an uncaught exception. I see there was some attempts on doing static analysis of the exception flow in programs around 10 years ago (such as ttp://pauillac.inria.fr/caml/ocamlexc/ocamlexc.htm), but they did not seem to be complete and now seem to be dropped. Is there some technical reason for not having static exception analyses, or can we hope that some day in the future, Ocaml will support static exception analysis? What experience does people have to using alternatives to exceptions, such as option types or exception monads? Does use of third part libraries that still throws exceptions make such approaches hard to use? Performance wise it seems to be comparable to catching exceptions or matching for options, so I guess the difference be might a question of programming style? Thanks, Hans Ole Rafaelsen --0016e6d99a45b1141204878193da Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi,

when running server software, it is quite frustrating when the p= rogram crashes due to an uncaught exception. I see there was some attempts = on doing static analysis of the exception flow in programs around 10 years = ago (such as ttp://pauillac.inria.fr/caml/ocamlexc/ocamlexc.htm), but they did not= seem to be complete and now seem to be dropped. Is there some technical re= ason for not having static exception analyses, or can we hope that some day= in the future, Ocaml will support static exception analysis?

What experience does people have to using alternatives to exceptions, s= uch as option types or exception monads? Does use of third part libraries t= hat still throws exceptions make such approaches hard to use? Performance w= ise it seems to be comparable to catching exceptions or matching for option= s, so I guess the difference be might a question of programming style?


Thanks,

Hans Ole Rafaelsen
--0016e6d99a45b1141204878193da--