Remove spec.md page.
Source of truth is https://github.com/bazelbuild/starlark/blob/master/spec.md
RELNOTES: None.
PiperOrigin-RevId: 215639594
diff --git a/site/docs/build-ref.html b/site/docs/build-ref.html
index e175c14..dab6674 100644
--- a/site/docs/build-ref.html
+++ b/site/docs/build-ref.html
@@ -411,8 +411,35 @@
<p>
However, BUILD files are evaluated using an imperative language,
+ <a href="https://github.com/bazelbuild/starlark/">Starlark</a>.
- <a href="skylark/language.html">Skylark</a>.
+ BUILD files are interpreted as a sequential list of statements.
+ Build rule functions, such as <code>cc_library</code>, are procedures whose
+ side-effect is to create an abstract build rule inside the build tool.
+</p>
+
+<p>
+ To encourage a clean separatation between code and data, BUILD files cannot
+ contain function definitions, <code>for</code> statements or
+ <code>if</code> statements (but list comprehensions and <code>if</code>
+ expressions are allowed). Functions should be declared in <code>.bzl</code>
+ files instead.
+</p>
+
+<p>
+ Crucially, programs in Skylark are unable to perform
+ arbitrary I/O. This invariant makes the
+ interpretation of BUILD files hermetic, i.e. dependent only on a
+ known set of inputs, which is essential for ensuring that builds are
+ reproducible.
+</p>
+
+<p>
+ BUILD files should be written using only ASCII characters,
+ although technically they are interpreted using the Latin-1
+ character set.
+</p>
+
<h3 id="declaring_build_rules">Declaring build rules</h3>
<p>