Skip to content

Project status

Anton Latukha edited this page Jan 13, 2021 · 3 revisions

HNix already used as a library by several good projects.

HNix can evaluate derivations, and give a proper .drv in the store. Currently it is easy to compare the output of HNix and Nix. HNix produces output paths on par with Nix. HNix for example manages to properly evaluate nixpkgs.firefox.

At the moment, it is good at parsing Nix language. The parser is feature-rich, helps to find locations of occurrences in the code, and so helps to debug code (but interface for that is a todo).

What waits to be implemented:

  • Have a look at Builtins.hs to find any missing builtins, and the ones that defer to Nix through a system call. Some of them are "simple" but require a bit of thinking (storePath, unsafeDiscardOutputDependency). Some are more involved, and not that widely used (fromTOML).
  • The fetchers (fetchurl, fetchGit, fetchMercurial). fetchurl currently works because it calls Nix behind the scenes.
  • Path filtering. path and filterPath, implementation requires the content of the file system filtered by evaluating a Nix function to serialize for the network socket. Not trivial, but also not that much needed in Nixpkgs, more important for local dev setups.
Clone this wiki locally