| ... | @@ -3,42 +3,111 @@ | ... | @@ -3,42 +3,111 @@ |
| 3 | A general-purpose programming language and toolchain for maintaining | 3 | A general-purpose programming language and toolchain for maintaining |
| 4 | **robust**, **optimal**, and **reusable** software. | 4 | **robust**, **optimal**, and **reusable** software. |
| 5 | | 5 | |
| 6 | ## Resources | 6 | https://ziglang.org/ |
| 7 | | 7 | |
| 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/) | 10 | If 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) | 12 | Documentation** 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) | 13 | following 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 | |
| | 16 | Otherwise, you're looking at a release of Zig, and you can find documentation |
| | 17 | here: |
| | 18 | |
| | 19 | * doc/langref.html |
| | 20 | * doc/std/index.html |
| 16 | | 21 | |
| 17 | ## Installation | 22 | ## Installation |
| 18 | | 23 | |
| 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) |
| 23 | | 27 | |
| 24 | ## License | 28 | A Zig installation is composed of two things: |
| | 29 | |
| | 30 | 1. The Zig executable |
| | 31 | 2. The lib/ directory |
| | 32 | |
| | 33 | At runtime, the executable searches up the file system for the lib/ directory, |
| | 34 | relative to itself: |
| | 35 | |
| | 36 | * lib/ |
| | 37 | * zig/lib/ |
| | 38 | * ../lib/ |
| | 39 | * ../zig/lib/ |
| | 40 | * (and so on) |
| | 41 | |
| | 42 | In other words, you can **unpack a release of Zig anywhere**, and then begin |
| | 43 | using it immediately. There is no need to install it globally, although this |
| | 44 | mechanism supports that use case too (i.e. `/usr/bin/zig` and `/usr/lib/zig/`). |
| | 45 | |
| | 46 | ## Building from Source |
| | 47 | |
| | 48 | Ensure 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 | |
| | 54 | Then it is the standard CMake build process: |
| | 55 | |
| | 56 | ``` |
| | 57 | mkdir build |
| | 58 | cd build |
| | 59 | cmake .. |
| | 60 | make install |
| | 61 | ``` |
| | 62 | |
| | 63 | For more options, tips, and troubleshooting, please see the |
| | 64 | [Building Zig From Source](https://github.com/ziglang/zig/wiki/Building-Zig-From-Source) |
| | 65 | page on the wiki. |
| | 66 | |
| | 67 | ## Contributing |
| | 68 | |
| | 69 | Zig is Free and Open Source Software. We welcome bug reports and patches from |
| | 70 | everyone. However, keep in mind that Zig governance is BDFN (Benevolent |
| | 71 | Dictator For Now) which means that Andrew Kelley has final say on the design |
| | 72 | and implementation of everything. |
| | 73 | |
| | 74 | One of the best ways you can contribute to Zig is to start using it for an |
| | 75 | open-source personal project. |
| | 76 | |
| | 77 | This leads to discovering bugs and helps flesh out use cases, which lead to |
| | 78 | further design iterations of Zig. Importantly, each issue found this way comes |
| | 79 | with real world motivations, making it straightforward to explain the reasoning |
| | 80 | behind proposals and feature requests. |
| | 81 | |
| | 82 | You will be taken much more seriously on the issue tracker if you have a |
| | 83 | personal project that uses Zig. |
| | 84 | |
| | 85 | The issue label |
| | 86 | [Contributor Friendly](https://github.com/ziglang/zig/issues?q=is%3Aissue+is%3Aopen+label%3A%22contributor+friendly%22) |
| | 87 | exists to help you find issues that are **limited in scope and/or knowledge of |
| | 88 | Zig internals.** |
| 25 | | 89 | |
| 26 | The ultimate goal of the Zig project is to serve users. As a first-order | 90 | Please note that issues labeled |
| 27 | effect, this means users of the compiler, helping programmers to write better | 91 | [Proposal](https://github.com/ziglang/zig/issues?q=is%3Aissue+is%3Aopen+label%3Aproposal) |
| 28 | software. Even more important, however, are the end-users. | 92 | but do not also have the |
| | 93 | [Accepted](https://github.com/ziglang/zig/issues?q=is%3Aissue+is%3Aopen+label%3Aaccepted) |
| | 94 | label are still under consideration, and efforts to implement such a proposal |
| | 95 | have a high risk of being wasted. If you are interested in a proposal which is |
| | 96 | still under consideration, please express your interest in the issue tracker, |
| | 97 | providing extra insights and considerations that others have not yet expressed. |
| | 98 | The most highly regarded argument in such a discussion is a real world use case. |
| 29 | | 99 | |
| 30 | Zig is intended to be used to help **end-users** accomplish their goals. Zig | 100 | For more tips, please see the |
| 31 | should be used to empower end-users, never to exploit them financially, or to | 101 | [Contributing](https://github.com/ziglang/zig/wiki/Contributing) page on the |
| 32 | limit their freedom to interact with hardware or software in any way. | 102 | wiki. |
| 33 | | 103 | |
| 34 | However, such problems are best solved with social norms, not with software | 104 | ## Community |
| 35 | licenses. Any attempt to complicate the software license of Zig would risk | | |
| 36 | compromising the value Zig provides. | | |
| 37 | | 105 | |
| 38 | Therefore, Zig is available under the MIT (Expat) License, and comes with a | 106 | The Zig community is decentralized. Anyone is free to start and maintain their |
| 39 | humble request: use it to make software better serve the needs of end-users. | 107 | own 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 |
| | 109 | encouraged to be aware of the social structures of the spaces they inhabit, and |
| | 110 | work purposefully to facilitate spaces that align with their values. |
| 40 | | 111 | |
| 41 | This project redistributes code from other projects, some of which have other | 112 | Please see the [Community](https://github.com/ziglang/zig/wiki/Community) wiki |
| 42 | licenses besides MIT. Such licenses are generally similar to the MIT license | 113 | page for a public listing of social spaces. |
| 43 | for practical purposes. See the subdirectories and files inside lib/ for more | | |
| 44 | details. | | |