llvm.org GIT mirror llvm / master
[LLVMSupport]: Remove a severely outdated README. The LLVM Support library implementation has resided in //llvm/lib/Support for a significant amount of time now, with documentation having been updated with all references to the "System library" being replaced with "Support library". Since this file mirrors already existing documentation available for Support library, includes dead links to documentation and still refers to it as "System library", having it there is confusing and updating it has very little point as it duplicates information in documentation, except documentation is a lot more up to date while this file has not been maintained. Up to date documentation concerning this can be found here: http://llvm.org/docs/SupportLibrary.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354209 91177308-0d34-0410-b5e6-96231b3b80d8 Kristina Brooks 11 hours ago
1 changed file(s) with 0 addition(s) and 43 deletion(s). Raw diff Collapse all Expand all
lib/Support/README.txt.system less more
None Design Of lib/System
1 ====================
3 The software in this directory is designed to completely shield LLVM from any
4 and all operating system specific functionality. It is not intended to be a
5 complete operating system wrapper (such as ACE), but only to provide the
6 functionality necessary to support LLVM.
8 The software located here, of necessity, has very specific and stringent design
9 rules. Violation of these rules means that cracks in the shield could form and
10 the primary goal of the library is defeated. By consistently using this library,
11 LLVM becomes more easily ported to new platforms since the only thing requiring
12 porting is this library.
14 Complete documentation for the library can be found in the file:
15 llvm/docs/SystemLibrary.html
16 or at this URL:
17 http://llvm.org/docs/SystemLibrary.html
19 While we recommend that you read the more detailed documentation, for the
20 impatient, here's a high level summary of the library's requirements.
22 1. No system header files are to be exposed through the interface.
23 2. Std C++ and Std C header files are okay to be exposed through the interface.
24 3. No exposed system-specific functions.
25 4. No exposed system-specific data.
26 5. Data in lib/System classes must use only simple C++ intrinsic types.
27 6. Errors are handled by returning "true" and setting an optional std::string
28 7. Library must not throw any exceptions, period.
29 8. Interface functions must not have throw() specifications.
30 9. No duplicate function impementations are permitted within an operating
31 system class.
33 To accomplish these requirements, the library has numerous design criteria that
34 must be satisfied. Here's a high level summary of the library's design criteria:
36 1. No unused functionality (only what LLVM needs)
37 2. High-Level Interfaces
38 3. Use Opaque Classes
39 4. Common Implementations
40 5. Multiple Implementations
41 6. Minimize Memory Allocation
42 7. No Virtual Methods