package sek

  1. Overview
  2. Docs
An efficient implementation of ephemeral and persistent sequences

Install

dune-project
 Dependency

Authors

Maintainers

Sources

archive.tar.gz
md5=56c31c65f3b0431943218f58d0ebda99
sha512=dfe7886d046c119780a196e17ac7efa8e989bcef3743f01d08d9aabc871fdc6b59d16b7445d01b30d3eb1bf4addca6c46e283065ff207ff4354a2ce6af245be7

doc/README.html

Sek

This OCaml library offers an efficient implementation of sequences.

This data structure supports all of the standard operations on stacks, queues, deques (e.g. push, pop at either end), catenable sequences (concat, split), and random access sequences (get, set).

Data is stored internally in chunks (fixed-capacity arrays), which is why this data structure is known as a chunk sequence.

This data structure comes in two flavors, namely an ephemeral (mutable) flavor and a persistent (immutable) flavor, and offers constant-time conversions between these flavors.

It is intended to achieve excellent time complexity and memory usage.

Installation

To install the latest released version, type:

  opam update
  opam install sek

To install the latest development version, type:

  git clone git@gitlab.inria.fr:fpottier/sek
  cd sek
  opam pin add sek .

To install the latest development version with debugging assertions enabled, type:

  git clone git@gitlab.inria.fr:fpottier/sek
  cd sek
  make setup
  make install

Documentation

The documentation of the latest released version is available online. Here are shortcuts to the ephemeral sequence API, the persistent sequence API, and the conversion functions.

The documentation is built locally by make doc and can be viewed via make view.

The file play.ml allows playing with the library in the OCaml toplevel loop.

Development Guidelines

To retrieve and compile the source code, type:

  git clone git@gitlab.inria.fr:fpottier/sek
  make setup
  make

To set up an opam switch that allows testing Sek, type this (only once):

  make -C fuzz setup

The switch that is used for testing is named in the file fuzz/default.switch.

You must also install AFL.

Then, to test the library using afl-fuzz, type:

  make test
  # This command runs forever; interrupt it with Ctrl+C when you wish