From: Florent Monnier <monnier.florent@gmail.com>
To: "caml-list" <caml-list@yquem.inria.fr>
Subject: Re: [Caml-list] exception not registered.Abandon
Date: Sat, 13 Mar 2010 20:33:33 +0100 [thread overview]
Message-ID: <201003132033.33849.monnier.florent@gmail.com> (raw)
In-Reply-To: <20100313185537.GA27381@annexia.org>
Le samedi 13 mars 2010 19:55:37, vous avez écrit :
> On Sat, Mar 13, 2010 at 07:36:16PM +0100, Florent Monnier wrote:
> > > > I have compiled a program using the native compiler, then when I run
> > > > the executable I get this error message:
> > > >
> > > > exception not registered.Abandon
> > > >
> > > > Searching Google I don't find anything about this error message.
> > > > How should I interpret it?
> > >
> > > Is the program linked to C code (apart from stdlib, I mean)?
> >
> > Yes it is.
> > It's linked with OpenGL (only the GL lib, no GLU or anything esle) and
> > SDL (through ocaml-sdl)
> >
> > It's a program that I try to switch the windowing part from Glut to SDL.
> > With Glut it works alright.
> >
> > Also I've just seen that running in the interpreted mode instead of
> > native code the program does run without any problem.
> >
> > Do these additional informations give you any clue?
>
> As Adrian said, it's from ocaml-SDL. It's from one of several
> functions which look like this:
>
> static void
> sdlloader_raise_exception (char *msg)
> {
> static value *loader_exn = NULL;
> if(! loader_exn){
> loader_exn = caml_named_value("SDLloader_exception");
> if(! loader_exn) {
> fprintf(stderr, "exception not registered.");
> abort();
> }
> }
> raise_with_string(*loader_exn, msg);
> }
>
> Essentially you have to register OCaml exceptions before you can call
> them from C, so it sounds like you're not calling some sort of SDL
> "init" function (or calling it too late in your program). Or possibly
> there is a bug in the ocaml-SDL bindings.
In the source of the sdlvideo.ml module there is:
exception Video_exn of string
let _ =
Callback.register_exception "SDLvideo2_exception" (Video_exn "")
it seems for some reason that this code is not executed, because if I add at
the beginning of my program (not in sdl source):
let () =
(* notice the exception is prefixed with the name of the sdl module *)
Callback.register_exception "SDLvideo2_exception" (Sdlvideo.Video_exn "");
;;
then I get the correct exception.
I don't understand what the bug is.
next prev parent reply other threads:[~2010-03-13 19:29 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-13 16:42 Florent Monnier
2010-03-13 17:38 ` [Caml-list] " Richard Jones
2010-03-13 18:36 ` Florent Monnier
2010-03-13 18:50 ` Adrien
2010-03-13 18:55 ` Richard Jones
2010-03-13 18:57 ` Richard Jones
2010-03-13 19:33 ` Florent Monnier [this message]
2010-03-15 9:13 ` Olivier Andrieu
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=201003132033.33849.monnier.florent@gmail.com \
--to=monnier.florent@gmail.com \
--cc=caml-list@yquem.inria.fr \
/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