authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-07-23 15:48:54-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-07-23 15:49:18-07:00
log9ada2f887c932b259c02a6a4b4cee4f136e26678
tree1b34d9f327257f44915cebe5f380126d083ed868
parent9f112b77aa30092f59b6060b8d56f122a158bc75

README makeover

This readme is now appropriate to include in release tarballs.

1 files changed, 95 insertions(+), 26 deletions(-)

README.md+95-26
...@@ -3,42 +3,111 @@...@@ -3,42 +3,111 @@
3A general-purpose programming language and toolchain for maintaining3A general-purpose programming language and toolchain for maintaining
4**robust**, **optimal**, and **reusable** software.4**robust**, **optimal**, and **reusable** software.
55
6## Resources6https://ziglang.org/
77
8 * [Introduction](https://ziglang.org/learn/#introduction)8## Documentation
9 * [Download & Documentation](https://ziglang.org/download)9
10 * [Chapter 0 - Getting Started | ZigLearn.org](https://ziglearn.org/)10If you are looking at this README file in a source tree, please refer to the
11 * [Community](https://github.com/ziglang/zig/wiki/Community)11**Release Notes**, **Language Reference**, or **Standard Library
12 * [Contributing](https://github.com/ziglang/zig/blob/master/.github/CONTRIBUTING.md)12Documentation** corresponding to the version of Zig that you are using by
13 * [Code of Conduct](https://github.com/ziglang/zig/blob/master/.github/CODE_OF_CONDUCT.md)13following the appropriate link on the
14 * [Frequently Asked Questions](https://github.com/ziglang/zig/wiki/FAQ)14[download page](https://ziglang.org/download).
15 * [Community Projects](https://github.com/ziglang/zig/wiki/Community-Projects)15
16Otherwise, you're looking at a release of Zig, and you can find documentation
17here:
18
19 * doc/langref.html
20 * doc/std/index.html
1621
17## Installation22## Installation
1823
19 * [download a pre-built binary](https://ziglang.org/download/)24 * [download a pre-built binary](https://ziglang.org/download/)
20 * [install from a package manager](https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager)25 * [install from a package manager](https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager)
21 * [build from source](https://github.com/ziglang/zig/wiki/Building-Zig-From-Source)
22 * [bootstrap zig for any target](https://github.com/ziglang/zig-bootstrap)26 * [bootstrap zig for any target](https://github.com/ziglang/zig-bootstrap)
2327
24## License28A Zig installation is composed of two things:
29
301. The Zig executable
312. The lib/ directory
32
33At runtime, the executable searches up the file system for the lib/ directory,
34relative to itself:
35
36* lib/
37* zig/lib/
38* ../lib/
39* ../zig/lib/
40* (and so on)
41
42In other words, you can **unpack a release of Zig anywhere**, and then begin
43using it immediately. There is no need to install it globally, although this
44mechanism supports that use case too (i.e. `/usr/bin/zig` and `/usr/lib/zig/`).
45
46## Building from Source
47
48Ensure you have the required dependencies:
49
50 * CMake >= 2.8.12
51 * System C/C++ Toolchain
52 * LLVM, Clang, LLD development libraries == 16.x
53
54Then it is the standard CMake build process:
55
56```
57mkdir build
58cd build
59cmake ..
60make install
61```
62
63For more options, tips, and troubleshooting, please see the
64[Building Zig From Source](https://github.com/ziglang/zig/wiki/Building-Zig-From-Source)
65page on the wiki.
66
67## Contributing
68
69Zig is Free and Open Source Software. We welcome bug reports and patches from
70everyone. However, keep in mind that Zig governance is BDFN (Benevolent
71Dictator For Now) which means that Andrew Kelley has final say on the design
72and implementation of everything.
73
74One of the best ways you can contribute to Zig is to start using it for an
75open-source personal project.
76
77This leads to discovering bugs and helps flesh out use cases, which lead to
78further design iterations of Zig. Importantly, each issue found this way comes
79with real world motivations, making it straightforward to explain the reasoning
80behind proposals and feature requests.
81
82You will be taken much more seriously on the issue tracker if you have a
83personal project that uses Zig.
84
85The issue label
86[Contributor Friendly](https://github.com/ziglang/zig/issues?q=is%3Aissue+is%3Aopen+label%3A%22contributor+friendly%22)
87exists to help you find issues that are **limited in scope and/or knowledge of
88Zig internals.**
2589
26The ultimate goal of the Zig project is to serve users. As a first-order90Please note that issues labeled
27effect, this means users of the compiler, helping programmers to write better91[Proposal](https://github.com/ziglang/zig/issues?q=is%3Aissue+is%3Aopen+label%3Aproposal)
28software. Even more important, however, are the end-users.92but do not also have the
93[Accepted](https://github.com/ziglang/zig/issues?q=is%3Aissue+is%3Aopen+label%3Aaccepted)
94label are still under consideration, and efforts to implement such a proposal
95have a high risk of being wasted. If you are interested in a proposal which is
96still under consideration, please express your interest in the issue tracker,
97providing extra insights and considerations that others have not yet expressed.
98The most highly regarded argument in such a discussion is a real world use case.
2999
30Zig is intended to be used to help **end-users** accomplish their goals. Zig100For more tips, please see the
31should be used to empower end-users, never to exploit them financially, or to101[Contributing](https://github.com/ziglang/zig/wiki/Contributing) page on the
32limit their freedom to interact with hardware or software in any way.102wiki.
33103
34However, such problems are best solved with social norms, not with software104## Community
35licenses. Any attempt to complicate the software license of Zig would risk
36compromising the value Zig provides.
37105
38Therefore, Zig is available under the MIT (Expat) License, and comes with a106The Zig community is decentralized. Anyone is free to start and maintain their
39humble request: use it to make software better serve the needs of end-users.107own space for Zig users to gather. There is no concept of "official" or
108"unofficial". Each gathering place has its own moderators and rules. Users are
109encouraged to be aware of the social structures of the spaces they inhabit, and
110work purposefully to facilitate spaces that align with their values.
40111
41This project redistributes code from other projects, some of which have other112Please see the [Community](https://github.com/ziglang/zig/wiki/Community) wiki
42licenses besides MIT. Such licenses are generally similar to the MIT license113page for a public listing of social spaces.
43for practical purposes. See the subdirectories and files inside lib/ for more
44details.