From 2bc35ab1d9d247c82b122c05b860b91579c30dec Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Sat, 12 Oct 2024 13:16:45 +0100 Subject: [PATCH] chore(nix): enable frame pointers --- flake.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index a3a05fd..a219aca 100644 --- a/flake.nix +++ b/flake.nix @@ -39,10 +39,15 @@ }; ocamlVersionOverlay = (ocaml: self: super: { ocamlPackages = ocaml super.ocaml-ng; }); + framePointers = ocaml: ocaml.override { framePointerSupport = true; }; + framePointersOverlay = self: super: { + ocamlPackages = super.ocamlPackages.overrideScope + (oself: osuper: { ocaml = framePointers osuper.ocaml; }); + }; makeNixpkgs = ocaml: - nixpkgs.legacyPackages.${system}.appendOverlays [ (ocamlVersionOverlay ocaml) ]; + nixpkgs.legacyPackages.${system}.appendOverlays + [ (ocamlVersionOverlay ocaml) ]; in rec { - # packages = makePackages pkgs; devShells.test = let pkgs = makeNixpkgs (ocaml: ocaml.ocamlPackages_5_2); packages = makePackages pkgs; @@ -57,6 +62,14 @@ inputsFrom = pkgs.lib.attrValues packages; buildInputs = extraBuildInputs pkgs ++ devInputs pkgs; }; + devShells.fp = let + pkgs = (makeNixpkgs (ocaml: ocaml.ocamlPackages_5_2)).appendOverlays + [ framePointersOverlay ]; + packages = makePackages pkgs; + in pkgs.mkShell { + inputsFrom = pkgs.lib.attrValues packages; + buildInputs = extraBuildInputs pkgs ++ devInputs pkgs; + }; devShells.memtrace = let pkgs = makeNixpkgs (ocaml: ocaml.ocamlPackages_4_14); packages = makePackages pkgs;