Commit graph

62 commits

Author SHA1 Message Date
adisbladis dd8affe264 Add missing include for eval-settings.hh 2023-11-03 03:07:37 +00:00
Jörg Thalheim 56f0464288 use platform instead of querySystem()
nix-build uses "system" from the derivation rather than the derivation attributes
2023-10-07 22:52:14 +02:00
Jörg Thalheim 15ec2c4663 print derivation name if system attribute is missing 2023-09-12 07:07:07 +00:00
Andrea Bedini f88571cfc9 Fix formatting 2023-07-14 07:09:40 +00:00
Andrea Bedini 15e5f5f7c8 Add --override-input 2023-07-14 07:09:40 +00:00
Andrea Bedini ab07651f74 Small refactor to avoid optional values 2023-07-14 07:09:40 +00:00
Jörg Thalheim 9e8320dbd6 fix c++20 warnings 2023-06-10 13:52:28 +02:00
Jörg Thalheim 7130e84e9e fix build 2023-06-10 13:34:42 +02:00
adisbladis 73ee1712fa
Merge pull request #207 from RaitoBezarius/input-drvs
feat: add inputDrvs to the JSON
2023-04-26 15:36:28 +12:00
raito 469a68d5c1 feat: add inputDrvs to the JSON
Currently, not a lot of things expose inputDrvs (except
`show-derivation`), which is a showstopper whenever you want to compute
popularity ranking based on the dependency relation.

Having `inputsDrvs` in the reply enable downstream users to perform such
computations in an efficient way.
2023-04-24 19:35:45 +02:00
Julien Malka 4d674c352e
fix recurseForDerivations evaluation in force-recurse mode 2023-04-24 17:17:47 +02:00
Jörg Thalheim e9c301bcbe document the worker/memory tradeoff 2023-04-13 23:23:51 +02:00
Jörg Thalheim 54a9b26431 fix build with nix 2.14 2023-03-09 22:21:59 +01:00
Jörg Thalheim 205f05ac02 fix build with 2.13 2023-01-22 11:19:24 +01:00
Jörg Thalheim 9d516a72d7 fix double-free caused by usage of shared pointer 2023-01-22 10:37:17 +01:00
Tom Bereknyei 7110a1a6c7 fix: catch errors for invalid derivations 2023-01-02 08:06:06 +01:00
Timothy DeHerrera c8b52f5836
fix: use InstallableFlake type & methods
Fixes #134

Use the `InstallableFlake` type in order to make use of it's `toValue`
method. This fixes the functor auto-call by including the work from
nixos/nix#6404.

