[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20/118: == operator: Ignore string context
From: |
Ludovic Courtès |
Subject: |
20/118: == operator: Ignore string context |
Date: |
Tue, 19 May 2015 14:45:19 +0000 |
civodul pushed a commit to branch nix
in repository guix.
commit ee7fe64c0ac00f2be11604a2a6509eb86dc19f0a
Author: Eelco Dolstra <address@hidden>
Date: Tue Jun 10 14:02:56 2014 +0200
== operator: Ignore string context
There really is no case I can think of where taking the context into
account is useful. Mostly it's just very inconvenient.
---
src/libexpr/eval.cc | 13 ++-----------
src/libexpr/primops.cc | 2 +-
tests/lang/eval-okay-context.nix | 2 +-
3 files changed, 4 insertions(+), 13 deletions(-)
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 81ce7d9..87b6bc9 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -1355,17 +1355,8 @@ bool EvalState::eqValues(Value & v1, Value & v2)
case tBool:
return v1.boolean == v2.boolean;
- case tString: {
- /* Compare both the string and its context. */
- if (strcmp(v1.string.s, v2.string.s) != 0) return false;
- const char * * p = v1.string.context, * * q = v2.string.context;
- if (!p && !q) return true;
- if (!p || !q) return false;
- for ( ; *p && *q; ++p, ++q)
- if (strcmp(*p, *q) != 0) return false;
- if (*p || *q) return false;
- return true;
- }
+ case tString:
+ return strcmp(v1.string.s, v2.string.s) == 0;
case tPath:
return strcmp(v1.path, v2.path) == 0;
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 993d290..feb0227 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -1297,7 +1297,7 @@ void EvalState::createBaseEnv()
language feature gets added. It's not necessary to increase it
when primops get added, because you can just use `builtins ?
primOp' to check. */
- mkInt(v, 2);
+ mkInt(v, 3);
addConstant("__langVersion", v);
// Miscellaneous
diff --git a/tests/lang/eval-okay-context.nix b/tests/lang/eval-okay-context.nix
index b3f1748..8cd8f2e 100644
--- a/tests/lang/eval-okay-context.nix
+++ b/tests/lang/eval-okay-context.nix
@@ -1,6 +1,6 @@
let s = "foo ${builtins.substring 33 100 (baseNameOf ./eval-okay-context.nix)}
bar";
in
- if s == "foo eval-okay-context.nix bar"
+ if s != "foo eval-okay-context.nix bar"
then abort "context not discarded"
else builtins.unsafeDiscardStringContext s
- 13/118: nix-build: --add-root also takes 1 parameter, (continued)
- 13/118: nix-build: --add-root also takes 1 parameter, Ludovic Courtès, 2015/05/19
- 16/118: Fix test, Ludovic Courtès, 2015/05/19
- 15/118: Sort nixPath attributes, Ludovic Courtès, 2015/05/19
- 10/118: Remove ExprBuiltin, Ludovic Courtès, 2015/05/19
- 09/118: Make the Nix search path declarative, Ludovic Courtès, 2015/05/19
- 04/118: Ugly hack to allow --argstr values starting with a dash, Ludovic Courtès, 2015/05/19
- 19/118: Report daemon OOM better, Ludovic Courtès, 2015/05/19
- 06/118: Add primop ‘scopedImport’, Ludovic Courtès, 2015/05/19
- 21/118: Add autoloads, make code more concise & idiomatic, Ludovic Courtès, 2015/05/19
- 25/118: Fix bogus warnings about dumping large paths, Ludovic Courtès, 2015/05/19
- 20/118: == operator: Ignore string context,
Ludovic Courtès <=
- 17/118: nix-env -qa --json: Generate valid JSON even if there are invalid meta attrs, Ludovic Courtès, 2015/05/19
- 23/118: findFile: Realise the context of the path attributes, Ludovic Courtès, 2015/05/19
- 11/118: Rephrase @ operator description, Ludovic Courtès, 2015/05/19
- 29/118: Merge branch 'shlevy-import-native', Ludovic Courtès, 2015/05/19
- 12/118: dev-shell is a bash script, not sh, Ludovic Courtès, 2015/05/19
- 22/118: Share code between scopedImport and import, Ludovic Courtès, 2015/05/19
- 26/118: Don't use member initialisers, Ludovic Courtès, 2015/05/19
- 31/118: Add `--json` argument to `nix-instantiate`, Ludovic Courtès, 2015/05/19
- 18/118: Print a warning when loading a large path into memory, Ludovic Courtès, 2015/05/19
- 27/118: Add importNative primop, Ludovic Courtès, 2015/05/19