Valentin Gagarin
d8b2f9f772
make concept map more compact
...
invert arrows to/from derivation:
- we need closures to form derivations
- we need derivations to perform builds
2022-08-04 12:37:47 +02:00
Valentin Gagarin
348432f48f
store: add concept map
...
this should help nativate the chapter by indicating which terms should
be known to understand a given concept.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
ec43977553
store: match chapter introduction to outline
...
the various levels of detail should describe the same things.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
7c656d90ca
simplify description of diagram
...
try not to be too fancy, it's just for reading the diagram out loud.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
631ca18ee6
reword notes on copying
...
clarify that we are copying between different stores. we have not
introduced that notion or why it would be interesting, but for now it
should be fine to keep it in context of the store directory.
we could move that later to a more detailed explanation of different
store types.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
c10dcccccd
make example a simple list
...
using JSON notation is unwarranted and not explained.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
9c544813d7
paths -> path
...
use singular for terminology uniformly
2022-08-04 12:37:47 +02:00
Valentin Gagarin
1681f4e9f3
better explain reference scanning
2022-08-04 12:37:47 +02:00
Valentin Gagarin
fa7ad4593d
explain store directory
2022-08-04 12:37:47 +02:00
Valentin Gagarin
f632816cba
add explanation and examples of file system objects
2022-08-04 12:37:47 +02:00
Valentin Gagarin
84ddfbf8fd
remove diagonal from operations diagram
2022-08-04 12:37:47 +02:00
Valentin Gagarin
93f721b0d2
remove draft on derivations
2022-08-04 12:37:47 +02:00
Valentin Gagarin
19d8a5d839
move first mention of file system object before diagram
2022-08-04 12:37:47 +02:00
Valentin Gagarin
a90fc62b61
make clear that file system is for processes
...
Co-authored-by: John Ericson <John.Ericson@Obsidian.Systems>
2022-08-04 12:37:47 +02:00
Valentin Gagarin
7993ba1f38
constrain garbage collection scope
...
garbage collection is now incremental, and may (in theory) never delete all unreferenced objects if it is slow enough.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
195aa28ff7
references are added according to build task
...
at this level of abstraction we do not really care about build instructions or what they are, and also build instructions including their arguments really amount to the build task.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
80de4a4804
operations diagram: store' to the right
...
this also looks more diverse, hopefully easier to distinguish
Co-authored-by: John Ericson <John.Ericson@Obsidian.Systems>
2022-08-04 12:37:47 +02:00
Valentin Gagarin
3794618cce
add commas between output values
2022-08-04 12:37:47 +02:00
Valentin Gagarin
7b7e4c6340
use singular to match section heading
2022-08-04 12:37:47 +02:00
Valentin Gagarin
e63a768e21
use reference links for URLs
2022-08-04 12:37:47 +02:00
Valentin Gagarin
843288a451
add subsections for objects and references
...
group description of data instead of spreading it across the section.
that should help direct skimming. as it turns out, people do not
actually read any of that.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
4341849193
move closure property to discussion references
2022-08-04 12:37:47 +02:00
Valentin Gagarin
445f753a82
replace pseudo code by diagrams
...
change prose description to visually resemble the data structure
2022-08-04 12:37:47 +02:00
Valentin Gagarin
db8703bcac
use reference links for URLs
2022-08-04 12:37:47 +02:00
Valentin Gagarin
4adb6602bd
clarify first sentence on store objects
2022-08-04 12:37:47 +02:00
Valentin Gagarin
4eb11d4592
fix grammar for clarity
2022-08-04 12:37:47 +02:00
Valentin Gagarin
b84f2bdfdd
introduce mapping to Unix files and processes
2022-08-04 12:37:47 +02:00
Valentin Gagarin
207992a71d
introduce store and store objects without file system details
...
this leaves open implementation details, especially about store paths
and file system objects, and allows explaining them together were it is
more appropriate. also leaves room to carefully introduce the key
insight behind Nix: applying results from programming language theory to
the operating system paradigm of files and processes.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
e72a7874dc
beautify rosetta table
...
while this may eventually introduce ugly diffs, the table will now
render readably on the terminal (e.g. for `man nix` or `nix --help`)
without further intervention.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
b6b112b366
use reference links for URLs
2022-08-04 12:37:47 +02:00
Valentin Gagarin
75ce324052
use singular for class names consistently
2022-08-04 12:37:47 +02:00
Valentin Gagarin
2a8532fb61
build rule -> build task
...
closer to "build systems a la carte", satisfies all other complaints
2022-08-04 12:37:47 +02:00
Valentin Gagarin
902638c519
build step -> build rule
...
"step" sounds atomic, while "rule" hints at internal structure, which in
our case consists of mapping inputs to outputs using build instructions.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
ad8c2ed7f0
remove incomplete section: input/content-addressing
2022-08-04 12:37:47 +02:00
Valentin Gagarin
3bd125ebbe
remove incomplete section: nix archives
2022-08-04 12:37:47 +02:00
Valentin Gagarin
b18852eb3f
remove incomplete section: content-addressed objects
2022-08-04 12:37:47 +02:00
Valentin Gagarin
7cec9ee361
remove incomplete section: relocatability
2022-08-04 12:37:47 +02:00
Valentin Gagarin
96876b1eae
remove incomplete section: related work
2022-08-04 12:37:47 +02:00
Valentin Gagarin
1ba6d8fb1d
remove incomplete section: building
2022-08-04 12:37:47 +02:00
John Ericson
b01bb65d30
Fix rel path in doc
2022-08-04 12:37:47 +02:00
Valentin Gagarin
b5ca3d12b6
reword details on keeping closure property
2022-08-04 12:37:47 +02:00
Valentin Gagarin
e90586c0a4
add motivation for references
2022-08-04 12:37:47 +02:00
Valentin Gagarin
07d490fd89
stores can also delete objects
2022-08-04 12:37:47 +02:00
Valentin Gagarin
5fda995491
formalize file system objects
...
convention: describe every data type in prose, and illustrate with
a class diagram, and a textual representation of an abstract
data type.
right now we save ourselves the trouble of doing class diagrams, we can
add them later. but they are important.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
fb2ec7e4ec
reword section on references
...
use file Contents instead of Data, as that flows more naturally in the
prose.
simplify explanation of the idea behind scanning for store paths
remove references to unfinished sections.
2022-08-04 12:37:47 +02:00
Valentin Gagarin
90fc5b41a8
reword file system objects
...
- use singular for the "class"
- more consistency in type definition
- minor fixes in wording
2022-08-04 12:37:47 +02:00
Valentin Gagarin
e5e48593c8
move git comparison to related work
...
it should be pulled out of the branch before we go for merging
2022-08-04 12:37:47 +02:00
Valentin Gagarin
a145007a57
component -> store object, realisation -> build
2022-08-04 12:37:47 +02:00
Valentin Gagarin
40efe5b30b
build instrcution: Task -> function
2022-08-04 12:37:47 +02:00
Valentin Gagarin
ca5ebf6382
revert build plan/step distinction, reorder rows
2022-08-04 12:37:47 +02:00