about summary refs log tree commit diff
path: root/tvix/docs/language-spec.md
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2024-03-01T08·56+0200
committerclbot <clbot@tvl.fyi>2024-03-03T16·52+0000
commit65a810fc0b12e754af47864ab3b9d4b5756cde15 (patch)
treeec69ccf0de3dcd53dc47748f8f2a6a649a85ad48 /tvix/docs/language-spec.md
parent6bdaebcb55eef5663f93dbbc8de6a48b459a10c0 (diff)
feat(tvix/docs): switch to mdbook r/7645
Some of the docs are still outdated (like architecture and drv path
inconsistencies).

Change-Id: I7a6afceb008ef4cd19a764dd6c637b39fa842a2e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11072
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
Diffstat (limited to 'tvix/docs/language-spec.md')
-rw-r--r--tvix/docs/language-spec.md78
1 files changed, 0 insertions, 78 deletions
diff --git a/tvix/docs/language-spec.md b/tvix/docs/language-spec.md
deleted file mode 100644
index a71437493307..000000000000
--- a/tvix/docs/language-spec.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: "Specification of the Nix language"
-numbersections: true
-author:
-- tazjin
-email:
-- tazjin@tvl.su
-lang: en-GB
----
-
-The Nix Language
-================
-
-WARNING: This document is a work in progress. Please keep an eye on
-[`topic:nix-spec`](https://cl.tvl.fyi/q/topic:nix-spec) for ongoing
-CLs.
-
-Nix is a general-purpose, functional programming language which this
-document aims to describe.
-
-## Background
-
-Nix was designed and implemented as part of the [Nix package
-manager](https://nixos.org/nix). It is primarily used for generating
-so-called [*derivations*](#derivations), which are data structures
-describing how to build a package.
-
-The language has been described in the
-[thesis](https://edolstra.github.io/pubs/phd-thesis.pdf) introducing
-the package manager, but only on a high-level. At the time of writing,
-Nix is informally specified (via its only complete implementation in
-the package manager) and there is no complete overview over its -
-sometimes surprising - semantics.
-
-The primary project written in Nix is
-[nixpkgs](https://github.com/NixOS/nixpkgs/). Uncertainties in the
-process of writing this specification are resolved by investigating
-patterns in nixpkgs, which we consider canonical. The code in nixpkgs
-uses a reasonable subset of the features exposed by the current
-implementation, some of which are *accidental*, and is thus more
-useful for specifying how the language should work.
-
-## Introduction to Nix
-
-Nix is a general-purpose, partially lazy, functional programming
-language which provides higher-order functions, type reflection,
-primitive data types such as integers, strings and floats, and
-compound data structures such as lists and attribute sets.
-
-Nix has syntactic sugar for common operations, such as those for
-attribute sets, and also provides a wide range of built-in functions
-which have organically accumulated over time.
-
-Nix has a variety of legacy features that are not in practical use,
-but are documented in sections of this specification for the sake of
-completeness.
-
-This document describes the syntax and abstract semantics of the Nix
-language, but leaves out implementation details about how Nix can be
-interpreted/compiled/analysed etc.
-
-### Program structure
-
-This section describes the semantic structure of Nix, and how it
-relates to the rest of the specification.
-
-Each Nix program is a single [*expression*](#expressions) denoting a
-[*value*](#values) (commonly a [*function*](#functions)). Each value
-has a [*type*](#types), however this type is not statically known.
-
-Nix code is modularised through the use of the
-[*import*](#builtins-import) built-in function. No separate module
-system exists.
-
-In addition to chapters describing the building blocks mentioned
-above, this specificiation also describes the [*syntax*](#syntax), the
-available [built-in functions](#builtins), [*error handling*](#errors)
-and known [*deficiencies*](#deficiencies) in the language.