Go to file
2018-04-12 10:28:16 -07:00
benchmarks tests for comment parsing and parser benchmarks 2014-08-27 23:54:31 +02:00
data Use version of nix that has eval-okay-regex-split.exp 2018-04-10 12:33:31 -07:00
doc Add the C++ parser as documentation 2014-07-04 01:55:27 -05:00
main Create new __includes builtin, set by --include/-I 2018-04-11 22:02:31 -07:00
src Resolve some warnings 2018-04-12 10:26:54 -07:00
tests Create new __includes builtin, set by --include/-I 2018-04-11 22:02:31 -07:00
.gitignore Add some things to .gitignore 2018-03-30 13:07:40 -04:00
.gitmodules Update submodule reference 2018-04-10 12:33:51 -07:00
.travis.yml Enable nixpkgs parsing test on Travis 2018-04-10 11:44:41 -07:00
default.nix Some whitespace formatting in default.nix 2018-04-11 20:21:52 -07:00
hnix.cabal Split off command-line options processing into a new Nix.Options module 2018-04-11 20:53:38 -07:00
LICENSE Change LICENSE to BSD3 2016-12-18 17:10:06 -08:00
Makefile Merge {build,shell,default}.nix into default.nix 2018-01-28 21:58:33 +00:00
package.yaml Split off command-line options processing into a new Nix.Options module 2018-04-11 20:53:38 -07:00
README.md Add a further note to the README 2018-04-12 10:28:16 -07:00
Setup.hs Setup cabal file, fix all warnings 2014-06-30 22:37:20 -05:00

hnix

Haskell parser, evaluator and type checker for the Nix language.

Prerequisites

Nix is installed and in your $PATH. This is so that nix-store can be used for interacting with store paths, until hnix-store is ready.

Getting Started

$ git clone https://github.com/jwiegley/hnix.git
...
$ cd hnix
$ nix-shell
$ cabal configure --enable-tests
$ cabal build
$ cabal test
# To run all of the tests, which takes up to a minute:
$ LANGUAGE_TESTS=yes NIXPKGS_TESTS=yes cabal test
$ cabal bench
$ ./dist/build/hnix/hnix --help

Building with profiling enabled

To build hnix with profiling enabled:

$ nix-shell --arg doProfiling true
$ cabal configure --enable-tests --enable-profiling
$ cabal build
$ ./dist/build/hnix/hnix <args> +RTS -p

How you can help

If you're looking for a way to help out, try taking a look here. When you find an issue that looks interesting to you, comment on the ticket to let others know you're working on it; look for others who might have done the same. You can talk with everyone live on gitter.

When you're ready to submit a pull request, test it with:

git submodule update --init --recursive
nix-shell --run "LANGUAGE_TESTS=yes cabal test"

Make sure that all the tests that were passing prior to your PR are still passing afterwards; it's OK if no new tests are passing.