A description of what this library is about, reference to the documentation
authorReid Spencer <rspencer@reidspencer.com>
Sun, 18 Jul 2004 22:33:08 +0000 (22:33 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Sun, 18 Jul 2004 22:33:08 +0000 (22:33 +0000)
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

lib/System/README.txt [new file with mode: 0644]

diff --git a/lib/System/README.txt b/lib/System/README.txt
new file mode 100644 (file)
index 0000000..258a48c
--- /dev/null
@@ -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