]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/pxp/pxp/doc/ABOUT-FINDLIB.xml
Initial revision
[helm.git] / helm / DEVEL / pxp / pxp / doc / ABOUT-FINDLIB.xml
diff --git a/helm/DEVEL/pxp/pxp/doc/ABOUT-FINDLIB.xml b/helm/DEVEL/pxp/pxp/doc/ABOUT-FINDLIB.xml
new file mode 100644 (file)
index 0000000..d1dc5b0
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE readme SYSTEM "readme.dtd" [
+
+<!ENTITY % common SYSTEM "common.xml">
+%common;
+
+<!ENTITY f "<em>findlib</em>">
+<!ENTITY F "<em>Findlib</em>">
+
+]>
+
+<readme title="ABOUT-FINDLIB - Package manager for O'Caml">
+  <sect1>
+    <title>Abstract</title>
+<p>
+The &f; library provides a scheme to manage reusable software
+components (packages), and includes tools that support this
+scheme. Packages are collections of OCaml modules for which
+metainformation can be stored. The packages are kept in the filesystem
+hierarchy, but with strict directory structure. The library contains
+functions to look the directory up that stores a package, to query
+metainformation about a package, and to retrieve dependency
+information about multiple packages. There is also a tool that allows
+the user to enter queries on the command-line. In order to simplify
+compilation and linkage, there are new frontends of the various OCaml
+compilers that can directly deal with packages.
+</p>
+
+<p>
+Together with the packages metainformation is stored. This includes a
+version string, the archives the package consists of, and additional
+linker options. Packages can also be dependent on other
+packages. There is a query which finds out all predecessors of a list
+of packages and sorts them topologically. The new compiler frontends
+do this implicitly.
+</p>
+
+<p>
+Metainformation can be conditional, i.e. depend on a set of
+predicates. This is mainly used to be able to react on certain
+properties of the environment, such as if the bytecode or the native
+compiler is invoked, if the application is multi-threaded, and a few
+more. If the new compiler frontends are used, most predicates are
+found out automatically.
+</p>
+
+<p>
+There is special support for scripts. A new directive, "#require",
+loads packages into scripts. Of course, this works only with newly
+created toploops which include the &f; library.
+</p>
+
+  </sect1>
+
+  <sect1><title>Where to get findlib</title>
+    <p>
+The manual of &f; is available <a href="&url.findlib-project;">online</a>.
+You can download &f; <a href="&url.findlib-download;">here</a>.
+</p>
+  </sect1>
+</readme>