[libc] Add a README to the sub-directories under the utils directory.
authorSiva Chandra Reddy <sivachandra@google.com>
Wed, 12 Feb 2020 21:03:09 +0000 (13:03 -0800)
committerSiva Chandra Reddy <sivachandra@google.com>
Mon, 24 Feb 2020 06:11:35 +0000 (22:11 -0800)
Also, the source layout document has been updated to reflect the current
layout of the `utils` directory.

Reviewers: PaulkaToast

Differential Revision: https://reviews.llvm.org/D74502

libc/docs/source_layout.rst
libc/utils/CPP/README.md
libc/utils/HdrGen/README.md [new file with mode: 0644]
libc/utils/UnitTest/README.md [new file with mode: 0644]

index 9bf6352..a299a4d 100644 (file)
@@ -13,9 +13,7 @@ directories::
         - loader
         - src
         - test
-        + utils
-            - build_scripts
-            - testing
+        - utils
         - www
 
 Each of these directories is explained in detail below.
@@ -87,17 +85,15 @@ toplevel ``libc`` directory itself. A test for, say the ``mmap`` function, lives
 in the directory ``test/src/sys/mman/`` as implementation of ``mmap`` lives in
 ``src/sys/mman``.
 
-The ``www`` directory
+The `utils` directory
 ---------------------
 
-The ``www`` directory contains the HTML content of libc.llvm.org
-
-The ``utils/build_scripts`` directory
--------------------------------------
+This directory contains utilities used by other parts of the llvm-libc system.
+See the `README` files, in the sub-directories within this directory, to learn
+about the various utilities.
 
-This directory contains scripts which support the build system, tooling etc.
+The ``www`` directory
+---------------------
 
-The ``utils/testing`` directory
--------------------------------
+The ``www`` directory contains the HTML content of libc.llvm.org
 
-This directory contains testing infrastructure.
index 756663e..4adb155 100644 (file)
@@ -1,7 +1,9 @@
-This directory contains re-implementations of some C++ standard library as well
-as some LLVM utilities. These are to be used with internal LLVM libc code and
-tests. More utilities will be added on an as needed basis. There are certain
-rules to be followed for future changes and additions:
+This directory contains re-implementations of some C++ standard library
+utilities, as well as some LLVM utilities. These utilities are for use with
+internal LLVM libc code and tests.
+
+More utilities will be added on an as needed basis. There are certain rules to
+be followed for future changes and additions:
 
 1. Only two kind of headers can be included: Other headers from this directory,
 and free standing C headers.
diff --git a/libc/utils/HdrGen/README.md b/libc/utils/HdrGen/README.md
new file mode 100644 (file)
index 0000000..a61cf3b
--- /dev/null
@@ -0,0 +1,5 @@
+# The LLVM libc header generation system
+
+LLVM libc uses a header generation scheme to generate public as well as internal
+header files. This directory contains the implementation of the header generator
+which drives this header generation scheme.
diff --git a/libc/utils/UnitTest/README.md b/libc/utils/UnitTest/README.md
new file mode 100644 (file)
index 0000000..c9096d3
--- /dev/null
@@ -0,0 +1,23 @@
+# The LLVM libc unit test framework
+
+This directory contains a lightweight implementation of a
+[gtest](https://github.com/google/googletest) like unit test framework for LLVM
+libc.
+
+## Why not gtest?
+
+While gtest is great, featureful and time tested, it uses the C and C++
+standard libraries. Hence, using it to test LLVM libc (which is also an
+implementation of the C standard libraries) causes various kinds of
+mixup/conflict problems.
+
+## How is it different from gtest?
+
+LLVM libc's unit test framework is much less featureful as compared to gtest.
+But, what is available strives to be exactly like gtest.
+
+## Will it be made as featurful as gtest in future?
+
+It is not clear if LLVM libc needs/will need every feature of gtest. We only
+intend to extend it on an _as needed_ basis. Hence, it might never be as
+featureful as gtest.