aboutsummaryrefslogtreecommitdiffstats
path: root/lib/System/README.txt
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-07-18 22:33:08 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-07-18 22:33:08 +0000
commit12e7b11a63251c931628e803fa04be72fc6e69e7 (patch)
tree12aad49cda948de43a7469f5c06d212593127632 /lib/System/README.txt
parent95e9258ba22669fc4f5bc2d256ff4a2380f192ff (diff)
downloadexternal_llvm-12e7b11a63251c931628e803fa04be72fc6e69e7.zip
external_llvm-12e7b11a63251c931628e803fa04be72fc6e69e7.tar.gz
external_llvm-12e7b11a63251c931628e803fa04be72fc6e69e7.tar.bz2
A description of what this library is about, reference to the documentation
and a list of don'ts for the library. All so future maintainers don't break the important contract this library has with its user: LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14979 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/System/README.txt')
-rw-r--r--lib/System/README.txt23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/System/README.txt b/lib/System/README.txt
new file mode 100644
index 0000000..258a48c
--- /dev/null
+++ b/lib/System/README.txt
@@ -0,0 +1,23 @@
+System Utilities Interface
+==========================
+
+The design of this library has several key constraints aimed at shielding LLVM
+from the vagaries of operating system differences. The goal here is to provide
+interfaces to operating system concepts (files, memory maps, sockets, signals,
+locking, etc) efficiently and in such a way that the remainder of LLVM is
+completely operating system agnostic.
+
+PLEASE READ AND COMPREHEND FULLY THE DOCUMENTATION in
+
+llvm/docs/SystemLibrary.html
+
+before making changes to this library.
+
+Briefly, the rules are:
+
+1. This library may not expose no system-specific header files (STL excepted).
+2. This library may not allocate memory (directly).
+3. This library may not throw exceptions.
+4. This library may not use virtual methods in its classes.
+5. This library may not expose system specific types, data or functions through
+ its interface