Skip to content
OCaml Other
Latest commit 72b0741 Feb 11, 2016 @rixed rixed committed with gasche Add cmp argument to some PSet functions
Every PSet function creating a new set should allow to set the comparison
function.
Failed to load latest commit information.
benchsuite Update bitset.ml Jan 14, 2014
build Move the prefilterin logic from Makefile to ocamlbuild Jun 14, 2015
examples Merge branch 'v1.4.3' Jun 5, 2012
howto typos corrected Dec 14, 2015
qtest s/QTest2Lib/qcheck/ Apr 23, 2016
scripts version management scripts Apr 12, 2014
src Add cmp argument to some PSet functions Apr 26, 2016
testsuite instead of a pair of enums, Enum.combine now takes two enums (it was … Apr 26, 2016
.gitignore expose `Format.asprintf` for V>=4.01, fixes #597 Jul 23, 2015
.mailmap add a .mailmap entry Jul 1, 2013
.merlin basic .merlin file for merlin users Nov 11, 2013
.travis.sh Travis support, with build status in README Jan 5, 2014
.travis.yml Travis support, with build status in README Jan 5, 2014
ChangeLog Add cmp argument to some PSet functions Apr 27, 2016
FAQ Update FAQ to add help on "unbound module batteries" error. Jul 15, 2012
LICENSE Updating pointer to clause 3 in LE text to clause 2 as it should be. Feb 7, 2011
META.in bytes is missing in META Sep 25, 2014
Makefile use qtest 2.2 Apr 2, 2016
README.folders Update README.folders Jan 14, 2014
README.md require ocamlfind>=1.5.3 for the full Bytes compatibility package Sep 23, 2014
_oasis bumped minor version number in _oasis Dec 8, 2015
_tags ignore deprecation warnings throughout the Batteries codebase Nov 12, 2015
batteries_dev.el emacs mode: updating it to qtest2 Feb 19, 2012
battop.ml Put version number in toplevel banner Nov 21, 2012
check_raise add a style check for '@since NEXT_RELEASE' Oct 26, 2013
myocamlbuild.ml Move the prefilterin logic from Makefile to ocamlbuild Jun 14, 2015
ocamlinit Fix a typo in ocamlinit that prevents it from loading correctly. Jun 22, 2012
opam ./opam: add an 'ocamlbuild' dependency Apr 25, 2016
plot benchmark: fingertrees or sequences in general Feb 18, 2012
setup.ml bump version in _oasis Sep 23, 2014

README.md

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.

Build Status

Building Batteries

Requirements

You will need the following libraries:

  • OCaml >= 3.12.1
  • Findlib >= 1.5.3
  • [qtest][] >= 2.0.1
  • GNU make
  • OUnit to build and run the tests (optional)
  • ocaml-benchmark to build and run the performance tests (optional)
  • bisect to compute the coverage of the test suite (optional)

Configuration and Installation

To install the full version of Batteries, execute

$ make all
$ make test 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 Extlibcompat 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 doc/batteries/GUIDELINES and the guidelines wiki page.

If you use emacs, the file batteries_dev.el has extra highlighting to support writing quicktests.

Something went wrong with that request. Please try again.