ats-pkg: A build tool for ATS

[ ats, bsd3, development, library, program ] [ Propose Tags ] [ Report a vulnerability ]

A collection of scripts to simplify building ATS projects.


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
development

Enable `-Werror`

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.2.0.0, 0.2.0.1, 0.3.0.1, 0.3.0.2, 1.0.0.0, 1.1.0.0, 1.1.0.1, 1.1.0.2, 1.1.0.3, 1.2.0.0, 1.2.0.1, 1.2.0.2, 1.2.0.3, 1.2.0.4, 1.2.0.5, 1.2.0.6, 1.2.0.7, 1.2.0.8, 1.2.1.0, 1.2.1.3, 1.3.0.0, 1.4.0.0, 1.4.0.1, 1.4.0.3, 1.4.0.6, 2.0.0.2, 2.0.0.4, 2.0.0.6, 2.0.0.7, 2.0.0.8, 2.0.0.9, 2.0.0.10, 2.0.0.11, 2.0.0.12, 2.0.0.13, 2.1.0.0, 2.1.0.3, 2.1.0.5, 2.1.0.6, 2.1.0.7, 2.1.0.8, 2.1.0.9, 2.1.0.10, 2.2.0.0, 2.2.0.1, 2.2.0.2, 2.2.0.5, 2.2.0.6, 2.2.0.7, 2.2.0.8, 2.2.0.11, 2.2.0.15, 2.2.0.16, 2.2.0.17, 2.2.0.18, 2.2.1.0, 2.2.1.1, 2.3.0.0, 2.3.0.3, 2.3.0.6, 2.4.0.0, 2.4.0.3, 2.4.0.6, 2.4.1.0, 2.4.1.6, 2.4.2.0, 2.4.2.7, 2.4.2.8, 2.4.2.9, 2.4.2.18, 2.4.2.19, 2.5.0.3, 2.6.0.0, 2.6.0.1, 2.6.0.2, 2.6.0.3, 2.6.1.0, 2.6.1.1, 2.6.1.2, 2.6.1.3, 2.6.1.11, 2.6.1.16, 2.7.0.10, 2.7.0.22, 2.7.1.0, 2.7.1.1, 2.7.1.2, 2.8.0.0, 2.8.0.8, 2.9.0.0, 2.9.0.1, 2.9.0.2, 2.10.0.0, 2.10.0.2, 2.10.0.8, 2.10.0.11, 2.10.0.17, 2.10.0.20, 2.10.1.5, 2.10.1.8, 2.10.2.0, 2.10.2.2, 2.10.2.5, 2.11.0.1, 2.11.0.7, 2.11.0.8, 2.11.0.9, 2.11.0.10, 3.0.0.0, 3.0.0.1, 3.0.0.2, 3.0.0.4, 3.0.0.10, 3.0.0.11, 3.1.0.2, 3.1.0.6, 3.1.0.12, 3.2.1.2, 3.2.1.8, 3.2.2.0, 3.2.2.2, 3.2.2.3, 3.2.3.0, 3.2.4.0, 3.2.4.2, 3.2.4.4, 3.2.4.5, 3.2.4.6, 3.2.5.3, 3.2.5.6, 3.2.5.10, 3.2.5.11, 3.2.5.12, 3.2.5.13, 3.2.5.16, 3.2.5.17, 3.2.5.18, 3.2.6.0, 3.2.6.1, 3.2.6.2, 3.2.6.3, 3.2.6.4, 3.3.0.0, 3.3.0.1, 3.3.0.4, 3.3.0.5, 3.3.0.6, 3.3.0.7, 3.4.0.0, 3.4.0.1, 3.4.0.3, 3.4.0.4, 3.4.0.5, 3.4.0.6, 3.4.0.7, 3.4.0.8, 3.5.0.0, 3.5.0.1, 3.5.0.2, 3.5.0.3 (info)
Dependencies ansi-wl-pprint, ats-pkg, ats-setup, base (<0), binary, bytestring, bzlib, composition-prelude (>=1.1.0.2), containers, dependency, dhall, directory, file-embed, http-client, http-client-tls, lens, lzma, optparse-applicative, parallel-io, process, shake (<0.18.4), shake-ats (>=1.3.0.0), shake-ext (>=2.3.0.0), tar, temporary, text, unix, zip-archive, zlib [details]
License BSD-3-Clause
Copyright Copyright: (c) 2018 Vanessa McHale
Author Vanessa McHale
Maintainer vamchale@gmail.com
Revised Revision 2 made by vmchale at 2019-12-15T21:42:45Z
Category Development, ATS
Home page https://github.com/vmchale/atspkg#readme
Source repo head: git clone git@github.com:vmchale/atspkg.git
Uploaded by vmchale at 2018-02-18T08:47:40Z
Distributions
Executables atspkg
Downloads 95323 total (39 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-02-18 [all 1 reports]

Readme for ats-pkg-2.4.2.7

[back to package description]

ATSPackage

Build Status

This is a build system for ATS written in Haskell and configured with Dhall. It is not fully working, but the configuration format is now 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
  • Offer a common architecture for package builds
  • Cache builds locally (like nix or cabal)
  • Cache binary builds of ATS libraries (this is planned)

Example

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

curl -sSl https://raw.githubusercontent.com/vmchale/atspkg/master/bash/install.sh | bash -s
atspkg remote https://github.com/vmchale/polyglot/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.

Examples

Quick Start

Install pi with

curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/project-init

Initialize an ATS project with

pi new ats project

Then build & run it:

cd project
atspkg run

Further Documentation

You can find several examples with explanation here

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/dhall/pkg-set.dhall"
  , path = ([] : Optional Text)
  }

in cfg

Package sets are simply sets of packages, so you can also use Dhall to concatenate custom package sets with the above.