<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2003/10/c31697388e2560e2b0cff458c809794a"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-10-16T09:18:40"
  subject="Re: [Caml-list] Initialization order bug"
  prev="2003/10/90e8b164cd4c59cbdc4d97b85ddea4e6"
  next="2003/10/5f75830078cd0e1672a3fa35afaf10d4"
  prev-in-thread="2003/10/e8b532a1e5370741fb38319486356a7f"
  prev-thread="2003/10/3df891effe980ef58591b1b70f0a4bc3"
  next-thread="2003/10/3514d436ed9f160807888aa6f0870822"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] &quot;Error while building custom runtime system&quot;">
<msg 
  url="2003/10/c1af550ea8aa0a1e792263146a015857"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-10-15T09:36:16"
  subject="[Caml-list] &quot;Error while building custom runtime system&quot;">
<msg 
  url="2003/10/e8b532a1e5370741fb38319486356a7f"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-10-15T16:57:25"
  subject="[Caml-list] Initialization order bug">
<msg 
  url="2003/10/c31697388e2560e2b0cff458c809794a"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-10-16T09:18:40"
  subject="Re: [Caml-list] Initialization order bug">
</msg>
</msg>
</msg>
</thread>

<contents>
Olivier Andrieu provided the right answer to this:

&gt; This sort of things happen when :
&gt;  - you have lots of externals in your module (here Perl)
&gt;  - the module runs some initialization-time code that doesn't appear
&gt;    in the interface
&gt;  - the only values referenced by other values are externals
&gt; 
&gt; then the module is in fact not linked in : it's not needed because the
&gt; other modules directly call the external functions. The problem is
&gt; that often these externals do not work without the proper
&gt; initialization.
&gt; 
&gt; Some workarounds are to :
&gt;  - make the initialization code appear in the .mli, through a init
&gt;    function for instance
&gt;  - use `val' instead of `external' in the .mli
&gt;  - use -linkall when linking the program

It works now, but I still think this is a bug.

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 &amp; 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

</contents>

</message>

