From 4755e133c410aa2611c23c3f8e106b4194da0c5e Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 10 Jun 2024 12:37:17 +0200 Subject: [PATCH 1/3] Fix warning --- src/libexpr/eval-cache.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libexpr/eval-cache.hh b/src/libexpr/eval-cache.hh index cac985829..b1911e3a4 100644 --- a/src/libexpr/eval-cache.hh +++ b/src/libexpr/eval-cache.hh @@ -31,7 +31,7 @@ struct CachedEvalError : EvalError class EvalCache : public std::enable_shared_from_this { friend class AttrCursor; - friend class CachedEvalError; + friend struct CachedEvalError; std::shared_ptr db; EvalState & state; @@ -87,7 +87,7 @@ typedef std::variant< class AttrCursor : public std::enable_shared_from_this { friend class EvalCache; - friend class CachedEvalError; + friend struct CachedEvalError; ref root; typedef std::optional, Symbol>> Parent; From 0a09597790348a3e0420020b0bab68517669ecf6 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 10 Jun 2024 12:37:24 +0200 Subject: [PATCH 2/3] Typo --- src/libexpr/eval.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 3524c8b1e..9e6b89544 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -365,7 +365,7 @@ void initGC() }; } #else - #warning "BoehmGC version does not support GC while coroutine exists. GC will be disabled inside coroutines. Consider updating bwd-gc to 8.4 or later." + #warning "BoehmGC version does not support GC while coroutine exists. GC will be disabled inside coroutines. Consider updating bdw-gc to 8.4 or later." #endif From f91f34aa653781ef46c4f6008269785f6198a3d4 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 10 Jun 2024 12:37:44 +0200 Subject: [PATCH 3/3] bdwgc 8.2.4 has sp_corrector > Support client-defined stack pointer adjustment before thread stack push -- https://github.com/ivmai/bdwgc/releases/tag/v8.2.4 This fixes an inaccuracy in cc6f31525253b73e4776b5f733e0950e1706d546, in the update to Nixpkgs 24.05 https://github.com/NixOS/nix/pull/10835 After this fixup, the build log won't ask for an upgrade, and we'll be able to collect when a coroutine exists, e.g. during filterSource. --- src/libexpr/eval.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 9e6b89544..f441977a5 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -354,7 +354,7 @@ void initGC() // TODO: Remove __APPLE__ condition. // Comment suggests an implementation that works on darwin and windows // https://github.com/ivmai/bdwgc/issues/362#issuecomment-1936672196 - #if GC_VERSION_MAJOR >= 8 && GC_VERSION_MINOR >= 4 && !defined(__APPLE__) + #if GC_VERSION_MAJOR >= 8 && GC_VERSION_MINOR >= 2 && GC_VERSION_MICRO >= 4 && !defined(__APPLE__) GC_set_sp_corrector(&fixupBoehmStackPointer); if (!GC_get_sp_corrector()) { @@ -365,7 +365,7 @@ void initGC() }; } #else - #warning "BoehmGC version does not support GC while coroutine exists. GC will be disabled inside coroutines. Consider updating bdw-gc to 8.4 or later." + #warning "BoehmGC version does not support GC while coroutine exists. GC will be disabled inside coroutines. Consider updating bdw-gc to 8.2.4 or later." #endif