Author: Michael Forney <email@example.com>
Date: Wed, 17 Apr 2019 01:51:39 -0700
|M||README.md|| | ||56||++++++++++++++++++++++++++++++++++++++++++++++----------|
1 file changed, 46 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
@@ -3,17 +3,53 @@
This is a C11 compiler using [QBE] as a backend.
There is still much to do and the code is a little rough, but it currently
-implements most of the language and is self-hosting.
+implements most of the language, is self-hosting, and capable of building
+some useful software.
-- Come up with a name so it can be installed alongside the system `cc`.
-- The preprocessor (currently we are just using the system `cpp`).
-- Variable-length arrays.
-- `volatile`-qualified types (requires support from QBE).
-- `_Thread_local` storage-class specifier (requires support from QBE).
-- `long double` type (requires support from QBE).
-- Inline assembly (requires support from QBE).
+The compiler itself is written in standard [C11] and can be built with
+any conforming C11 compiler.
+The POSIX driver depends on POSIX.1-2008 interfaces, and the Makefile
+requires a POSIX-compatible make(1).
+The preprocessor is not yet implemented, so an existing one is currently
+# Target configuration
+You will need to create a `config.h` appropriate for the target system. If
+missing, a default version will be created from `config.def.h`,
+which should work for most glibc systems, or musl systems with
+# What's missing
+- Digraph and trigraph sequences ([6.4.6p3] and [184.108.40.206], will not
+ be implemented).
+- Wide string literals and character constants ([#35] and [#36]).
+- Variable-length arrays ([#1]).
+- `volatile`-qualified types ([#7]).
+- `_Thread_local` storage-class specifier ([#5]).
+- `long double` type ([#3]).
+- Inline assembly ([#5]).
+- Preprocessor ([#6]).
+- Generation of position independent code (i.e. shared libraries,
+ modules, PIEs).
+# Issue tracker
+Please report any issues to https://todo.sr.ht/~mcf/cc-issues.