From b5ca3d12b6f3414302363c8ae362334c020448c7 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Fri, 29 Apr 2022 02:10:24 +0200 Subject: [PATCH] reword details on keeping closure property --- doc/manual/src/architecture/store/objects.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/manual/src/architecture/store/objects.md b/doc/manual/src/architecture/store/objects.md index 30683d22d..f7587e112 100644 --- a/doc/manual/src/architecture/store/objects.md +++ b/doc/manual/src/architecture/store/objects.md @@ -43,13 +43,13 @@ Nix stores have the *closure property*: for each store object in the store, all Building, copying and deleting store objects must be done in a way that obeys this property: +- Build results must only refer to store objects in the closure of the build inputs. + +- Store objects being copied must refer to objects already in the destination store. + Recursive copying must either proceed in dependency order or be atomic. + - We can only safely delete unreferenced objects. -- When copying, to maintain correctness, either the result must be "revealed" atomically to the destination store, or objects must be copied in reference-dependency order. - -- Newly built store objects must only refer to store objects in the closure of the build inputs. - This ensures the purity of the build. - ### Reference scanning While references could be arbitrary paths, Nix requires them to be store paths to ensure correctness.