John Wiegley
0ff6c7a1e4
Move tracing code into its own file
2018-04-18 21:43:18 -07:00
John Wiegley
92217059b5
Add --flags=tracing, and document it in README.md
2018-04-18 16:28:21 -07:00
John Wiegley
8d25aa461d
Add --json option to hnix, which can render both expressions and values
2018-04-17 14:24:52 -07:00
John Wiegley
f4fbbe7903
Make NKeyName and NString instances of Hashable
2018-04-17 11:33:20 -07:00
John Wiegley
6c9cbf241a
Rewrite ToNix/FromNix, although Builtins.hs is not using it yet
2018-04-13 18:09:12 -07:00
John Wiegley
99189e9536
The basic REPL now works; doesn't allow establishing definitions yet
2018-04-12 16:46:34 -07:00
John Wiegley
709cc5247e
Add code for doing Hindley-Milner type inference, and a repl
...
This code was written by Stephen Diehl and Kwang Yul Seo, which they released
under an MIT license as the project poly_constraints:
https://github.com/kseo/poly_constraints
The code is added to hnix right now as mainly a placeholder, and will need to
be modified before it can be used.
2018-04-12 10:53:50 -07:00
John Wiegley
96df58fb29
Split off command-line options processing into a new Nix.Options module
2018-04-11 20:53:38 -07:00
John Wiegley
b621ffee0a
Move the caching support code into its own Nix.Cache module
2018-04-11 20:21:02 -07:00
John Wiegley
22175aa927
Use the serialise library on non-Linux systems, compact on Linux
2018-04-11 17:59:42 -07:00
John Wiegley
941d4f9fd3
Add testing code for writing out Nix parses as compact regions
2018-04-11 14:35:17 -07:00
John Wiegley
cd4aa33abd
Run the tests with threading enabled, for parallel execution
2018-04-11 13:53:55 -07:00
John Wiegley
74de14dc7d
Restore the linter, to some degree, at least for the language tests
2018-04-10 21:02:01 -07:00
John Wiegley
5efa46e516
Add Binary instances for NExpr
2018-04-10 18:57:17 -07:00
John Wiegley
dcd081d899
Add directory dependency for the tests
2018-04-10 12:38:14 -07:00
John Wiegley
a7e7e84795
Drop dependency on insert-ordered-containers
...
Fixes #161
2018-04-10 11:58:08 -07:00
John Wiegley
81c63a98d5
Comment out -fexpose-all-unfoldings while profiling
2018-04-10 09:02:59 -07:00
John Wiegley
8f37f37986
Down to 16 basic test failures with megaparsec
2018-04-09 21:35:46 -07:00
John Wiegley
9d7f25d368
All is building with Megaparsec now, but many parsing tests fail
2018-04-09 17:12:16 -07:00
John Wiegley
b1fb73d363
Remove Trifecta and parsec, begin switch to megaparsec
2018-04-09 10:16:25 -07:00
John Wiegley
4c2eebbe40
Refactor evaluation using a type class
2018-04-09 00:52:10 -07:00
John Wiegley
3681d51dd6
Create modules Nix.Monad.Lazy, Nix.Monad.Lint, Nix.Monad.Context
2018-04-07 23:14:08 -07:00
John Wiegley
9dcd7b37b6
Factor some code into new module Nix.Normal
2018-04-07 15:25:39 -07:00
John Wiegley
c8e9012778
Some minor fixups for compilation
2018-04-07 15:13:58 -07:00
John Wiegley
deb592b11d
Undo changes to hnix.cabal
2018-04-07 15:08:48 -07:00
Doug Beardsley
1b7dac071d
Test to catch a bug in builtins.match
...
Also added infrastructure for comparing against current nix behavior,
not just current nix tests.
2018-04-07 15:07:09 -07:00
John Wiegley
ea6a98f602
Implement builtins.tryEval
2018-04-07 14:33:15 -07:00
John Wiegley
935c7c5ee1
Remove some unnecessary code from package.yaml
2018-04-07 14:17:17 -07:00
John Wiegley
954ffccebb
Ensure in the tests that hnix.cabal is not edited directly
2018-04-07 12:09:49 -07:00
John Wiegley
443129315d
Use hpack and move all the Nix sources into a src/ directory
2018-04-07 12:02:33 -07:00
John Wiegley
d9047cc216
Factor out some code into new module Nix.Value
2018-04-07 11:38:12 -07:00
Doug Beardsley
002a7ad1b9
Replace pcre-light with regex-tdfa
...
The regex-tdfa package implements POSIX extended regular expressions,
which are what Nix uses.
2018-04-06 11:46:56 -06:00
John Wiegley
1a01f85de9
Implement builtins.match, and add a dependency on pcre-light
2018-04-05 23:50:32 -07:00
John Wiegley
9d5a7f8a27
Remove some settings from hnix.cabal
2018-04-05 21:10:06 -07:00
Doug Beardsley
42fbb1faa9
The eval-okay-xml test case passes
...
Still need to decide what to do with commented out instances
2018-04-05 17:06:00 -06:00
John Wiegley
51b55f3e2d
Pin insert-ordered-containers to a custom version
2018-04-05 13:23:22 -07:00
John Wiegley
1363d20f18
Bump working version to 0.5.0
2018-04-05 13:23:14 -07:00
John Wiegley
d476b3f173
Add a toXML serializer for values
...
Relates to issue #109
2018-04-05 01:13:13 -07:00
Ryan Trinkle
3c339340c6
Add builtins.fromJSON and builtins.toJSON
2018-04-03 20:37:38 -04:00
John Wiegley
c3eb7a94b9
Add basic support for quasi-quotation of Nix expressions in Haskell
2018-04-03 14:21:33 -07:00
John Wiegley
ffb97610db
Generalize the thunking mechanism, so it can be used over Symbolics
2018-04-01 23:48:07 -07:00
John Wiegley
d7228c6a75
Move language feature pragmas into each Haskell file, not .cabal
2018-04-01 22:49:12 -07:00
Ryan Trinkle
5fc350cef0
Add builtins.readDir
2018-04-01 22:16:55 -04:00
Ryan Trinkle
fb1616053d
Add builtins.hashString
2018-04-01 21:20:53 -04:00
Ryan Trinkle
81aec9dfd0
Merge branch 'master' of github.com:jwiegley/hnix
...
# Conflicts:
# Nix/Builtins.hs
# Nix/Eval.hs
2018-04-01 14:35:06 -04:00
Ryan Trinkle
a1a3c81211
Add builtins.sort
2018-04-01 14:16:47 -04:00
John Wiegley
f47b764dcf
Initial phase of sym eval completed, still missing function application
2018-04-01 10:34:08 -07:00
Ryan Trinkle
3e3e61acd9
Add more path normalization to do it the way Nix does
2018-03-31 19:53:35 -04:00
Ryan Trinkle
6acdfb061c
Add version bounds for unordered-containers
...
We use the Ord instance for HashMap, which was created in unordered-containers-0.2.9.0
2018-03-31 18:46:42 -04:00
John Wiegley
852aff04e7
Break apart MonadNix, to allow greater flexibility in evaluators
2018-03-31 14:53:38 -07:00