Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] "Error while building custom runtime system"
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Richard Jones <rich@a...>
Subject: [Caml-list] Initialization order bug
Related to the above issue is another strange bug in initialization order.

I have two libraries called:

	Perl
	  ^
	  |-------\
	  |	  | uses
	  |	Pl_LWP_UserAgent
	  |
	  | uses
	  |
	Test

But in this scenario, Perl is not initialized before Test starts
running (and hence the program crashes).

If I add a false dependency so that Test uses Pl_LWP_UserAgent, then
everything works (Perl is initialized OK before use).

Unfortunately this bug defies creating a minimal example, but if you
download:

http://www.annexia.org/tmp/perl4caml-0.3.2.tar.gz

then look at the top of examples/test.ml. Try running with and
without the fake 'let f = Pl_LWP_UserAgent.may' command at the
top of the file.

Without & it segfaults because Perl is never initialized before
being called.

With & it works OK.

The two other example programs already require one or other of the
Pl_* modules, so they work OK.

This is OCaml 3.07 from Debian/unstable.

Rich.

-- 
Richard Jones. http://www.annexia.org/ http://freshmeat.net/users/rwmj
Merjis Ltd. http://www.merjis.com/ - all your business data are belong to you.
MONOLITH is an advanced framework for writing web applications in C, easier
than using Perl & Java, much faster and smaller, reusable widget-based arch,
database-backed, discussion, chat, calendaring:
http://www.annexia.org/freeware/monolith/

-------------------
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