llvm/lib/System
Reid Spencer 12e7b11a63 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
2004-07-18 22:33:08 +00:00
..
Makefile
README.txt A description of what this library is about, reference to the documentation 2004-07-18 22:33:08 +00:00

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