aboutsummaryrefslogtreecommitdiff
path: root/intro.rst
diff options
context:
space:
mode:
authorMelody Horn <melody@boringcactus.com>2020-10-28 17:01:55 -0600
committerMelody Horn <melody@boringcactus.com>2020-10-28 17:01:55 -0600
commitedf87f09045e8f56576b37078b4a0d220d6ddf55 (patch)
tree4503afb80ee7ea068db257c6381541a5fe1f716b /intro.rst
parent72e8cabe8e3c8ae272fb4771f0d1dabb306dc2ae (diff)
downloadspec-edf87f09045e8f56576b37078b4a0d220d6ddf55.tar.gz
spec-edf87f09045e8f56576b37078b4a0d220d6ddf55.zip
start using Sphinx for doc generation
Diffstat (limited to 'intro.rst')
-rw-r--r--intro.rst47
1 files changed, 47 insertions, 0 deletions
diff --git a/intro.rst b/intro.rst
new file mode 100644
index 0000000..c77b2c7
--- /dev/null
+++ b/intro.rst
@@ -0,0 +1,47 @@
+************
+Introduction
+************
+
+Crowbar: the good parts of C, with a little bit extra.
+
+**This is entirely a work-in-progress, and should not be relied upon to be stable (or even true) in any way.**
+
+Crowbar is a language that is derived from (and, wherever possible, interoperable with) C, and aims to remove as many `footguns`_ and as much needless complexity from C as possible while still being familiar to C developers.
+
+.. _footguns: https://en.wiktionary.org/wiki/footgun
+
+Ideally, a typical C codebase should be straightforward to rewrite in Crowbar, and any atypical C constructions not supported by Crowbar can be left as C.
+
+Motivation
+==========
+
+* `Rust is not a good C replacement <https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html>`_
+
+Journal
+=======
+
+* `Crowbar: Defining a good C replacement <https://www.boringcactus.com/2020/09/28/crowbar-1-defining-a-c-replacement.html>`_
+* `Crowbar: Simplifying C's type names <https://www.boringcactus.com/2020/10/13/crowbar-2-simplifying-c-type-names.html>`_
+* `Crowbar: Turns out, language development is hard <https://www.boringcactus.com/2020/10/19/crowbar-3-this-is-tough.html>`_
+
+Comparison with C
+=================
+
+The :doc:`/vs-c` is an informal overview of the places where Crowbar and C diverge.
+
+Syntax
+======
+
+:doc:`/syntax`
+
+Semantics
+=========
+
+TODO
+
+Discuss
+=======
+
+* `announcement mailing list <https://lists.sr.ht/~boringcactus/crowbar-lang-announce>`_
+* `permanent discussion mailing list <https://lists.sr.ht/~boringcactus/crowbar-lang-devel>`_
+* ephemeral discussions via IRC: #crowbar-lang on freenode (`join via irc <ircs://chat.freenode.net/#crowbar-lang>`_, `join via web <https://webchat.freenode.net/#crowbar-lang>`_)