| Versions | 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.3, 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 | 
        
                    | Change log | CHANGELOG.md | 
        
          | Dependencies | ansi-wl-pprint, ats-pkg, base (>=4.10 && <5), binary, bytestring, bzlib, Cabal (>=2.2.0.0), cli-setup, composition-prelude (>=1.3.0.3), containers (>=0.6), dependency (>=1.2.0.0), dhall (>=1.27.0), directory (>=1.2.3.0), file-embed (>=0.0.9), filemanip, filepath, http-client, http-client-tls, language-ats (>=1.7.4.0), lzma, microlens, mtl, optparse-applicative, parallel-io, process, shake (>=0.17), shake-ats (>=1.10.2.0), shake-c (>=0.4.0.0), shake-ext (>=3.0.0.0), tar, temporary, text, unix, unix-compat, zip-archive, zlib [details] | 
        
          | License | BSD-3-Clause | 
                
          | Copyright | Copyright: (c) 2018-2019 Vanessa McHale | 
        
        
          | Author | Vanessa McHale | 
        
          | Maintainer | vamchale@gmail.com | 
                
          | Category | Development, ATS | 
        
        
                
          | Bug tracker | https://github.com/vmchale/atspkg/issues | 
        
                
          | Source repo | head: git clone git@github.com:vmchale/atspkg.git(ats-pkg) | 
        
        
          | Uploaded | by vmchale at 2019-11-07T17:16:50Z | 
    
    ATSPackage
 
 
 
 

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.
atspkg works quite well as a build system, and acceptably well as a package manager.
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
- Track all file dependencies
- Make contributing to your projects easier
- Run builds in parallel (like make)
- Install patsccand other ATS tooling
- Install manual pages and shell completions
- Install ATS libraries
- Dependency resolution
Things that atspkg will not do for you:
- Give you the full flexibility of the C/ATS ecosystem
- Integrate with other ecosystems
- Provide a centralized package repository
- Cache builds (like nixorcabal new-build)
Example
As an example, the following will install polyglot:
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 | sh -s
Thereafter, you can run
atspkg upgrade
to upgrade to the latest release.
Source
If that doesn't work, you can download
Cabal and
GHC and install with
cabal update
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.
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
Examples
You can find several examples with explanation
here.
Global Configuration
atspkg is configured via a file in $HOME/.config/atspkg/config.dhall. You can
set a custom package set as follows:
let version = "master"
in
let cfg =
  { defaultPkgs = "https://raw.githubusercontent.com/vmchale/atspkg/${version}/ats-pkg/pkgs/pkg-set.dhall"
  , path = ([] : Optional Text)
  , githubUsername = "vmchale"
  , filterErrors = False
  }
in cfg
I recommend setting version to whichever branch your version of atspkg was
built from.