lib/block-rust-go.nix
A stdenv adapter that marks Rust and Go derivations broken.
Fil-C compiles C and C++. Rust and Go bring their own compilers and runtimes, so a Fil-C build of them is either impossible or not memory safe in the Fil-C sense. With this adapter such packages fail evaluation with a "broken" problem that says why, instead of reaching a confusing error deep in rustc's or Go's platform tables. Native tools used at build time are unaffected: they come from buildPackages, whose stdenv this adapter does not touch.
Servers whose processes share memory that holds pointers are refused the same way: the PostgreSQL server here, nginx in ports.nix. Fil-C keeps each pointer's capability in the process's own shadow memory, so a pointer one process stores in shared memory has none in another (docs/nixos-userland.md). Their client libraries, such as libpq, are separate packages and stay Fil-C.