package batteries
Install
Dune Dependency
Authors
Maintainers
Sources
md5=b691e5870f876c6e590d6aa51b4c5457
sha512=3b0643ff337cd70da8c4b77887d212e82d043a7163fca36588be12186bc86bbcf0d56b13349325f12eabb96c846204c88560786342f50af7bf4e20b9480d3964
README.md.html
Welcome to OCaml Batteries Included
OCaml Batteries Included, or just Batteries, is a community-maintained foundation library for your OCaml projects. Batteries
defines a standard set of libraries which may be expected on every compliant installation of OCaml;
organizes these libraries into a hierarchy of modules, with a single source of documentation; and
provides a consistent API for otherwise independent libraries.
Building Batteries
Requirements
You will need the following libraries:
OCaml >= 3.12.1
Findlib >= 1.5.3
GNU make
OUnit to build and run the tests (optional)
qtest >= 2.0.1 to build and run the tests (optional)
ocaml-benchmark to build and run the performance tests (optional)
Configuration and Installation
To install the full version of Batteries, execute
$ make all
$ make test [ optional ]
$ sudo make install
$ make doc [ optional ]
$ sudo make install-doc [ optional ]
If you want the documentation installed elsewhere, set this before starting the build process because this location is stored in the Batteries_config
module generated during compilation.
$ export DOCROOT=/path/to/new/docroot/
To disable native compilation:
$ export BATTERIES_NATIVE=false
To disable building of native shared libraries:
$ export BATTERIES_NATIVE_SHLIB=false
Using Batteries
To get started using Batteries at the toplevel, copy the ocamlinit
file to ~/.ocamlinit
:
$ cp ocamlinit ~/.ocamlinit
If you already have findlib in your ~/.ocamlinit
, you only need the last line in our ocamlinit to load batteries.
More usage help available on the batteries-included wiki.
ExtLib Compatibility
If your project currently uses ExtLib, most likely you can just change -package extlib
to -package batteries
and add open Extlib
to the top of any extlib-using modules. Batteries' modules are all named BatFoo to differentiate them from extlib's modules, so one can use Batteries and ExtLib in the same project.
COMPATIBILITY NOTE: If you're using ExtLib's Unzip module, it does not have a corresponding module in batteries at the moment.
Extending Batteries
See the guidelines wiki page.
If you use emacs, the file batteries_dev.el
has extra highlighting to support writing quicktests.