]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/pxp/pxp/doc/ABOUT-FINDLIB.xml
* removed wrong unref
[helm.git] / helm / DEVEL / pxp / pxp / doc / ABOUT-FINDLIB.xml
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE readme SYSTEM "readme.dtd" [
3
4 <!ENTITY % common SYSTEM "common.xml">
5 %common;
6
7 <!ENTITY f "<em>findlib</em>">
8 <!ENTITY F "<em>Findlib</em>">
9
10 ]>
11
12 <readme title="ABOUT-FINDLIB - Package manager for O'Caml">
13   <sect1>
14     <title>Abstract</title>
15 <p>
16 The &f; library provides a scheme to manage reusable software
17 components (packages), and includes tools that support this
18 scheme. Packages are collections of OCaml modules for which
19 metainformation can be stored. The packages are kept in the filesystem
20 hierarchy, but with strict directory structure. The library contains
21 functions to look the directory up that stores a package, to query
22 metainformation about a package, and to retrieve dependency
23 information about multiple packages. There is also a tool that allows
24 the user to enter queries on the command-line. In order to simplify
25 compilation and linkage, there are new frontends of the various OCaml
26 compilers that can directly deal with packages.
27 </p>
28
29 <p>
30 Together with the packages metainformation is stored. This includes a
31 version string, the archives the package consists of, and additional
32 linker options. Packages can also be dependent on other
33 packages. There is a query which finds out all predecessors of a list
34 of packages and sorts them topologically. The new compiler frontends
35 do this implicitly.
36 </p>
37
38 <p>
39 Metainformation can be conditional, i.e. depend on a set of
40 predicates. This is mainly used to be able to react on certain
41 properties of the environment, such as if the bytecode or the native
42 compiler is invoked, if the application is multi-threaded, and a few
43 more. If the new compiler frontends are used, most predicates are
44 found out automatically.
45 </p>
46
47 <p>
48 There is special support for scripts. A new directive, "#require",
49 loads packages into scripts. Of course, this works only with newly
50 created toploops which include the &f; library.
51 </p>
52
53   </sect1>
54
55   <sect1><title>Where to get findlib</title>
56     <p>
57 The manual of &f; is available <a href="&url.findlib-project;">online</a>.
58 You can download &f; <a href="&url.findlib-download;">here</a>.
59 </p>
60   </sect1>
61 </readme>