From 31cc10fe03ff576cab7394b4da1cdeae7f653b84 Mon Sep 17 00:00:00 2001 From: Price Hiller Date: Fri, 13 Dec 2024 22:42:15 -0600 Subject: [PATCH] refactor(hm/price): improve rust performance --- users/price/conf/rust/default.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/users/price/conf/rust/default.nix b/users/price/conf/rust/default.nix index ec50dda5..0d844343 100644 --- a/users/price/conf/rust/default.nix +++ b/users/price/conf/rust/default.nix @@ -9,6 +9,11 @@ CARGO_HOME = "${config.xdg.dataHome}/cargo"; RUSTUP_HOME = "${config.xdg.dataHome}/rustup"; RUST_SRC_PATH = "${pkgs.fenix.complete.rust-src}/lib/rustlib/src/rust/library"; + # HACK: Specify openssl info for rust, this is really not a good idea, but it saves me from + # writing per-project shell.nix or `nix-shell -p` nonsense. I'm willing to compromise for my + # laziness. + OPENSSL_DIR = "${pkgs.openssl.dev}"; + OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib"; }; packages = with pkgs; [ (pkgs.fenix.complete.withComponents [ @@ -21,7 +26,17 @@ rust-analyzer-nightly cargo-watch cargo-nextest + sccache ]; + file = { + # NOTE: This improves the rust edit-build-run cycle. See https://davidlattimore.github.io/posts/2024/02/04/speeding-up-the-rust-edit-build-run-cycle.html + "${config.home.sessionVariables.CARGO_HOME}/config.toml".text = '' + [build] + rustflags = [ "-C", "linker=${pkgs.clang}/bin/clang", "-C", "link-arg=--ld-path=${pkgs.mold-wrapped}/bin/mold" ] + [profile.dev] + split-debuginfo = "unpacked" + ''; + }; }; }