aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-04add explanation and examples of file system objectsValentin Gagarin
2022-08-04remove diagonal from operations diagramValentin Gagarin
2022-08-04remove draft on derivationsValentin Gagarin
2022-08-04move first mention of file system object before diagramValentin Gagarin
2022-08-04make clear that file system is for processes Valentin Gagarin
Co-authored-by: John Ericson <John.Ericson@Obsidian.Systems>
2022-08-04constrain garbage collection scope Valentin Gagarin
garbage collection is now incremental, and may (in theory) never delete all unreferenced objects if it is slow enough.
2022-08-04references are added according to build task Valentin Gagarin
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-04operations diagram: store' to the rightValentin Gagarin
this also looks more diverse, hopefully easier to distinguish Co-authored-by: John Ericson <John.Ericson@Obsidian.Systems>
2022-08-04add commas between output valuesValentin Gagarin
2022-08-04use singular to match section headingValentin Gagarin
2022-08-04use reference links for URLsValentin Gagarin
2022-08-04add subsections for objects and referencesValentin Gagarin
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-04move closure property to discussion referencesValentin Gagarin
2022-08-04replace pseudo code by diagramsValentin Gagarin
change prose description to visually resemble the data structure
2022-08-04use reference links for URLsValentin Gagarin
2022-08-04clarify first sentence on store objectsValentin Gagarin
2022-08-04fix grammar for clarityValentin Gagarin
2022-08-04introduce mapping to Unix files and processesValentin Gagarin
2022-08-04introduce store and store objects without file system detailsValentin Gagarin
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-04beautify rosetta tableValentin Gagarin
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-04use reference links for URLsValentin Gagarin
2022-08-04introduce build tasksValentin Gagarin
while it appears a bit much for the overview, this way we set the stage for going directly into data types when describing the store, instead of first having to say what build tasks are and how they relate to build plans.
2022-08-04revert to build plans in top-level overviewValentin Gagarin
do not introduce build tasks yet, that is the next level of detail.
2022-08-04use reference links for URLsValentin Gagarin
2022-08-04revert to "build plan" in overview diagramValentin Gagarin
this displays correct composition again. build inputs and build results are not part of build plans in terms of data objects. also this is a much less complicated setup. this will be the first impression of architecture, and we want to get it right.
2022-08-04Nix store does not underly literally everythingValentin Gagarin
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2022-08-04add link from overview to store sectionValentin Gagarin
the overview should only link to the three main concepts presented. the store is now fairly fleshed out. others can follow later.
2022-08-04architecture overview: add link to command line referenceValentin Gagarin
2022-08-04architecture overview: add link to Nix expression language referenceValentin Gagarin
update summary title to match file contents
2022-08-04use singular for class names consistentlyValentin Gagarin
2022-08-04clarify relation of tasks and plansValentin Gagarin
2022-08-04build rule -> build taskValentin Gagarin
closer to "build systems a la carte", satisfies all other complaints
2022-08-04build step -> build ruleValentin Gagarin
"step" sounds atomic, while "rule" hints at internal structure, which in our case consists of mapping inputs to outputs using build instructions.
2022-08-04match grammatical case to arrow directionValentin Gagarin
2022-08-04update architecture diagramValentin Gagarin
2022-08-04remove incomplete section: input/content-addressingValentin Gagarin
2022-08-04remove incomplete section: nix archivesValentin Gagarin
2022-08-04remove incomplete section: content-addressed objectsValentin Gagarin
2022-08-04remove incomplete section: relocatabilityValentin Gagarin
2022-08-04remove incomplete section: related workValentin Gagarin
2022-08-04remove incomplete section: buildingValentin Gagarin
2022-08-04Fix manual TOC linksJohn Ericson
2022-08-04Fix rel path in docJohn Ericson
2022-08-04reword details on keeping closure propertyValentin Gagarin
2022-08-04add motivation for referencesValentin Gagarin
2022-08-04stores can also delete objectsValentin Gagarin
2022-08-04formalize file system objectsValentin Gagarin
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-04reword section on referencesValentin Gagarin
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-04reword file system objectsValentin Gagarin
- use singular for the "class" - more consistency in type definition - minor fixes in wording
2022-08-04move git comparison to related workValentin Gagarin
it should be pulled out of the branch before we go for merging