From: Brian Hurt <bhurt@spnz.org>
To: Martin Berger <martinb@dcs.qmul.ac.uk>
Cc: Caml Mailing List <caml-list@inria.fr>
Subject: Re: [Caml-list] GC and file descriptors
Date: Wed, 19 Nov 2003 11:29:16 -0600 (CST) [thread overview]
Message-ID: <Pine.LNX.4.44.0311191124170.5009-100000@localhost.localdomain> (raw)
In-Reply-To: <3FBB5784.9040303@dcs.qmul.ac.uk>
On Wed, 19 Nov 2003, Martin Berger wrote:
> imagine having 100000 lines of code, mostly mature, and you are trying to
> track down a little bug. for that you want to see with what arguments the
> function
>
> let f m n =
> body;;
>
> is called. assume that function has the type
>
> f : int -> ( int -> A throws E ) throws E
>
> so for debugging you modify f to
>
> let f m n =
> print_debug "calling f with arguments " m n;
> body
>
> if print_debug may throw something not in E and if f is used all over
> your code, you will have make an enourmous of changes (and later revert
> them) just to get a silly little debugging mechanism going. i would hate
> having to do this. being able to switch off exception would be a great
> help in this situation.
If calling print_debug adds an error condition (i.e. can throw an
exception), then you have two choices:
1) Fix print_debug so it doesn't throw an exception,
2) Do the following instead:
let f m n =
try print_debug "calling f with arguments " m n with _ -> ();
body
I'd recommend #1 myself. Debugging code should not have any effect on the
program (otherwise, you are opening yourself up to heisenbugs, where the
program works correctly with debugging turned on, and fails with debugging
turned off).
>
> being able to switch on or off exception checking is just an instance of
> a more general phenomenon where you run different checks on your software
> independently of each other. i expect future compilers to be more flexible
> in this regard, maybe offering plug-in typing systems from untyped to
> fully fledged dependent types and proof annotations.
>
The problem with this is that then everyone immediately turns exception
checking off and the value of the feature is greatly reduced (at best).
--
"Usenet is like a herd of performing elephants with diarrhea -- massive,
difficult to redirect, awe-inspiring, entertaining, and a source of
mind-boggling amounts of excrement when you least expect it."
- Gene Spafford
Brian
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next prev parent reply other threads:[~2003-11-19 16:29 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-13 0:50 Dustin Sallings
2003-11-13 1:18 ` David Fox
2003-11-13 4:09 ` Dustin Sallings
2003-11-14 13:42 ` Damien Doligez
2003-11-14 14:57 ` Christophe Raffalli
2003-11-14 20:24 ` Dmitry Bely
2003-11-14 20:54 ` Eric Dahlman
2003-11-14 22:21 ` Brian Hurt
2003-11-14 21:36 ` John J Lee
2003-11-14 21:48 ` Brian Hurt
2003-11-15 1:47 ` Dmitry Bely
2003-11-15 2:25 ` Max Kirillov
2003-11-15 2:49 ` Mike Furr
2003-11-16 4:09 ` [Caml-list] Bugs from ignoring errors from close (was Re: GC and file..) Tim Freeman
2003-11-15 2:58 ` [Caml-list] GC and file descriptors David Brown
2003-11-17 14:19 ` Damien Doligez
2003-11-17 18:18 ` skaller
2003-11-14 18:35 ` Dustin Sallings
2003-11-15 14:16 ` skaller
2003-11-15 15:56 ` Ville-Pertti Keinonen
2003-11-15 17:30 ` skaller
2003-11-15 20:31 ` Martin Berger
2003-11-16 19:19 ` Brian Hurt
2003-11-17 18:15 ` skaller
2003-11-17 19:26 ` Aleksey Nogin
2003-11-18 13:49 ` skaller
2003-11-18 17:51 ` Dustin Sallings
2003-11-18 20:17 ` Aleksey Nogin
2003-11-20 7:36 ` Florian Hars
2003-11-17 21:20 ` Brian Hurt
2003-11-17 23:02 ` John J Lee
2003-11-18 12:05 ` Ville-Pertti Keinonen
2003-11-18 15:19 ` skaller
2003-11-18 18:10 ` John J Lee
2003-11-18 17:55 ` skaller
2003-11-18 20:02 ` Ville-Pertti Keinonen
2003-11-18 21:20 ` John J Lee
2003-11-19 12:25 ` skaller
2003-11-19 13:55 ` Ville-Pertti Keinonen
2003-11-19 14:26 ` Samuel Lacas
2003-11-19 14:47 ` skaller
2003-11-18 15:28 ` skaller
2003-11-18 18:00 ` John J Lee
2003-11-18 22:28 ` Brian Hurt
2003-11-18 23:07 ` John J Lee
2003-11-18 23:22 ` Benjamin Geer
2003-11-19 1:49 ` Martin Berger
2003-11-19 3:57 ` Dustin Sallings
2003-11-19 13:35 ` skaller
2003-11-19 13:00 ` skaller
2003-11-19 13:02 ` skaller
2003-11-19 17:36 ` Brian Hurt
2003-11-20 5:14 ` skaller
2003-11-20 7:37 ` David Brown
2003-11-18 15:12 ` skaller
2003-11-18 16:49 ` Martin Berger
2003-11-18 17:46 ` skaller
2003-11-19 1:33 ` Martin Berger
2003-11-19 3:19 ` Design by Contract, was " Brian Hurt
2003-11-19 2:57 ` Jacques Carette
2003-11-19 13:27 ` skaller
2003-11-19 14:41 ` Martin Berger
2003-11-19 16:54 ` Richard Jones
2003-11-19 17:18 ` Damien Doligez
2003-11-19 21:45 ` Richard Jones
2003-11-19 23:09 ` Benjamin Geer
2003-11-20 0:50 ` Nicolas Cannasse
2003-11-20 9:42 ` Benjamin Geer
2003-11-19 18:03 ` Martin Berger
2003-11-18 18:26 ` Benjamin Geer
2003-11-18 19:24 ` Xavier Leroy
2003-11-18 23:49 ` Benjamin Geer
2003-11-19 1:36 ` Martin Berger
2003-11-19 2:28 ` Nicolas Cannasse
2003-11-19 3:26 ` Brian Hurt
2003-11-19 11:44 ` Martin Berger
2003-11-19 17:29 ` Brian Hurt [this message]
2003-11-20 5:17 ` skaller
2003-11-20 16:13 ` Brian Hurt
2003-11-19 13:33 ` skaller
2003-11-19 17:01 ` Richard Jones
2003-11-22 2:39 ` [Caml-list] AutoMLI (Was: GC and file descriptors) Jim
2003-11-19 17:43 ` [Caml-list] GC and file descriptors Brian Hurt
2003-11-20 5:05 ` skaller
2003-11-19 1:33 ` Martin Berger
2003-11-19 2:47 ` Benjamin Geer
2003-11-18 22:23 ` Brian Hurt
2003-11-19 13:00 ` skaller
2003-11-17 22:37 ` OCaml popularity [was: Re: [Caml-list] GC and file...] John J Lee
2003-11-18 1:02 ` [Caml-list] Re: GC and file descriptors Jed Davis
2003-11-13 1:19 ` [Caml-list] " Nicolas George
[not found] ` <87smkstkhg.fsf@igloo.phubuh.org>
[not found] ` <347A7A46-1612-11D8-8F93-000393CFE6B8@spy.net>
2003-11-13 20:18 ` Mikael Brockman
[not found] <20031118232227.GA8437@swordfish>
[not found] ` <Pine.LNX.4.44.0311182039440.5009-100000@localhost.localdomain>
2003-11-20 6:35 ` Matt Gushee
2003-11-21 16:44 ` skaller
2003-11-21 22:17 Gregory Morrisett
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.44.0311191124170.5009-100000@localhost.localdomain \
--to=bhurt@spnz.org \
--cc=caml-list@inria.fr \
--cc=martinb@dcs.qmul.ac.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox