summaryrefslogtreecommitdiff
path: root/lib/ktl/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ktl/README.md')
-rw-r--r--lib/ktl/README.md36
1 files changed, 0 insertions, 36 deletions
diff --git a/lib/ktl/README.md b/lib/ktl/README.md
deleted file mode 100644
index 667c678..0000000
--- a/lib/ktl/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Kernel Template Library
-
-The Kernel Template Library is a curated subset of the C++ standard library API
-using the `ktl` namespace rather than the `std` namespace. When a specific
-interface is deemed useful, safe, and appropriate for use in the kernel, it can
-be added here. No `std` APIs are ever used directly in the kernel, only `ktl`.
-
-The API is a strict subset of the standard C++ library API aside from the
-namespace. The header file names are mostly directly mapped as well:
-
- <foo> -> <ktl/foo.h>
-
-There can be exceptions. For example, <memory> is a very broad collection of
-APIs and the ktl subset is more focused. So instead of <ktl/memory.h> there
-are specific headers for the standard APIs from <memory> that are included, such
-as <ktl/unique_ptr.h> for `ktl::unique_ptr` (`std::unique_ptr` in <memory>).
-
-The implementation here simply leverages the libc++ implementation and defines
-`using` aliases in the `ktl` namespace. It's expected that ktl will only ever
-provide "header only" APIs.
-
-## ktl enforcement
-
-The [`<ktl/enforce.h>`](include/ktl/enforce.h) header file should be used in
-most `.cc` files (but not `.h`) files meant only for the kernel environment.
-That is, in `.cc` files that use the `<ktl/*.h>` headers or use kernel-only
-headers that use them.
-
-This file must appear last in the `#include` list and `clang-format` will
-arrange that automatically.
-
-After this `#include` any use of the `std` identifier in C++ code will cause a
-compile-time error. When such errors are encountered, the kernel code should
-be checked for use of C++ standard library headers (with no `.h` in the name,
-like `<memory>, etc.) that should be replaced with `<ktl/*.h>` headers and for
-`std::` names that should be replaced with `ktl::` names.