Future work may make use of this object and its methods to employ the
flake based eval cache.
2022-11-04 09:37:54 -06:00
adisbladis 1af1893abe
Merge pull request #130 from nix-community/eval-store
Respect passed eval store
2022-10-18 14:51:11 +13:00
adisbladis e0c27dc984 Respect passed eval store 2022-10-18 14:46:37 +13:00
adisbladis b9836f2e06 Add parameter to force recursion (don't honour recurseIntoAttrs)
This can be useful when you are not in control over your expressions.

My use case is evaluating a Hydra jobset.
2022-10-18 14:42:26 +13:00
Jörg Thalheim 47a74fed83 also accept relative gc root directories 2022-09-20 20:12:55 +02:00
Jörg Thalheim 70afaeebca avoid shadowing metaName 2022-09-17 10:48:25 +02:00
Jörg Thalheim cb8126538f fix recurseIntoAttrs handling 2022-09-15 11:04:12 +02:00
Jörg Thalheim f6890b93e8 add check-cache-status option to query wether a binary cache has the build 2022-09-15 11:04:12 +02:00
Zhaofeng Li 23f4dfdc24 Add support for passing a Nix expression on the command line
Fixes #38.
2022-08-17 10:59:44 -06:00
Zhaofeng Li 9f64612215 Don't override evalSettings.pureEval unless necessary
Other eval flags like `--pure-eval` may activate `evalSettings.pureEval`,
so let's avoid touching it if we don't have to.
2022-08-17 00:53:08 -06:00
Jörg Thalheim 882d2376cf
fixes for nixUnstable 2022-05-09 09:50:48 +02:00
John Soo efca7105c7 Silence more harmless warnings. 2022-04-27 04:08:01 +12:00
adisbladis fec10f2cfc src/nix-eval-jobs.cc: Reformat with clang-format 2022-04-26 21:20:24 +12:00
adisbladis 61c9f4cfcc Replace internal attr string representation with an array
This ensures correct handling of attrnames with a dot in them and will
not throw errors about illegal attrnames.

Additionally this escapes any attributes containing dots in the JSON
output and adds another field called `attrPath` which contains the
attribute path as a list.

Example output:
```
{
  "attr": "hello",
  "attrPath": [
    "hello"
  ],
  "drvPath": "/nix/store/n204jib73z55cp9s0rmw1c5v5q528j7v-hello-2.12.drv",
  "name": "hello-2.12",
  "outputs": {
    "out": "/nix/store/h59dfk7dwrn7d2csykh9z9xm2miqmrnz-hello-2.12"
  },
  "system": "x86_64-linux"
}
```
2022-04-26 19:43:56 +12:00
adisbladis c1bbb11c5d Add support for recurseForDerivations
This will respect `recurseForDerivations` when iterating over attrsets.

Example expression:
``` nix
{ system ? builtins.currentSystem }:
{
  recurseForDerivations = true;

  # This should build as it's in the top-level attrset
  drvA = derivation {
    inherit system;
    name = "drvA";
    builder = ":";
  };

  dontRecurse = {
    # This shouldn't build as `recurseForDerivations = true;` is not set
    # recurseForDerivations = true;

    # This should not build
    drvB = derivation {
      inherit system;
      name = "drvA";
      builder = ":";
    };
  };

  recurse = {
    # This should build
    recurseForDerivations = true;

    # This should not build
    drvC = derivation {
      inherit system;
      name = "drvC";
      builder = ":";
    };
  };

}
```
2022-04-25 22:11:53 +12:00
John Soo f98da2e00b
Cleanup worker json handling. 2022-04-22 00:36:54 -07:00
John Soo 7aa9835adb
Cleanup gcroots creation. 2022-04-22 00:36:13 -07:00
John Soo 8dd6426d15
Make Drv struct.
To facilitate collecting and jsonifying derivations in different
contexts
2022-04-22 00:35:30 -07:00
adisbladis 5f9d57e9b1
Merge pull request #55 from jsoo1/kill-zombies
Kill zombies.
2022-04-22 14:33:16 +07:00
John Soo b9a87464a0
Move collecting handler to separate function.
s/master/collector/g
2022-04-22 00:15:28 -07:00
John Soo a27faabd0a
Use Proc struct to manage forked processes.
Cleans up zombie processes.
2022-04-22 00:15:28 -07:00
John Soo 9d4c256fa0
Make a Proc struct for running processes. 2022-04-22 00:15:27 -07:00
adisbladis 353724df90 Fix querying output paths
The upstream function signature changed, we no longer have to pass onlyOutputsToInstall.
2022-04-22 19:07:40 +12:00
Jörg Thalheim c1b86245a1 fix for nixUnstable 2022-04-22 18:53:12 +12:00
adisbladis a07a22f94c
Merge pull request #53 from jsoo1/silence-irrelevant-warnings
Ignore -Wnon-virtual-dtor for static struct.
2022-04-22 13:51:36 +07:00
adisbladis 55d91140be
Merge pull request #57 from jsoo1/refactor-top-level-value-finding
Refactor top-level value finding.
2022-04-22 13:29:26 +07:00
John Soo 0e0c6c44d0
Ignore -Wnon-virtual-dtor for static struct. 2022-04-21 15:44:01 -07:00
John Soo dd8a2e89a0
Simplify top-level value fetching. 2022-04-21 11:44:02 -07:00
John Soo e05e625411
Make function to get top-level value from a flake. 2022-04-21 11:40:00 -07:00
John Soo 4a3d2e0008
Make function to get top-level value from releaseExpr. 2022-04-21 11:34:49 -07:00
John Soo b062ac705d
Set GC_DONT_GC=1.
To avoid `Collecting from unknown thread'.
2022-04-21 09:31:53 -07:00
Jörg Thalheim d592323c6b fix build with nix 2.7 2022-03-13 17:47:15 +01:00
Zhaofeng Li 6d61193286 Flush cout after each output line
The default buffering behavior depends on whether the output is connected
to an interactive device. This causes output lines to be buffered in an
undesirable way when stdout is piped, which is how nix-eval-jobs is
normally used. Let's fix it by flushing stdout explicitly.
2022-02-16 00:46:57 -08:00
Zhaofeng Li 1e0f309fef Add flag to enable trace output 2022-01-07 00:01:07 -08:00