Camlp5 is a preprocessor-pretty-printer of ocaml.
It offers tools for syntax (grammars) and the ability to modify the concrete
syntax of the language (quotations, syntax extensions).
This OCaml-library consists of a set of modules which implement functions for
analyzing and manipulating context-free grammars (CFGs) in a purely functional
way.
Cmdliner is an OCaml module for the declarative definition of command
line interfaces.
It provides a simple and compositional mechanism to convert command line
arguments to OCaml values and pass them to your functions. The module
automatically handles syntax errors, help messages and UNIX man page
generation. It supports programs with single or multiple commands
(like darcs or git) and respects most of the POSIX and GNU conventions.
Extension to OCaml for deriving functions from type declarations. Includes
derivers for pretty-printing, type-safe marshalling with structure-sharing,
dynamic typing, equality, and more. This is a version of the deriving library
adapted for use with Ocsigen.
ExtLib is a project aiming at providing a complete - yet small -
standard library for the OCaml programming language. The purpose of
this library is to add new functions to OCaml Standard Library
modules, to modify some functions in order to get better performances
or more safety (tail-recursive) but also to provide new modules which
should be useful for the average OCaml programmer.
ExtLib is not directly related to OCaml authors (INRIA) although this
library can be seen as a proposal for inclusion in the official
distribution.
The "findlib" 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.
ocaml-ipaddr
A library for manipulation of IP (and MAC) address representations.
ocaml-calendar is an OCaml library for managing dates and times.
This is a very preliminary release of CamlJava, an OCaml/Java
interface based on the following schema:
Caml/C interface JNI (Java Native Interface)
Caml <------------------> C <-----------------------------> Java
Currently, CamlJava provides a low-level, weakly-typed OCaml interface
very similar to the JNI. Java object references are mapped to an
abstract type, and various JNI-like operations are provided to allow
Java method invocation, field access, and more. A basic callback
facility (allowing Java code to invoke methods on Caml objects) is
also provided, although some stub Java code must be written by hand.
In the future, a higher-level, strongly-typed interface will be
provided, whereas Java classes are mapped directly to Caml classes.
This raises fairly delicate type mapping issues, though, so don't hold
your breath.
This OCaml-library interfaces the BLAS-library (Basic Linear Algebra
Subroutines) and LAPACK-library (Linear Algebra routines), which are
written in FORTRAN.
This allows people to write high-performance numerical code for
applications that need linear algebra.