package extlib

All checked builds pass
  1. Overview
  2. Docs

Description

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 safety (tail-recursive) and also to provide new modules which should be useful for day to day programming.

Current goal is to maintain compatibility, new software is encouraged to not use extlib since stdlib is now seeing many additions and improvements which make many parts of extlib obsolete. For tail-recursion safety consider using other libraries e.g. containers.

Added to opam-repository:

README

OCaml Extended standard Library - ExtLib

Build Status Build

 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version,,
 * with the special exception on linking described in file LICENSE.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

What is ExtLib ?

ExtLib is a set of additional useful functions and modules for OCaml. Current goal is to maintain compatibility, new software is encouraged to not use extlib since stdlib is now seeing many additions and improvements which make many parts of extlib obsolete. For tail-recursion safety consider using other libraries e.g. containers.

Project page : https://github.com/ygrek/ocaml-extlib

Online API documentation : https://ygrek.org/p/extlib/doc/

Dependencies

  • ocaml >= 4.02
  • cppo - enables conditional compilation to ensure compatibility with various OCaml versions

optional:

  • ocamlfind >= 1.5.1 - for make install
  • dune - for dune build

Installation

opam install extlib or follow the manual instructions below.

Build with dune:

dune build

or with Makefile:

make minimal=1 build
make install

This will build and install bytecode and native libraries.

On bytecode-only architecture run

make minimal=1 all
make install

minimal=1 will exclude from build several modules (namely Base64 Unzip UChar UTF8) potentially conflicting with other well-established OCaml libraries. If your code is expecting to find these modules in extlib - omit this parameter during build to produce the full library.

Usage

Generate and read the documentation.

Release

  • Check for changes in stdlib (e.g. with ocaml check_stdlib.ml)
  • Update sw_test_all target for new OCaml release
  • make sw_test_all
  • Review git log and update CHANGES
  • Update version in Makefile
  • Commit
  • make release
  • upload tarball and make release on github
  • opam publish

Contributors

License

See LICENSE

Dependencies (3)

  1. cppo build & >= "1.0.1"
  2. ocaml >= "4.02"
  3. dune >= "1.0"

Dev Dependencies

None

Optional Dependencies

None

Conflicts

None

Build status

Results of building extlib with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
1.8.0 (this version) good good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure