(This is response to bug report at guile-user ML, not yet in archives)
Running
./pre-inst-env guix build --target=i586-pc-gnu --system=i686-linux guile-fibers
make[1]: Entering directory '/tmp/guix-build-guile-fibers-1.3.1.drv-0/source'
./env
/gnu/store/6f0nwq8wfcrbii9lxlffjph7kajgp6q9-guile-3.0.9/bin/guild compile --target=i586-pc-gnu -L "/tmp/guix-build-guile-fibers-1.3.1.drv-0/source"
-Wunbound-variable -Warity-mismatch -Wformat -o "fibers/operations.go" "fibers/operations.scm"
[…]
In unknown file:
5 (primitive-load-path "fibers/events-impl" #<procedure 29b290 at ice-9/boot-9.scm…>)
Looking at the backtrace, while compiling (fibers operations), it loads (fibers events-impl).
In override/fibers/events-impl.scm:
41:15 4 (_)
In particular, it loads the override. The override/non-override was added in 62b2ca6 to make sure that when compiling, no .so are loaded! The override contains the .so loading code, the non-override fibers/events-impl.scm is a stub that’s completely safe for (cross-)compilation.
So, it has no business loading override/fibers/events-impl.scm! The only place where ‘override’ is added to the load path is in ‘env.in/env’, which is only used for testing (not for actual compilation).
Yet, the make says ‘./env [guild compile stuff’ – that ‘./env’ shouldn’t be appearing there (it’s for running tests / examples (runtime things), not compilation). Looking at https://github.com/wingo/fibers/actions/runs/11133129373/job/30938526065, this ‘./env’ also mysteriously appears upstream.
So, what adds ./env and how do we stop it? (I don’t have an appropriate system for investigation at the moment.)
(This is response to bug report at guile-user ML, not yet in archives)
Running
Looking at the backtrace, while compiling (fibers operations), it loads (fibers events-impl).
In particular, it loads the override. The override/non-override was added in 62b2ca6 to make sure that when compiling, no .so are loaded! The override contains the .so loading code, the non-override fibers/events-impl.scm is a stub that’s completely safe for (cross-)compilation.
So, it has no business loading override/fibers/events-impl.scm! The only place where ‘override’ is added to the load path is in ‘env.in/env’, which is only used for testing (not for actual compilation).
Yet, the make says ‘./env [guild compile stuff’ – that ‘./env’ shouldn’t be appearing there (it’s for running tests / examples (runtime things), not compilation). Looking at https://github.com/wingo/fibers/actions/runs/11133129373/job/30938526065, this ‘./env’ also mysteriously appears upstream.
So, what adds ./env and how do we stop it? (I don’t have an appropriate system for investigation at the moment.)