Hello Nixers
Some news from the Tweag Nix team:
Community work
-
@edolstra recently announced a reform of the NixOS Foundation. A number of us put in significant effort towards making this a reality, and will continue doing so:
- @edolstra and @thufschmitt got involved in the discussions as future board members
- @fricklerhandwerk helped with revising the public announcement
- @mboes and @aspiwack got involved in early discussions to help shaping the whole thing
Nix implementation
- @edolstra worked on improving the state of the statically compiled Nix (nix#6707, nix#6708, nix#6709, nix#6710, nix#6714).
- @edolstra also helped @grahamc (from Determinate Systems) formatting the whole Nix source tree to bring more consistency to the code (nix#6721)
- Following his work on building NixOS VMs from a Mac machine, @YorikSar started a discussion on system-agnostic builders (nix#6697)
- @thufschmitt helped @aciceri (from MLabs) to pick-up the stalled work on making Hydra compatible with CA derivations (hydra#1228)
-
@thufschmitt fixed a small leak in the pure evaluation scheme, where
~/foo
evaluated to something different depending on the value of$HOME
(nix#6698) Unfortunately this seems to be causing some unexpected complications (nixpkgs#179172), so it might require a bit more work.
Communication & documentation
- @fricklerhandwerk set up a documentation team.
-
@thufschmitt published a fourth
builtins.randomStorePath
episode
Nixpkgs
-
@infinisil started drafting the layout of a potential
nixpkgs-design teamnixpkgs teamnixpkgs infrastructure team to organize the necessary efforts towards makingnixpkgs
healthier.
Team structure
Although the NixOS Foundation announcement already indirectly stated it, we announce the departure of @edolstra, who served as a team lead for several years. He is now joining the team of Determinate Systems, where he will keep working towards making Nix greater than ever.
Nickel
-
@francoiscaddet translated the list library of
nixpkgs
to Nickel and statically typed it, as a dogfooding exercise and a benchmark for the typechecker (#722). -
@yannham opened a few general issues about design questions with respect to the semantics of contracts, merging, and typechecking (#710, #724).
-
@yannham opened an issue about field punning, a.k.a. an equivalent to
inherit
in Nickel (#747). Feel free to chime in and bikeshed! -
@fuzzypixelz has started an internship on improving performance. He has fixed a quadratic behavior when concatening arrays (#717), added a way to avoid recompiling regex many times (#732), and has started tackling lazy array contracts, a mechanism to prevent array operations that should run in constant time (like
head
) from being actually linear because of contracts (#749). -
@yannham added a companion RFC to the specification of the type system, trying to give an approachable overview of the Nickel type system, why it is the way it is, and proposals for improvement.
-
We’ve sometimes casually said that Nickel is close to being a superset of the Nix language. @francoiscaddet is now putting those words into action as he has started to tackle a Nix to Nickel compiler.
-
@yannham presented (again, intially presented at SPLASH 2021) a talk explaning why adding general union and intersection contracts to Nickel is hard at ECOOP 2022, a research conference. You can read the companion blogpost for a condensed version of the paper.
And that’s all, folks