Download Latest Version 2.8.1 source code.tar.gz (1.7 MB)
Email in envelope

Get an email when there's a new version of nixd

Home / 2.8.0
Name Modified Size InfoDownloads / Week
Parent folder
2.8.0 source code.tar.gz 2025-12-24 1.7 MB
2.8.0 source code.zip 2025-12-24 1.8 MB
README.md 2025-12-24 3.4 kB
Totals: 3 Items   3.4 MB 1

What's Changed

This version primarily focuses on enhancing primop (builtin) support in nixd.

Context: https://github.com/NixOS/nixpkgs/pull/449123

New Features

Validate builtins members: (by @inclyc) nixd now checks if a member accessed via builtins actually exists. If an unknown primop is detected, a diagnostic error is triggered.

:::nix
builtins.concatStringSep 
#        ^ Error: Unknown primop

Suggest removing redundant builtins. prefixes: (by @inclyc) For globally available primops (like map), nixd will suggest removing the builtins. prefix to keep the code concise.

:::nix
builtins.map
# ^^^^^ Hint: 'map' is globally available; 'builtins.' is unnecessary.

Suggest to add builtins prefixes: (by @inclyc)

image

Give warnings when user code overrides built-in names (by @inclyc)

Special thanks to @Mic92 for the suggestion!

In the Nix language, it is possible to override (shadow) builtin names. However, this is generally considered a bad practice as it is highly error-prone. For example:

nix-repl> let
            __lessThan = a: b: true;
          in
          2 < 1
true

Now nixd will place a warning on __lessThan definition:

overriding a builtin name `__lessThan` is discouraged, rename it to avoid confusion

Bug Fixes

Documentation

Other Changes

New Contributors

🎉 Event Announcement

I’ll be giving a talk on nixd at the NixOS CN Meetup [#2], slides. This session is tailored for the Chinese NixOS community, and I’m looking forward to sharing some insights with you all. 欢迎一起交流 ❤️ .

Full Changelog: https://github.com/nix-community/nixd/compare/2.7.0...2.8.0

Source: README.md, updated 2025-12-24