From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: weis Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id JAA20211 for caml-redistribution; Mon, 12 May 1997 09:11:03 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id RAA09463 for ; Sun, 11 May 1997 17:53:36 +0200 (MET DST) Received: from plg.uwaterloo.ca (dmason@plg.uwaterloo.ca [129.97.140.10]) by nez-perce.inria.fr (8.8.5/8.7.3) with ESMTP id RAA06977 for ; Sun, 11 May 1997 17:53:34 +0200 (MET DST) Received: (from dmason@localhost) by plg.uwaterloo.ca (8.8.5/8.8.5) id LAA26351; Sun, 11 May 1997 11:53:32 -0400 (EDT) Date: Sun, 11 May 1997 11:53:32 -0400 (EDT) From: Dave Mason Message-Id: <199705111553.LAA26351@plg.uwaterloo.ca> To: caml-list@inria.fr Subject: Re: stderr In-Reply-To: <199705061037.MAA27817@arthur.u-strasbg.fr> References: <199705061037.MAA27817@arthur.u-strasbg.fr> X-Face: %Q_F^9R-:'3MM7eZ6@E.x@f\*bgatzGv-8d%I~L[p^.F)3QF{kq\UTsu|e#?)3FPwJNvPPB !s*He|-*M^p*~bh"Nywm5NLL\\Rl3r(hWHY*F:$/RdKV*bS";n&#\Ov@*=]mu\}6tP > Bonjour, > > David Monniaux writes: > > Bonjour, > > > > deux petites remarques en passant: > > toujours en passant ... > > > Par ailleurs, il arrive quelquefois que l'on fasse volontairement des > > pattern-matching incomplets, parce que le programme est tel que les cas > > non fournis ne peuvent arriver. ocamlc produit une warning dans ce cas, ce > > qui d'ailleurs aide largement a eviter des erreurs de programmation. > > Le probleme est que lorsque l'on utilise cette facilite de "warnings" pour > > detecter des cas "oublies", on est "parasite" par les pattern-matching > > incomplets tout a fait normaux que l'on a laisses. De meme que certains > > dans de telles circonstances, j'utilise : > > let matche_A_et_B_seulement_alors_qu'il_y'en_a_plein_d'autres = > function > A -> ... > | B -> ... > | _ -> failwith "pas possible d'avoir autre chose qu'A ou B ici" > > parce que : > 1) on ne sait jamais (mais c'est vrai qu'il y aurait de toute facon > une exception Match_failure). > 2) c'est plus lisible : on peut ecrire explicitement dans le message > que l'on sait qu'ici on obtiendra jamais les autres cas, voire > expliquer pourquoi dans un commentaire. > > Mais par ailleurs, c'est vrai qu'un certain support du compilateur pour > produire des messages d'erreur plus informatifs serait le bienvenu, je pense > par exemple a une nouvelle primitive [assert] qui eviterait d'ecrire des > "assert" verbeux a la main (du type [assert (a < 100) "a < 100"]), et qui > renvoierait la position de l'erreur dans le source. > > > [English: David suggested that the warning about missing cases in pattern- > matching should be disabled using some sort of #pragma. I argue that it is > better to use the anonymous binding _ as the last case, with an > appropriate error message or comment.] > > > -- Christian >