mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-06 12:42:28 +00:00
Reformat libc
README.md (#437)
This commit is contained in:
parent
ff28e38ef1
commit
4b23985b7f
1 changed files with 40 additions and 44 deletions
|
@ -1,50 +1,46 @@
|
||||||
SYNOPSIS
|
# Cosmopolitan Standard Library
|
||||||
|
|
||||||
Cosmopolitan Standard Library.
|
This directory defines static archives defining functions, like
|
||||||
|
`printf()`, `mmap()`, win32, etc. Please note that the Cosmopolitan
|
||||||
|
build configuration doesn't link any C/C++ library dependencies
|
||||||
|
by default, so you still have the flexibility to choose the one
|
||||||
|
provided by your system. If you'd prefer Cosmopolitan, just add
|
||||||
|
`$(LIBC)` and `$(CRT)` to your linker arguments.
|
||||||
|
|
||||||
OVERVIEW
|
Your library is compromised of many bite-sized static archives.
|
||||||
|
We use the checkdeps tool to guarantee that the contents of the
|
||||||
|
archives are organized in a logical way that's easy to use with
|
||||||
|
or without our makefile infrastructure, since there's no cyclic
|
||||||
|
dependencies.
|
||||||
|
|
||||||
This directory defines static archives defining functions, like
|
The Cosmopolitan Library exports only the most stable canonical
|
||||||
printf(), mmap(), win32, etc. Please note that the Cosmopolitan
|
system calls for all supported operating systems, regardless of
|
||||||
build configuration doesn't link any C/C++ library dependencies
|
which platform is used for compilation. We polyfill many of the
|
||||||
by default, so you still have the flexibility to choose the one
|
APIs, e.g. `read()`, `write()` so they work consistently everywhere
|
||||||
provided by your system. If you'd prefer Cosmopolitan, just add
|
while other apis, e.g. `CreateWindowEx()`, might only work on one
|
||||||
$(LIBC) and $(CRT) to your linker arguments.
|
platform, in which case they become no-op functions on others.
|
||||||
|
|
||||||
Your library is compromised of many bite-sized static archives.
|
Cosmopolitan polyfill wrappers will usually use the dollar sign
|
||||||
We use the checkdeps tool to guarantee that the contents of the
|
naming convention, so they may be bypassed when necessary. This
|
||||||
archives are organized in a logical way that's easy to use with
|
same convention is used when multiple implementations of string
|
||||||
or without our makefile infrastructure, since there's no cyclic
|
library and other performance-critical function are provided to
|
||||||
dependencies.
|
allow Cosmopolitan to go fast on both old and newer computers.
|
||||||
|
|
||||||
The Cosmopolitan Library exports only the most stable canonical
|
We take an approach to configuration that relies heavily on the
|
||||||
system calls for all supported operating systems, regardless of
|
compiler's dead code elimination pass (`libc/dce.h`). Most of the
|
||||||
which platform is used for compilation. We polyfill many of the
|
code is written so that, for example, folks not wanting support
|
||||||
APIs, e.g. read(), write() so they work consistently everywhere
|
for OpenBSD can flip a bit in `SUPPORT_VECTOR` and that code will
|
||||||
while other apis, e.g. CreateWindowEx(), might only work on one
|
be omitted from the build. The same is true for builds that are
|
||||||
platform, in which case they become no-op functions on others.
|
tuned using `-march=native` which effectively asks the library to
|
||||||
|
not include runtime support hooks for x86 processors older than
|
||||||
|
what you use.
|
||||||
|
|
||||||
Cosmopolitan polyfill wrappers will usually use the dollar sign
|
Please note that, unlike Cygwin or MinGW, Cosmopolitan does not
|
||||||
naming convention, so they may be bypassed when necessary. This
|
achieve broad support by bolting on a POSIX emulation layer. We
|
||||||
same convention is used when multiple implementations of string
|
do nothing more than (in most cases) stateless API translations
|
||||||
library and other performance-critical function are provided to
|
that get you 90% of the way there in a fast lightweight manner.
|
||||||
allow Cosmopolitan to go fast on both old and newer computers.
|
We therefore can't address some of the subtle differences, such
|
||||||
|
as the nuances of absolute paths on Windows. Our approach could
|
||||||
We take an approach to configuration that relies heavily on the
|
be compared to something more along the lines of, "the Russians
|
||||||
compiler's dead code elimination pass (libc/dce.h). Most of the
|
just used a pencil to write in space", versus spending millions
|
||||||
code is written so that, for example, folks not wanting support
|
researching a pen like NASA.
|
||||||
for OpenBSD can flip a bit in SUPPORT_VECTOR and that code will
|
|
||||||
be omitted from the build. The same is true for builds that are
|
|
||||||
tuned using -march=native which effectively asks the library to
|
|
||||||
not include runtime support hooks for x86 processors older than
|
|
||||||
what you use.
|
|
||||||
|
|
||||||
Please note that, unlike Cygwin or MinGW, Cosmopolitan does not
|
|
||||||
achieve broad support by bolting on a POSIX emulation layer. We
|
|
||||||
do nothing more than (in most cases) stateless API translations
|
|
||||||
that get you 90% of the way there in a fast lightweight manner.
|
|
||||||
We therefore can't address some of the subtle differences, such
|
|
||||||
as the nuances of absolute paths on Windows. Our approach could
|
|
||||||
be compared to something more along the lines of, "the Russians
|
|
||||||
just used a pencil to write in space", versus spending millions
|
|
||||||
researching a pen like NASA.
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue