From 12e7b11a63251c931628e803fa04be72fc6e69e7 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Sun, 18 Jul 2004 22:33:08 +0000 Subject: [PATCH] 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 --- lib/System/README.txt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 lib/System/README.txt diff --git a/lib/System/README.txt b/lib/System/README.txt new file mode 100644 index 00000000000..258a48cd87e --- /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