about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2022-06-10 16:31:31 +0200
committerGitHub <noreply@github.com>2022-06-10 16:31:31 +0200
commitb37801bc3f9d5adb162516419ac2a9475294a5dd (patch)
treea70fee412902620d2436eddb00f56be742522a6a /lib
parente3243028b5a8d434330dba1f11e8c555663f408b (diff)
parent4d9801a78fff121703c4ea4dcef8b6746973165c (diff)
downloadnixlib-b37801bc3f9d5adb162516419ac2a9475294a5dd.tar
nixlib-b37801bc3f9d5adb162516419ac2a9475294a5dd.tar.gz
nixlib-b37801bc3f9d5adb162516419ac2a9475294a5dd.tar.bz2
nixlib-b37801bc3f9d5adb162516419ac2a9475294a5dd.tar.lz
nixlib-b37801bc3f9d5adb162516419ac2a9475294a5dd.tar.xz
nixlib-b37801bc3f9d5adb162516419ac2a9475294a5dd.tar.zst
nixlib-b37801bc3f9d5adb162516419ac2a9475294a5dd.zip
Merge pull request #157480 from MatthewCroughan/in-pure-eval-mode
lib: add inPureEvalMode
Diffstat (limited to 'lib')
-rw-r--r--lib/default.nix2
-rw-r--r--lib/trivial.nix7
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/default.nix b/lib/default.nix
index 791eba8a9301..a0d3339ef08e 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -71,7 +71,7 @@ let
       info showWarnings nixpkgsVersion version isInOldestRelease
       mod compare splitByAndCompare
       functionArgs setFunctionArgs isFunction toFunction
-      toHexString toBaseDigits;
+      toHexString toBaseDigits inPureEvalMode;
     inherit (self.fixedPoints) fix fix' converge extends composeExtensions
       composeManyExtensions makeExtensible makeExtensibleWithCustomName;
     inherit (self.attrsets) attrByPath hasAttrByPath setAttrByPath
diff --git a/lib/trivial.nix b/lib/trivial.nix
index e4f95234b21a..ec5dd5a5a5ed 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -229,6 +229,13 @@ rec {
   */
   inNixShell = builtins.getEnv "IN_NIX_SHELL" != "";
 
+  /* Determine whether the function is being called from inside pure-eval mode
+     by seeing whether `builtins` contains `currentSystem`. If not, we must be in
+     pure-eval mode.
+
+     Type: inPureEvalMode :: bool
+  */
+  inPureEvalMode = ! builtins ? currentSystem;
 
   ## Integer operations