@hackage ats-pkg2.4.0.0

A build tool for ATS

ATSPackage

Build Status

This is a build system for ATS written in Haskell and configured with Dhall. It is not yet stable.

Features & Non-Features

Things that atspkg will do for you:

  • Dramatically simplify CI for ATS projects
  • Simplify distribution of your project
  • Enable Haskell builds that depend on ATS code
  • Enable ATS builds that depend on Haskell code
  • Ensure reproducible builds via pinned compiler versions
  • Track all file dependencies
  • Make contributing to your projects easier
  • Run builds in parallel (like make)
  • Handle flags and libraries for garbage collection when specified
  • Install patscc and other ATS tooling

Things that atspkg will not do for you:

  • Dependency resolution (this is planned)
  • Give you the full flexibility of the C/ATS ecosystem
  • Integrate with other ecosystems
  • Provide a centralized package repository
  • Library builds (this is planned)
  • Offer a common architecture for package builds
  • Cache builds locally (like nix or cabal)

Example

As an example, the following two lines will install getkb:

curl -sSl https://raw.githubusercontent.com/vmchale/atspkg/master/bash/install.sh | bash -s
atspkg remote https://github.com/vmchale/getkb/archive/master.zip

As you can see, this greatly simplifies distribution and testing of programs written in ATS.

Installation

Script

The easiest way to install is via a script, viz.

curl -sSl https://raw.githubusercontent.com/vmchale/atspkg/master/bash/install.sh | bash -s

Thereafter, you can run

atspkg upgrade

to upgrade to the latest release.

Source

Alternately, you can download Cabal and GHC and install with

cabal new-install ats-pkg --symlink-bindir ~/.local/bin --happy-options='-gcsa' --alex-options='-g'

Note that $HOME/.local/bin will need to be on your PATH.

Global Configuration

atspkg is configured via a file in ~/.config/atspkg/config.dhall. You can set custom package set as follows:

let cfg = 
  { defaultPkgs = "https://raw.githubusercontent.com/vmchale/atspkg/master/pkgs/pkg-set.dhall"
  }

in cfg

Examples

You can find several examples with explanation here