The code for serialization Expr nodes back into (pseudo-)Nix has been removed for being subtly error-prone and tedious to maintain. Instead, `nix-instantiate --parse` now prints a JSON representation of the AST. Usage patterns of the --parse flag I've found in the wild: 1. Check if a file is well-formed, i.e. discard output and test exit code 2. Get parser errors from a file, i.e. discard stdout and use stderr 3. Nixfmt uses --parse to test equivalence pre/post format, and that property is (should be?) preserved None of these should break with the current change Closes #487 Change-Id: Icdbaad17790f2ad8765fa08e02e6597ee4c7a909
692 B
692 B
synopsis, issues, cls, category, credits
| synopsis | issues | cls | category | credits | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| `nix-instantiate --parse` outputs json |
|
|
Breaking Changes |
|
nix-instantiate --parse does not print out the AST in a Nix-like format anymore.
Instead, it now prints a JSON representation of the internal expression tree.
Tooling should not rely on the stdout of nix-instantiate --parse.
We've done our best to ensure that the new behavior is as compatible with the old one as possible. If you depend on the old behavior in ways that are not covered anymore or are otherwise negatively affected by this change, then please reach out so that we can find a sustainable solution together.