Find a file
2018-04-04 02:00:15 -04:00
benchmarks tests for comment parsing and parser benchmarks 2014-08-27 23:54:31 +02:00
data Bump nix to a fork where we have a new test: eval-okay-nested-with 2018-03-30 15:47:09 -04:00
doc Add the C++ parser as documentation 2014-07-04 01:55:27 -05:00
main Simplify the implementation of thunks by relying on Haskell's implementation 2018-04-03 17:15:54 -07:00
Nix Quiet hlint 2018-04-03 22:14:55 -07:00
tests Use non-tracing evaluator in tests 2018-04-04 02:00:15 -04:00
.gitignore Add some things to .gitignore 2018-03-30 13:07:40 -04:00
.gitmodules Bump nix to a fork where we have a new test: eval-okay-nested-with 2018-03-30 15:47:09 -04:00
.travis.yml Add Gitter hooks to .travis.yml 2018-04-03 00:31:30 -07:00
default.nix Add basic support for quasi-quotation of Nix expressions in Haskell 2018-04-03 14:21:33 -07:00
hnix.cabal Add builtins.fromJSON and builtins.toJSON 2018-04-03 20:37:38 -04: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
Nix.hs Simplify the implementation of thunks by relying on Haskell's implementation 2018-04-03 17:15:54 -07:00
README.md Add "How you can help" section to README.md 2018-04-04 01:57:31 -04:00
Setup.hs Setup cabal file, fix all warnings 2014-06-30 22:37:20 -05:00
shell.nix Add shell.nix 2018-04-03 22:13:02 -07:00

hnix

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

Prerequisites

Nix is installed and in your $PATH.

Getting Started

$ git clone https://github.com/jwiegley/hnix.git
...
$ cd hnix
$ cabal2nix --shell . > default.nix
$ nix-shell
...
$ cabal test
...
$ cabal bench
...
$ ./dist/build/hnix/hnix --help

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:

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.