[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / libc / docs / index.rst
blob6d36351b7ce1fc46ee141bfec13be22b2e8407b3
1 ==================
2 The LLVM C Library
3 ==================
5 .. warning::
6   The libc is not complete.  If you need a fully functioning C library right
7   now, you should continue to use your standard system libraries.
9 Introduction
10 ============
12 The libc aspires to a unique place in the software ecosystem.  The goals are:
14 - Fully compliant with current C standards (C17 and upcoming C2x) and POSIX.
15 - Easily decomposed and embedded: Supplement or replace system C library
16   functionality easily.  This is useful to get consistent math precision across
17   systems, or updated memory operations for newer microarchitectures.  These
18   pieces will work on Linux, MacOS, Windows, and Fuchsia.
19 - The creation of fully static binaries without license implications.
20 - Increase whole program optimization opportunities for static binaries through
21   ability to inline math and memory operations.
22 - Reduce coding errors by coding in modern C++ through the use of lightweight
23   containers during coding that can be optimized away at runtime.
24 - Permit fuzzing and sanitizer instrumentation of user binaries including the
25   libc functions.
26 - A complete testsuite that tests both the public interface and internal
27   algorithms.
28 - `Fuzzing`__
30 .. __: https://github.com/llvm/llvm-project/tree/main/libc/fuzzing
32 Platform Support
33 ================
35 Most development is currently targeting x86_64 and aarch64 on Linux.  Several
36 functions in the libc have been tested on Windows.  The Fuchsia platform is
37 slowly replacing functions from its bundled libc with functions from this
38 project.
40 ABI Compatibility
41 =================
43 The libc is written to be ABI independent.  Interfaces are generated using
44 LLVM's tablegen, so supporting arbitrary ABIs is possible.  In it's initial
45 stages there is no ABI stability in any form.
47 .. toctree::
48    :hidden:
49    :maxdepth: 2
50    :caption: Using
52    usage_modes
53    overlay_mode
54    fullbuild_mode
55    configure
56    gpu/index.rst
58 .. toctree::
59    :hidden:
60    :maxdepth: 1
61    :caption: Status
63    compiler_support
64    date_and_time
65    math/index.rst
66    strings
67    stdio
69 .. toctree::
70    :hidden:
71    :maxdepth: 1
72    :caption: Development
74    build_and_test
75    dev/index.rst
76    porting
77    contributing
79 .. toctree::
80    :hidden:
81    :maxdepth: 1
82    :caption: External Links
84    Source Code <https://github.com/llvm/llvm-project/tree/main/libc>
85    Bug Reports <https://github.com/llvm/llvm-project/labels/libc>
86    Discourse <https://discourse.llvm.org/c/runtimes/libc>
87    Join the Discord <https://discord.gg/xS7Z362>
88    Discord Channel <https://discord.com/channels/636084430946959380/636732994891284500>
89    Buildbot <https://lab.llvm.org/buildbot/#/builders?tags=libc>