Docs GODI Archive
Projects Blog Link DB

Look up function:

(e.g. "List.find" or "keysym")
More options

GODI - The source code Objective Caml distribution

GODI provides an advanced programming environment for the Objective Caml (O'Caml) language.

From INRIA (who created O'Caml) you can get the O'Caml compiler and runtime system, but this is usually not enough to develop applications. You also need libraries, and there are many developers all over the world providing them; you can go and pick them up. But it is a lot of work to build and install them.

GODI is a system that simplifies this task: It is a framework that automatically builds the O'Caml core system, and additionally installs a growing number of pre-packaged libraries. For a number of reasons GODI is a source-code based system, and there are no precompiled libraries, but it makes it very simple for everybody to compile them.

GODI is available for O'Caml-3.09 and 3.10. It runs on Linux, Solaris, FreeBSD, NetBSD, Windows (Cygwin and MinGW), HP-UX, MacOS X.

Advantages of using GODI:

  • Automatic installation of new libraries: GODI knows where a library can be downloaded, which prerequisites are needed to build it, and which commands must be invoked to compile and install it
  • Complete package management of the installation: A library is installed as a package (a managed set of files), so it is possible to remove it later without any hassle.
  • GODI implements the necessary logic to upgrade installations: Because of the way O'Caml works, all dependent libraries must be recompiled if a library is upgraded to a newer version. GODI automates this process.
  • Integration with the operating system: If additional C libraries are needed to build an O'Caml library, and the operating system includes them, they will usually be automatically found and used. Non-standard locations can be configured (there is only one configuration file for the whole installation).
  • GODI has a menu-based user interface that makes it simple to use even for beginners.
  • GODI tries to standardize the directory layout of library installations, so it becomes simpler to find files of interest.

How to install GODI

There are usually five steps:
  1. Download the GODI RocketBoost tarball and unpack it with tar.
  2. Now follow the instructions of the README file in the tarball (here the compact version): Start the first stage of the bootstrap process
    ./bootstrap --prefix /prefix/path
    
    This will usually install the latest officially supported O'Caml version. You can select a different version with the --section parameter, e.g.
    ./bootstrap --prefix /prefix/path --section 3.09
    
    For Windows, please read the special instructions in README!
  3. Extend PATH:
    PATH=/prefix/path/bin:/prefix/path/sbin:$PATH
    export PATH
    
  4. Start the second stage of the bootstrap process
    ./bootstrap_stage2
    
  5. Start
    godi_console
    
    and select further libraries for installation. godi_console is the menu-based user interface.

After the installation

Of course, you can use godi_console at any time to add or remove libraries.

I guess that experienced people now know how to go on, and how to use the installation. For beginners, here are some hot tips:

  • You can start the interactive O'Caml toploop with the command
    ocaml
    
    After that, almost none libraries are loaded: only Pervasives is available.
  • All libraries support the findlib manager. This means that you can invoke findlib, and load additional libraries from the toploop:
    #use "topfind";;
    
    This enables the findlib manager. To get a list of libraries, run:
    #list;;
    
    Note that the list of these names are only loosely correlated with the GODI package names, because a package may install several libraries. To load a library foo, do
    #require "foo";;
    
    This also loads prerequites if necessary.
  • The question is where to get documentation. One possibility is to use ocamlbrowser, a tool coming with the core system that allows you to browse library interfaces (and it also includes a small IDE). In GODI, ocamlbrowser is contained in the package godi-ocaml-labltk, so you must install this package (it requires tcl/tk, and because of this, it is not installed by default). If you simply start
    ocamlbrowser
    
    from the shell, you can only browse the standard library. For other libraries foo, run
    ocamlfind browser -package foo
    
    or even
    ocamlfind browser -all
    
  • Documentation (e.g. manuals) are installed in the doc directory. GODI prefers HTML documentation, so it is a good idea to open this directory with your web browser
  • For a complete set of documentation, look at docs.camlcity.org. This online set is mostly up-to-date - generated once every night, and unless an error happens, it reflects the latest changes. It is very useful to look into the details of a package before you install it locally.
  • The online documentation at docs.camlcity.org is also searchable. Use the search box you find there and enter your query. In some code files, the identifiers are additionally clickable, and you get immediately a list of other occurrences. For some background information, see the blog article about LambdaRank.
  • There is also an installable CGI program allowing quick lookup of mli files. To use it, build the package godi-findlib-browser. The CGI is installed as doc/cgi-bin/browser.cgi, and it is a good idea to add the doc directory to your web server document base, and to enable CGI execution for doc/cgi-bin.

Mailing List

There is a mailing list godi-list@ocaml-programming.de. Everybody can post to the list. You can subscribe to the list by visiting https://godirepo.camlcity.org/mailman/listinfo/godi-list. Archives of this mailing list are available at https://godirepo.camlcity.org/pipermail/godi-list.

The mailing list should be used by both users having questions about GODI, and by developers who want to exchange how to create packages and how to improve the GODI code base.

Package developers wanted!

GODI is being actively developed. Of course, you can participate in this process; I am very glad about everybody who wants to help me. Read more on the GODI development page, and on the development server home page (all pages under construction). Especially, people are wanted that create new packages for libraries.




Gerd Stolpmann and the GODI team Contact

This web site is published by Informatikb√ľro Gerd Stolpmann
Powered by Caml