puck
577ef6e478
Use our own Thread struct instead of std::thread
...
We'd highly prefer using std::thread here; but this won't let us configure the stack
size. macOS uses 512KiB size stacks for non-main threads, and musl defaults to 128k.
While Nix configures a 64MiB size for the main thread, this doesn't propagate to the
threads we launch here. It turns out, running the evaluator under an anemic stack of
0.5MiB has it overflow way too quickly. Hence, we have our own custom Thread struct.
2024-06-09 13:20:20 +00:00
jade
ed7a959ae1
update lix pin to actually work
2024-05-30 12:50:13 -07:00
jade
d05f8e86a9
Merge pull request 'lix: deal with util.hh removal' ( #7 ) from jade/util-hh-removal into main
...
Reviewed-on: #7
2024-05-30 02:33:13 +00:00
jade
b67c46d320
lix: deal with util.hh removal
2024-05-29 19:17:54 -07:00
jade
30cf61fd26
fix: don't crash on startup on macOS
...
This is caused, through several layers of absurdity, by runtime type
information of Nix things being invisible due to -fvisibility=hidden
inside n-e-j.
We don't have any idea why n-e-j has -fvisibility=hidden, since blame
says it's from the initial commit. It is plausible that it was some
ill-advised optimization but it's not sound.
The crash is caused by dynamic_cast<RootArgs *>(MyArgs *) failing, which
is in turn caused by the RTTI being invisible.
See: https://www.qt.io/blog/quality-assurance/one-way-dynamic_cast-across-library-boundaries-can-fail-and-how-to-fix-it
Fixes: #2
2024-05-27 18:23:13 -06:00
jade
13524829d1
Merge pull request 'nixexpr -> lixexpr' ( #5 ) from jade/lixexpr into main
...
Reviewed-on: #5
2024-05-23 23:24:26 +00:00
jade
a94f80e512
nixexpr -> lixexpr
2024-05-23 16:23:45 -07:00
raito
02bcbe0c0e
Merge pull request 'fix crash in worker when opening the store' ( #4 ) from open-store-crash into main
...
Reviewed-on: #4
2024-05-11 15:49:35 +00:00
Jörg Thalheim
52e96bd421
fix crash in worker when opening the store
2024-05-11 17:41:27 +02:00
Linus Heckemann
2dbcbe4179
flake: actually use lix
2024-05-09 13:12:12 +02:00
eldritch horrors
793841a9b7
fix drv.cc invalid output throw
...
EvalState::error does not return an exception instance in lix, but an
exception *builder*. throwing this thing will not trigger any catches,
which then causes the worker process to die without reporting an error
to the collector. this confuses the collector and causes *it* to exit,
effectively breaking nix-eval-jobs for anything that has broken attrs.
2024-04-18 18:05:33 +02:00
Linus Heckemann
c3d8ca19b3
EvalError needs to reference an eval state now
2024-04-15 19:35:05 +02:00
Linus Heckemann
c1ee00bf7c
ProcessOptions: remove allowVfork field
...
This was removed in Lix 1f8b85786eed623319e5c71a5341b15e3006f870
2024-04-15 19:30:56 +02:00
Linus Heckemann
14e4308346
parseCmdline: no allowShebang arg
...
This arg was only introduced in Nix 2.19 (commit ffd414eb756dcb3c64348551d5dbaf674c0d4900)
2024-04-15 19:30:32 +02:00
Linus Heckemann
a2bd945259
hasPrefix -> starts_with
...
hasPrefix was removed in lix commit 61e21b25576f7f3491f6a837bf59d8b44c6897a0
2024-04-15 19:28:36 +02:00
Linus Heckemann
733f3051b1
Fix include paths for Nix headers
...
While the previous style seems more sensible to me (the header names
are quite generic), the pkg-config definitions both from upstream Nix
and from Lix specify -I${includedir}/nix in CFLAGS rather than
-I${includedir}. This may be worth changing, but for now I want
nix-eval-jobs to work and this does what I want.
2024-04-15 19:20:21 +02:00
Jörg Thalheim
6b03a93296
Merge pull request #292 from nix-community/renovate/lock-file-maintenance
...
Lock file maintenance
2024-01-14 15:34:46 +01:00
renovate[bot]
69371f7bae
Update cachix/install-nix-action action to v25
2024-01-12 17:34:52 +00:00
renovate[bot]
64104a3c55
Lock file maintenance
2023-12-25 01:06:16 +00:00
renovate[bot]
1a9b928a5f
Lock file maintenance
2023-12-25 01:02:06 +00:00
Jörg Thalheim
3c6e1234af
flake.nix: return to nixpkgs-unstable
2023-12-17 12:15:15 +00:00
Jörg Thalheim
8ef37192bd
README: add check-cache-status and nixpkgs evaluation examples
2023-12-17 12:15:15 +00:00
Jörg Thalheim
280de12085
README: update json and help output
2023-12-17 12:15:15 +00:00
Jörg Thalheim
e3d71921c3
buffered-io: also check for interrupts in readline
...
This allows us to more reliable interrupt nix-eval-jobs
2023-12-17 12:15:15 +00:00
Jörg Thalheim
4a1123c42d
Merge pull request #289 from nix-community/joerg-ci
...
fix exit status reporting when evaluation fails
2023-12-16 17:15:45 +01:00
Jörg Thalheim
b73f7ceff4
classify SIGSEV/SIGBUS as infinite recursion errors
2023-12-16 11:58:01 +01:00
Jörg Thalheim
093b8ce5cc
apply treefmt
2023-12-16 11:44:08 +01:00
Jörg Thalheim
b4f7eb3c77
fix ci for infinite recursion case
2023-12-16 11:40:34 +01:00
Jörg Thalheim
4d97e5a386
improve infinite recursion errors
2023-12-16 10:52:23 +01:00
Jörg Thalheim
83df9d4e24
fix exit status reporting when evaluation fails
2023-12-16 09:48:37 +01:00
Jörg Thalheim
89927c434c
make sure we also define HAVE_STRUCT_DIRENT_D_TYPE outside of autotools
2023-12-16 09:24:42 +01:00
Jörg Thalheim
8daea338f3
flake.lock: Update
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/0838486e9183ce39398f01b221766e68b50f405c' (2023-12-10)
→ 'github:NixOS/nixpkgs/203ecda835bcf69633df7183459283543dd4a874' (2023-12-15)
• Updated input 'treefmt-nix':
'github:numtide/treefmt-nix/afdd5e48a0869b389027307652a658051c0d2f96' (2023-12-10)
→ 'github:numtide/treefmt-nix/d06b70e5163a903f19009c3f97770014787a080f' (2023-12-13)
2023-12-16 09:20:53 +01:00
Jörg Thalheim
4b6d34214d
add include-what-you-use to devshell
2023-12-16 09:20:53 +01:00
Jörg Thalheim
1f4bbded61
optimize imports with "include-what-you-use"
2023-12-16 09:20:53 +01:00
renovate[bot]
843dc25cfe
chore(deps): lock file maintenance
2023-12-11 00:21:12 +00:00
Jörg Thalheim
521380076d
release proc.pid properly before calling waitpid()
2023-12-10 20:36:24 +00:00
Jörg Thalheim
e1ad62cef1
include orignal json in worker error message
2023-12-10 20:36:24 +00:00
Jörg Thalheim
d48cfadb3d
fix catching eval errors on macOS
2023-12-10 20:36:24 +00:00
Jörg Thalheim
c00fcbba8d
drop obsolete compiler warning suppression
2023-12-10 20:36:24 +00:00
Jörg Thalheim
b6ec7d2ecf
make MyArgs non-copyable
...
this seems to have weird effects
2023-12-10 20:36:24 +00:00
Jörg Thalheim
b24c03e2de
simplify collector function
...
looks like the lambda doesn't buy us anything here.
2023-12-10 20:36:24 +00:00
Jörg Thalheim
97dd8023e8
Merge pull request #283 from nix-community/joerg-ci
...
apply treefmt
2023-12-10 17:03:00 +01:00
Jörg Thalheim
b267eb917d
apply treefmt
2023-12-10 17:00:31 +01:00
Jörg Thalheim
f970ec3524
add test for evaluation errors
2023-12-10 16:59:14 +01:00
Jörg Thalheim
e7c30b306d
don't fail nix-eval-jobs on eval errors
...
This error handling was copied by accident in 5c764d4a67 (diff-a79ded172fd76747492a417a39848b6c25c14238e65971e6a05fe81706d5048fR622)
2023-12-10 15:57:18 +00:00
Jörg Thalheim
36a5368dfc
include missing filesystem header
2023-12-10 14:52:52 +00:00
Jörg Thalheim
3be8c48f54
fix format
2023-12-10 14:52:52 +00:00
Jörg Thalheim
a03f039a56
split nix-eval-jobs further into smaller files
2023-12-10 14:52:52 +00:00
Jörg Thalheim
880c66a7d1
move drvs ot its own class
2023-12-10 15:07:38 +01:00
Jörg Thalheim
db3099bc8f
move argument parsing to new file
2023-12-10 14:22:32 +01:00