Conversation
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/b550fe4b4776908ac2a861124307045f8e717c8e' (2024-02-28)
→ 'github:NixOS/nixpkgs/88dca77be222aedd1f47d2cf0942dffefee76216' (2024-06-03)
Manually tested by printing to stderr in both branches (sp in os
stack, or not), and triggering a GC in a filterSource function,
e.g.:
let
generateTree = n: if n == 0 then "ha" else { left = generateTree (n - 1); right = generateTree (n - 1); };
in
builtins.deepSeq (generateTree 18) ...
Note that the darwin still uses the strategy of disabling GC, despite
having an implementation that compiles. The proper solution will be
enabled and tested later.
This re-enables support for older bwdgc versions without complicating the code too much. Coroutines generally only interfere with GC during source filtering, so it's not too bad of a regression on older bdwgc. This seems preferable over conditional compilation to enable the patch etc; we've already spent a lot of complexity budget on this GC-coroutine interaction...
Nixpkgs has reshuffled its Nix versions.
ec330b6 to
6067525
Compare
da6244b to
8a510f4
Compare
b7c6cee to
d47d9c5
Compare
Temporarily(?) blocked on NixOS/nixpkgs#297475 (comment)
d47d9c5 to
5d460d5
Compare
diff --git a/flake.nix b/flake.nix
index a146079f4..5dbc554fc 100644
--- a/flake.nix
+++ b/flake.nix
@@ -46,6 +46,7 @@
"armv7l-unknown-linux-gnueabihf"
"riscv64-unknown-linux-gnu"
"x86_64-unknown-netbsd"
+ "x86_64-unknown-freebsd"
"x86_64-w64-mingw32"
];
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 1eb60a1b8..7c676829e 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -31,7 +31,6 @@
#include <sstream>
#include <cstring>
#include <optional>
-#include <pthread.h>
#include <unistd.h>
#include <sys/time.h>
#include <fstream>
@@ -48,6 +47,8 @@
#define GC_INCLUDE_NEW
+#include <pthread.h>
+
#include <gc/gc.h>
#include <gc/gc_cpp.h>
#include <gc/gc_allocator.h>Fix for Windows, and FreeBSD is back! :) |
Ericson2314
left a comment
There was a problem hiding this comment.
I think this is good
-
Many prior release, we disabled some i686 VM tests. I think it's fine to do that to start. The fact that there is a potential upstream solution or this is icing on the cake!
-
The GC patch does stop us from using old versions, but that's also fine, because getting rid of our Nix-specific patch is so good. If someone wants to restore the old version support, we can always do it with CPP. But let's not do that if no one asks.
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
> 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 cc6f315, in the update to Nixpkgs 24.05 NixOS#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.
|
It looks like this broke the riscv64 and FreeBSD builds: https://hydra.nixos.org/eval/1806835#tabs-still-fail The riscv64 build is a dependency of the |
|
@edolstra only the multi-core builds seem to fail for me. |
|
@edolstra the FreeBSD build is newly re-introduced since that platform is unbroken in 24.05. I'll fix it, but I wouldn't call it a regression per se :) |
NixOS 24.05 is now used on the main branch as NixOS#10835 has been merged. This commit backport the `boehm-gc` fix (NixOS@b311f51) to the 2.18.2 tag.
Description
Update Nixpkgs to 24.05. Support for building with "plain" 23.11 dependencies is dropped, because of the bdw-gc 8.2.4 requirement.
Context
Priorities and Process
Add 👍 to pull requests you find important.
The Nix maintainer team uses a GitHub project board to schedule and track reviews.