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
John Wiegley
d08ca26da0
Add informative backtraces on evaluation failure
2018-03-30 23:10:44 -07:00
John Wiegley
4e29e6453f
Don't use -threaded in hnix.cabal at the moment
2018-03-30 23:10:44 -07:00
John Wiegley
9f6c2ba948
Move a lot of code around into new modules
2018-03-30 14:08:38 -07:00
John Wiegley
5effdda04b
Move the scoping code into its own module
2018-03-30 13:30:28 -07:00
John Wiegley
a4a2fc0659
Move the linting code into its own module
2018-03-30 12:45:23 -07:00
John Wiegley
71b4bf5e8a
Various fixes, and make imports local to their containing file
2018-03-30 01:50:19 -07:00
Ryan Trinkle
3f29f65477
Use nix-store --add to convert paths to strings
...
Fixes eval-fail-bad-antiquote-2
2018-03-29 20:23:22 -04:00
John Wiegley
84918aa1d3
Remove the MonadFix requirement, it was not needed; fix NRecSet
2018-03-28 23:52:07 -07:00
John Wiegley
39f772ef3c
Restore monadic abstraction (to support importFile), fix attribute sets
2018-03-28 14:45:10 -07:00
John Wiegley
b923af49f4
Split off some utility functions into their own Nix.Utils module
2018-03-27 22:32:43 -07:00
John Wiegley
3a29249e43
Normalize import statements, add option parsing
2018-03-27 21:59:27 -07:00
John Wiegley
278916a9ab
Further work on argument evaluation
2018-03-27 18:42:31 -07:00
David Johnson
37e457367b
Bump deriving-compat upper bound
2018-03-27 12:34:56 -07:00
Allen Nelson
e6be5e0096
rm mention of shorthandtests from cabal file
2018-02-28 11:34:50 -06:00
Guillaume Maudoux
25f1da3408
Run lang tests from upstream
2018-02-15 12:06:09 +01:00
Guillaume Maudoux
5718952e7b
Add NValue constructors for builtins
2018-02-15 12:05:23 +01:00
John Wiegley
d3f9302c9f
Bump Cabal version to 0.4
2018-01-22 12:13:30 -08:00
Rhys
0d456691b5
Escape ${ but not plain $ in indented strings
...
Includes some very basic regression tests, but no change for
non-indented strings.
2017-05-31 21:24:43 +10:00
Rhys
6537b8823d
Add ShorthandTests to .cabal file
2017-05-31 21:07:19 +10:00
Profpatsch
8b4c137a3b
Shorthands.hs, mkDot/mkDots: automatically quote non-symbols
...
Nix can accept (nearly?) arbitrary values as attributes, if they are quoted in
strings. So generating “dots” should always result in valid nix attributes.
This uses the same regex as the nix lexer (as of 1.11).
Also add a few tests whether it correctly generates symbol/non-symbol
attributes.
2017-04-21 03:54:06 +02:00
Rickard Nilsson
386c472cc7
Bump to 0.3.4
2016-10-20 22:04:00 +02:00
John Wiegley
3a23917d59
Mention EvalTests.hs in hnix.cabal
2016-10-17 16:59:52 -07:00
John Wiegley
2f06b934ef
Bump to 0.3.3
2016-10-03 20:10:35 -07:00
Joe Hermaszewski
d3651984fb
Add Show1 instances for base 4.9
2016-09-21 10:32:17 +01:00
Joe Hermaszewski
a19a943f9b
Derive foldable and traversable for more types
2016-06-29 00:10:09 +01:00
Joe Hermaszewski
0f180164e5
Bump version, slight changes to project.nix
2016-06-25 16:14:19 +01:00
Joe Hermaszewski
5f3903caeb
Add Nix.Expr.Types.Annotated to cabal file
2016-06-25 11:38:31 +01:00
Joe Hermaszewski
c11aad7253
Implement Annotation support functions
2016-06-25 11:17:18 +01:00
Allen Nelson
99b52fe48e
separate expr into types and shorthands
2016-01-25 01:00:27 -06:00
Allen Nelson
80a7dcb684
bump version, separate back out different kinds of params
2016-01-23 18:11:26 -06:00
Allen Nelson
29acdfe988
remove types for rec/nonrec, make unit tests pass
2016-01-23 17:32:45 -06:00
Allen Nelson
50a3d0d0db
make tests pass
2016-01-23 15:51:34 -06:00
Allen Nelson
d3a1e7207f
split into more modules, rename some things, add docs
2016-01-23 15:23:18 -06:00
Allen Nelson
a876d49789
parseNixText function
2015-10-27 17:32:03 -05:00
Allen Nelson
892cad2b36
Correctly escape double quotes. Update nix files. Use quotes with reserved variable bindings
2015-10-15 18:38:06 -05:00
John Wiegley
c8173f0abd
Add Extra-source-files
2015-07-22 19:03:30 -07:00
John Wiegley
d678cf9cff
Add data/* as Extra-source-files
2015-07-20 14:00:24 -07:00
Adam Bergmark
703f2628e1
Needs GHC >= 7.6 due to MultiWayIf, LambdaCase, DataKinds
2015-06-28 02:13:08 +02:00
Allen Nelson
b4c66b4876
not evaluating in hnix executable, only parsing
2015-06-23 16:53:07 -05:00
John Wiegley
04f210c47e
Bump version to 0.2.0
2015-06-23 16:50:03 -05:00
Benno Fünfstück
1b82727a17
Use data-fix for Fix and fix path parsing bug
2014-09-27 20:12:30 +02:00
Benno Fünfstück
323f51f97b
Rename benchmarks to hnix-benchmarks, like tests
2014-08-28 00:02:56 +02:00
Benno Fünfstück
94b7e4b1d7
tests for comment parsing and parser benchmarks
2014-08-27 23:54:31 +02:00
Benno Fünfstück
82c19b650c
Add Pretty to cabal file and remove Internal
2014-08-19 18:51:13 +02:00
Benno Fünfstück
3413a817e6
subdirectory for main to avoid redundant compile
...
Cabal builds the library files twice if the main executable and the
library share the same hs-source-dirs. Moving the main executable source
code to a subdirectory avoids this issue.
2014-08-19 18:48:55 +02:00
Benno Fünfstück
1b85b76a4e
parsec: Also use parsers (like trifecta)
...
This saves a lot of duplication and also makes it easier
to keep the parsec and trifecta versions of the parser in sync.
2014-08-15 16:11:05 +02:00
Benno Fünfstück
ac9675baae
More tests (one currently failing) and fixes
2014-08-05 21:23:28 +02:00
Benno Fünfstück
19c77ae2d1
trifecta: don't allow reserved in identifier
...
trifecta should not parse reserved words as identifiers. Before
this commit, `in` would parse as an identifier name and thus
`let a = b; in c` fails to parse.
2014-08-03 16:16:52 +02:00
Benno Fünfstück
3922112bab
add a few hunit tests for parser
2014-08-03 15:56:01 +02:00
John Wiegley
92cf6eecf9
Switch from pretty to ansi-wl-pprint
2014-07-18 04:42:06 -05:00
Luca Bruno
b12dc4f187
Pretty print nix expressions
2014-07-07 16:26:14 +02:00
John Wiegley
be1434726a
Add initial support for parsing operators
2014-07-01 01:12:28 -05:00
John Wiegley
8158557bb9
Factor out the abstract of which parsing library to use
2014-06-30 23:29:06 -05:00
John Wiegley
9b12ebf081
Break up Parser.hs, make use of Parsec optional
2014-06-30 23:12:18 -05:00
John Wiegley
29909a2598
Setup cabal file, fix all warnings
...
The next step is splitting up and prettifying Parser.hs
2014-06-30 22:37:20 -05:00