Find a file
2018-04-17 18:30:05 -07:00
benchmarks
data Use version of nix that has eval-okay-regex-split.exp 2018-04-10 12:33:31 -07:00
doc
main Add new option --force, which forces evaluation results to normal form 2018-04-17 18:12:19 -07:00
src The argument order for the function passed to foldl' had gotten flipped 2018-04-17 18:30:05 -07:00
tests The argument order for the function passed to foldl' had gotten flipped 2018-04-17 18:30:05 -07:00
.gitignore The basic REPL now works; doesn't allow establishing definitions yet 2018-04-12 16:46:34 -07:00
.gitmodules Update submodule reference 2018-04-10 12:33:51 -07:00
.travis.yml If MATCHING_TESTS=yes (default for Travis), compare eval tests to Nix 2018-04-13 22:34:24 -07:00
default.nix Small whitespace change in default.nix 2018-04-16 21:57:27 -07:00
hnix.cabal Add --json option to hnix, which can render both expressions and values 2018-04-17 14:24:52 -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 Add --json option to hnix, which can render both expressions and values 2018-04-17 14:24:52 -07:00
README.md Change README.md back to 'cabal', since we install cabal-install in the nix-shell 2018-04-16 22:24:06 -07:00
Setup.hs

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 --recursive 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
$ ./dist/build/hnix/hnix --help

Building with benchmarks enabled

To build hnix with benchmarks enabled:

$ nix-shell --arg doBenchmarks true
$ cabal configure --enable-tests --enable-benchmarks
$ cabal build
$ cabal bench

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.