From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id UAA00168; Wed, 7 Nov 2001 20:15:46 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id UAA00375 for ; Wed, 7 Nov 2001 20:15:44 +0100 (MET) Received: from smtp2.cswv.com (smtp2.cswv.com [4.17.129.20]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id fA7JFhf19002 for ; Wed, 7 Nov 2001 20:15:43 +0100 (MET) Received: from smtp2.cswv.com ([10.2.3.6]) by smtp2.cswv.com with Microsoft SMTPSVC(5.5.1877.197.19); Wed, 7 Nov 2001 14:15:37 -0500 Received: FROM exchange1.cswv.com BY smtp2.cswv.com ; Wed Nov 07 14:15:36 2001 -0500 Received: by exchange1.cswv.com with Internet Mail Service (5.5.2653.19) id ; Wed, 7 Nov 2001 14:19:18 -0500 Message-ID: From: "Krishnaswami, Neel" To: "'caml-list@inria.fr'" Subject: [Caml-list] Re: Debuggers (was Jihad) Date: Wed, 7 Nov 2001 14:19:17 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Bauer, Robert [mailto:rbauer@rational.com] wrote: > > Case in point - debugging; one advantage of the imperative paradigm > is that being based on turing machines, it provides (indeed requires) > explicit notions of state - this makes debugging easier - the ocaml > debugger is not very modern with respect debuggers for imperative > languages - even though it is leaps and bounds better than anything > available for say, haskell. I agree with some of the specific details in support of this claim, but disagree with the claim itself. Ocaml's debugger is in one respect extremely advanced: it is a reversible debugger, which puts it way ahead of most languages' debuggers, imperative or not. It is in one other respect inferior to common debuggers: you can't set conditional breakpoints (aka watchpoints) in it. I don't think that this is due to any intrinsic problem caused by Caml's functional nature, though. After all, Smalltalk and Lisp are famous for providing the ultimate in debugging environments, and both of them have higher-order functions and offer the debugger vastly less in the way of reliable type constraints than Caml does. I think (as confidently as I can without reading the source :) that it would be relatively straightforward to add that to camldebug. However, I won't add it mostly because I don't use debuggers when I have an interactive prompt available (such as the ocaml program provides), because with a toplevel it's easier to write small functions, test them right there, and compose them incrementally. -- Neel Krishnaswami neelk@cswcasa.com ------------------- Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr