2016-02-08 02:53:22 +03:00
|
|
|
# hnix
|
|
|
|
|
2018-04-03 10:33:30 +03:00
|
|
|
Haskell parser, evaluator and type checker for the Nix language.
|
2016-02-08 02:53:22 +03:00
|
|
|
|
|
|
|
## Prerequisites
|
|
|
|
|
2018-04-05 01:05:58 +03:00
|
|
|
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.
|
2016-02-08 02:53:22 +03:00
|
|
|
|
|
|
|
## Getting Started
|
|
|
|
|
|
|
|
```bash
|
2018-04-13 07:12:31 +03:00
|
|
|
$ git clone --recursive https://github.com/jwiegley/hnix.git
|
2016-02-08 02:53:22 +03:00
|
|
|
...
|
|
|
|
$ cd hnix
|
|
|
|
$ nix-shell
|
2018-04-13 07:06:22 +03:00
|
|
|
$ runhaskell Setup.hs configure --enable-tests
|
|
|
|
$ runhaskell Setup.hs build
|
|
|
|
$ runhaskell Setup.hs test
|
2018-04-12 20:28:16 +03:00
|
|
|
# To run all of the tests, which takes up to a minute:
|
2018-04-13 07:06:22 +03:00
|
|
|
$ LANGUAGE_TESTS=yes NIXPKGS_TESTS=yes runhaskell Setup.hs test
|
|
|
|
$ runhaskell Setup.hs bench
|
2018-04-03 10:33:30 +03:00
|
|
|
$ ./dist/build/hnix/hnix --help
|
2016-02-08 02:53:22 +03:00
|
|
|
```
|
|
|
|
|
2018-04-10 21:49:18 +03:00
|
|
|
## Building with profiling enabled
|
|
|
|
|
|
|
|
To build `hnix` with profiling enabled:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ nix-shell --arg doProfiling true
|
2018-04-13 07:06:22 +03:00
|
|
|
$ runhaskell Setup.hs configure --enable-tests --enable-profiling
|
|
|
|
$ runhaskell Setup.hs build
|
2018-04-10 21:49:18 +03:00
|
|
|
$ ./dist/build/hnix/hnix <args> +RTS -p
|
|
|
|
```
|
|
|
|
|
2018-04-04 08:57:23 +03:00
|
|
|
## How you can help
|
|
|
|
|
2018-04-13 07:20:23 +03:00
|
|
|
If you're looking for a way to help out, try taking a look
|
|
|
|
[here](https://github.com/jwiegley/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee).
|
|
|
|
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](https://gitter.im/haskell-nix/Lobby).
|
2018-04-04 08:57:23 +03:00
|
|
|
|
|
|
|
When you're ready to submit a pull request, test it with:
|
|
|
|
```
|
2018-04-04 09:46:32 +03:00
|
|
|
git submodule update --init --recursive
|
2018-04-13 07:06:22 +03:00
|
|
|
nix-shell --run "LANGUAGE_TESTS=yes runhaskell Setup.hs test"
|
2018-04-04 08:57:23 +03:00
|
|
|
```
|
|
|
|
|
2018-04-13 07:20:23 +03:00
|
|
|
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.
|