A quixotic compendium of code written in the Standard ML programming language. Intended for audio-processing applications, though some parts are more generic.
-
Bisquay is quixotic because SML is not an obvious choice of language for this purpose and there is no existing library of applicable code to build on. It's an epic struggle against an invented adversary.
-
Bisquay is a compendium because this repository contains (almost) no code, just a Repoint manifest that defines a multitude of modules to pull in as subdirectories. Several of these modules are third-party, or were originally written for other purposes, while others (with names beginning
bsq
) were written specifically for this.
All Bisquay code is licensed under a BSD/MIT or equivalent licence.
See the file CONTENTS.md for a list of the libraries included, with links to their individual repositories online.
Requires the Meson build system and either MLton or Poly/ML SML compiler (or both).
The default build uses Poly/ML, producing a development build with the quickest compile time and turnaround, using pure SML code only:
- Run
./repoint install
to bring in all the code - Run
meson build
andninja -C build
The output will be a file called bsq_test
in the build
directory
that just runs some unit tests.
For a release-level build with C code via FFI for the fast bits, use
the mlton_release
build option:
- Run
./repoint install
to bring in all the code - Run
meson build -Dsml_buildtype=mlton_release
andninja -C build
The sml_buildtype
Meson option accepts the following values:
polyml
- the default - pure SML with no additional C/C++ FFI support, compiled using Poly/MLmlton_noffi
- pure SML compiled using MLtonmlton_debug
- SML + C/C++ FFI compiled using MLton with extra debug logging outputmlton_profile
- SML + C/C++ FFI compiled using MLton with profiling supportmlton_release
- SML + C/C++ FFI compiled using MLton in release mode
To build the documentation, run meson compile -C build doc
after the
build directory has been configured; then open doc/index.html in a
browser.
The Bisquay code and the bsq
modules were written by Chris Cannam
and are Copyright 2020-2022 Particular Programs Ltd, published under
the MIT/X11 licence. See the file COPYING
for details.
See the individual directories for copyright notes on the other modules.