Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Problem using modules like "Str", "Graphics" under Windows
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-05-08 (15:07)
From: Richard Jones <rich@a...>
Subject: Re: [Caml-list] Problem using modules like "Str", "Graphics" under Windows
On Sat, May 08, 2004 at 04:53:12PM +0200, Henning Sudbrock wrote:
> Hello,
> I am trying to use the module "Str" with ocaml 3.07+2. 
> My problem is that when I enter a command like "Str.split;;" in the
> ocaml-toplevel, I get the answer "Reference to undefined global 'Str' ".
> Also when I try to open the module via "open Str;;" first, I get the
> same answer when typing "split;;" afterwards.

Parts of the "standard library" aren't actually included in stdlib.cma,
which is the standard library file which every OCaml program opens
by default.  These include:

* unix
* str
* dynlink
* graphics

For these specific modules, you have to actually load the library by
hand (or link to it explicitly, if you're compiling an executable).
In your case you should do:

        Objective Caml version 3.07+2

# #load "str.cma";;
# Str.split;;
- : Str.regexp -> string -> string list = <fun>

(NB. the #load command).

OK, so second question is why does 'open Str' succeed, even though
OCaml won't be able to find that module if it wasn't loaded?  This is
trickier to answer, but basically what happens is that 'open Str'
looks at and loads the interface definition file ('str.cmi' in this
case).  But it doesn't check that the module has actually been loaded.

BTW, there is an ocaml-beginners list on Yahoo Groups for these sorts
of questions.


Richard Jones.
Merjis Ltd. - improving website return on investment
MAKE+ is a sane replacement for GNU autoconf/automake. One script compiles,
RPMs, pkgs etc. Linux, BSD, Solaris.

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: