Skip to content

Lazy, async instantiation and fetching (tracking) #11161

Open
@roberth

Description

A description of the solution space from an instantiation angle, having commonalities with eval-time fetching.

Is your feature request related to a problem? Please describe.

  • Instantiation should be quick.
  • Instantiation process forms a DAG, which allows some parallel processing.
  • Instantiation isn't I/O but O; fundamentally only output, so most processing can happen asynchronously after being initiated from the evaluator; only IFD and the evaluator's callers may need to await.
  • Fetching of sources has significant latent parallelism.

Ideally the I/O is non-blocking, so as not to need unnecessary thread blocking / switching / syncing, but I don't think this should be the focus yet. My use of "asynchronous" here mostly describes the computational nature of the domain; not necessarily its I/O control flow implementation.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Priorities

Add 👍 to issues you find important.

Metadata

Assignees

No one assigned

    Labels

    featureFeature request or proposalfetchingNetworking with the outside (non-Nix) world, input lockinglanguageThe Nix expression language; parser, interpreter, primops, evaluation, etcperformancestoreIssues and pull requests concerning the Nix store

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions