caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Daniel Bünzli" <daniel.buenzli@erratique.ch>
To: Jean Krivine <jean.krivine@gmail.com>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Array.make exception and parser
Date: Tue, 4 Jan 2011 18:22:54 +0100	[thread overview]
Message-ID: <AANLkTi=RS69aRMoSR-sr3sPCy+4=2+YADUn358Pas4dQ@mail.gmail.com> (raw)
In-Reply-To: <AANLkTi=ggq4RO5vtCA3c4ycbyUQC1Kpc0Qa-9AVhPM3n@mail.gmail.com>

> So the bug is not really mine.

Of course it's not.

> An easy "patch" would be to define a Parsing.Overflow exception to throw
> whenever the function grow_stack() fails...

If you mean catching Invalid_argument and raising Overflow then no.
What needs to be done is to raise Overflow when you are about to call
Array.make with a a value greater than Sys.max_array_length.

Again, Invalid_argument exceptions are programming errors (here a
programming error of the Parsing module).

Code catching Invalid_argument to implement an algorithm is unsound.
The only place where you should catch Invalid_argument is at the
toplevel of your program to report the stack trace. One obvious way of
understanding that is to see what is raised on out of bounds access
and consider the -unsafe compiler option.

Daniel

P.S. Btw if you want that to be fixed you should file a bug report.

  reply	other threads:[~2011-01-04 17:23 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-04 13:41 Jean Krivine
2011-01-04 14:56 ` Daniel Bünzli
2011-01-04 14:57   ` Daniel Bünzli
2011-01-04 14:57 ` Török Edwin
2011-01-04 15:14   ` Jean Krivine
2011-01-04 15:31     ` Daniel Bünzli
2011-01-04 16:22       ` Yitzhak Mandelbaum
2011-01-04 16:42         ` Daniel Bünzli
2011-01-04 17:03           ` Yitzhak Mandelbaum
2011-01-04 17:04       ` Jean Krivine
2011-01-04 17:22         ` Daniel Bünzli [this message]
2011-01-04 15:38     ` bluestorm
2011-01-04 17:43       ` Jean Krivine
     [not found]       ` <1125074892.441923.1294163043602.JavaMail.root@zmbs2.inria.fr>
2011-01-04 17:53         ` Francois Pottier
     [not found]     ` <1259991756.440008.1294155536392.JavaMail.root@zmbs2.inria.fr>
2011-01-04 17:45       ` Francois Pottier
2011-01-04 19:30         ` Daniel Bünzli
2011-01-04 19:52           ` Yitzhak Mandelbaum
2011-01-04 20:36             ` Daniel Bünzli
     [not found]         ` <1263353434.442766.1294169448342.JavaMail.root@zmbs2.inria.fr>
2011-01-04 20:31           ` Francois Pottier
2011-01-04 20:40             ` Lukasz Stafiniak
2011-01-04 21:03               ` Török Edwin
2011-01-05  3:24                 ` Yitzhak Mandelbaum
2011-01-05 14:12             ` Boris Yakobowski
2011-01-05 21:12             ` Boris Yakobowski
2011-01-05 13:37 ` Xavier Leroy
2011-01-05 13:46   ` Jean Krivine

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='AANLkTi=RS69aRMoSR-sr3sPCy+4=2+YADUn358Pas4dQ@mail.gmail.com' \
    --to=daniel.buenzli@erratique.ch \
    --cc=caml-list@inria.fr \
    --cc=jean.krivine@gmail.com \
    /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;
as well as URLs for NNTP newsgroup(s).