aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-12-12 10:59:50 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-12-12 10:59:50 +0100
commit8aedaf111eff8be53361b2e3cfa43a86a0c9ec2d (patch)
tree027e57d328e6c00ea8e0c3b6c8153945c281c129 /src/libexpr
parenta144eb1415a4df24dedf94cb6fc56e561af3b7ee (diff)
Remove canary stuff
Diffstat (limited to 'src/libexpr')
-rw-r--r--src/libexpr/eval.cc21
-rw-r--r--src/libexpr/eval.hh8
-rw-r--r--src/libexpr/primops.cc27
3 files changed, 0 insertions, 56 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 2ff975610..298f6a3a6 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -247,7 +247,6 @@ EvalState::EvalState(const Strings & _searchPath)
EvalState::~EvalState()
{
fileEvalCache.clear();
- printCanaries();
}
@@ -1514,26 +1513,6 @@ void EvalState::printStats()
}
-void EvalState::printCanaries()
-{
-#if HAVE_BOEHMGC
- if (!settings.get("debug-gc", false)) return;
-
- GC_gcollect();
-
- if (gcCanaries.empty()) {
- printMsg(lvlError, "all canaries have been garbage-collected");
- return;
- }
-
- printMsg(lvlError, "the following canaries have not been garbage-collected:");
-
- for (auto i : gcCanaries)
- printMsg(lvlError, format(" %1%") % i->string.s);
-#endif
-}
-
-
size_t valueSize(Value & v)
{
std::set<const void *> seen;
diff --git a/src/libexpr/eval.hh b/src/libexpr/eval.hh
index 8bf65c2c5..78942927f 100644
--- a/src/libexpr/eval.hh
+++ b/src/libexpr/eval.hh
@@ -287,8 +287,6 @@ public:
/* Print statistics. */
void printStats();
- void printCanaries();
-
private:
unsigned long nrEnvs;
@@ -320,12 +318,6 @@ private:
friend struct ExprOpConcatLists;
friend struct ExprSelect;
friend void prim_getAttr(EvalState & state, const Pos & pos, Value * * args, Value & v);
-
-#if HAVE_BOEHMGC
- std::set<Value *> gcCanaries;
- friend void canaryFinalizer(GC_PTR obj, GC_PTR client_data);
- friend void prim_gcCanary(EvalState & state, const Pos & pos, Value * * args, Value & v);
-#endif
};
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 1ddeac6b2..cd7b287e2 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -417,32 +417,6 @@ static void prim_trace(EvalState & state, const Pos & pos, Value * * args, Value
}
-#if HAVE_BOEHMGC
-void canaryFinalizer(GC_PTR obj, GC_PTR client_data)
-{
- Value * v = (Value *) obj;
- EvalState & state(* (EvalState *) client_data);
- printMsg(lvlError, format("canary ‘%1%’ garbage-collected") % v->string.s);
- auto i = state.gcCanaries.find(v);
- assert(i != state.gcCanaries.end());
- state.gcCanaries.erase(i);
-}
-#endif
-
-
-void prim_gcCanary(EvalState & state, const Pos & pos, Value * * args, Value & v)
-{
- string s = state.forceStringNoCtx(*args[0], pos);
- state.mkList(v, 1);
- Value * canary = v.list.elems[0] = state.allocValue();
-#if HAVE_BOEHMGC
- state.gcCanaries.insert(canary);
- GC_register_finalizer(canary, canaryFinalizer, &state, 0, 0);
-#endif
- mkString(*canary, s);
-}
-
-
void prim_valueSize(EvalState & state, const Pos & pos, Value * * args, Value & v)
{
/* We're not forcing the argument on purpose. */
@@ -1560,7 +1534,6 @@ void EvalState::createBaseEnv()
// Debugging
addPrimOp("__trace", 2, prim_trace);
- addPrimOp("__gcCanary", 1, prim_gcCanary);
addPrimOp("__valueSize", 1, prim_valueSize);
// Paths