caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Abdallah Saffidine <abdallah.saffidine@gmail.com>
To: oliver <oliver@first.in-berlin.de>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Fatal error: exception Pcre.Error(0)
Date: Thu, 22 Dec 2011 20:35:10 -0700	[thread overview]
Message-ID: <CALx9x4cOCAdmrdMjcpXEmxDfn=RrQn+_r6Fg7P7engUdGGTiEQ@mail.gmail.com> (raw)
In-Reply-To: <20111223001358.GA12304@siouxsie>

[-- Attachment #1: Type: text/plain, Size: 2540 bytes --]

2011/12/22 oliver <oliver@first.in-berlin.de>

> On Thu, Dec 22, 2011 at 11:35:41PM +0100, Stéphane Glondu wrote:
> > Le 22/12/2011 22:39, oliver a écrit :
> > >>> where is there a documentation about these kind of errors from
> pcre-lib?
> > >>> I'm using Pcre.pmatch, which should just give me a bool.
> > >>
> > >> See pcre.mli. Pcre.Error(0) is the raw representation of Partial (i.e.
> > >> string only matched the pattern partially).
> > > [...]
> > >
> > > In my pcre.mli this error is not mentioned.
> > >
> > > There is a
> > >
> > >
> > > type error =
> > >   | Partial  (** String only matched the pattern partially *)
> >       ^^^^^^^
> >
> > There.
> >
> > > Which also mentioned a partial-match error.
> > > But Pcre.Error(0) looks somehow cryptical
> > > and strange to me.
> >
> > Pcre.Error(0) is cryptical but not strange: it is the same as
> > Pcre.Error(Pcre.Partial). Whatever gives you the error message
> > mentioning Pcre.Error(0) does not have access to type information, so it
> > cannot give you more than Pcre.Error(0). You didn't tell where the error
> > message came from.
>
>
> So, (0) stands for the first entry in the list I assume.
> BadPartial-exception then would be Pcre.Error(1). ?
>
> That there is only returned an int, instead of the type information,
> where does that come from?
> Why is that not available?
> Does it coming from working together with the *.c stuff?
>

In OCaml no type information is preserved at runtime and the internal
representation of an algebraic data type constructor without body like
Partial, BadPartial, Nil, Empty etc. is the same as that of an int, the
specific int corresponding to the constructor depends on the position of
the constructor in the type declaration as you guessed.

The reason for lack of runtime type information is that the typechecker
ensures at compile time that you're program is well behaved with regard to
types, so there is no need to keep type information at runtime. Keeping
type information at runtime would result in a higher memory footprint and
as a result possibly worse performance.

Another way to look at it is : if it was possible to check at compile time
that all array access are within bounds, then you would not need costly
runtime checks (or risking segfaults), but this is a very hard problem. For
the types on the other hand, the situation is easier and checks can be made
at compile time, so there is no need for runtime type information.

Ciao,

Abdallah

[-- Attachment #2: Type: text/html, Size: 3073 bytes --]

  reply	other threads:[~2011-12-23  3:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-22 18:39 oliver
2011-12-22 18:50 ` oliver
2011-12-22 19:53 ` Stéphane Glondu
2011-12-22 21:39   ` oliver
2011-12-22 22:35     ` Stéphane Glondu
2011-12-23  0:13       ` oliver
2011-12-23  3:35         ` Abdallah Saffidine [this message]
2011-12-23  6:29         ` Stéphane Glondu
2011-12-23 12:59           ` Pcre-Ocaml-docs (Re: [Caml-list] Fatal error: exception Pcre.Error(0)) oliver
2011-12-23  0:45       ` [Caml-list] Fatal error: exception Pcre.Error(0) oliver
2011-12-23  1:21         ` oliver
2011-12-23  2:09           ` Markus Mottl

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='CALx9x4cOCAdmrdMjcpXEmxDfn=RrQn+_r6Fg7P7engUdGGTiEQ@mail.gmail.com' \
    --to=abdallah.saffidine@gmail.com \
    --cc=caml-list@inria.fr \
    --cc=oliver@first.in-berlin.de \
    /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).