General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
Go to file
Jacob Young e3cf9d1650 Module: rewrite zir caching logic
Multiple processes can sit waiting for the exclusive lock at the same
time, so we want to recheck whether it needs to be updated whenever
we get an exclusive lock.

This also fixes a race condition between one process truncating the
cache file and another process reading it without atomic locking.
2023-03-08 00:00:52 -05:00
.github CI: give x86_64-linux-release a little more time 2023-01-27 14:53:17 -07:00
ci Update std.Build to new module CLI, update zig1 and CMakeLists 2023-02-21 01:59:37 +00:00
cmake Merge pull request #13514 from kcbanner/windows_build_fixes 2023-01-05 17:26:32 -07:00
doc langref: small clarification to @trap 2023-03-05 17:11:46 -07:00
lib Merge pull request #14828 from jacobly0/fix-big-div 2023-03-07 19:32:32 -05:00
src Module: rewrite zir caching logic 2023-03-08 00:00:52 -05:00
stage1 Module: rewrite zir caching logic 2023-03-08 00:00:52 -05:00
test CBE: implement unsigned big int div and mod 2023-03-07 03:03:35 -05:00
tools tools: add lldb pretty printer for std.MultiArrayList.Slice 2023-03-06 05:58:46 -05:00
.gitattributes update gitattributes and move test data into subdir 2022-12-18 16:28:30 -07:00
.gitignore std/build: change default install prefix to zig-out 2021-04-29 23:58:45 +02:00
build.zig std.Build.WriteFileStep: integrate with cache system 2023-02-23 01:08:23 -05:00
CMakeLists.txt compiler_rt: declutter int.zig, add mulXi3 tests (#14623) 2023-02-24 13:27:02 -05:00
LICENSE Happy new year! 🎉 (#14143) 2022-12-31 18:13:00 +00:00
README.md move some files to the .github directory 2022-03-24 12:22:23 -07:00

ZIG

A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

Resources

Installation

License

The ultimate goal of the Zig project is to serve users. As a first-order effect, this means users of the compiler, helping programmers to write better software. Even more important, however, are the end-users.

Zig is intended to be used to help end-users accomplish their goals. Zig should be used to empower end-users, never to exploit them financially, or to limit their freedom to interact with hardware or software in any way.

However, such problems are best solved with social norms, not with software licenses. Any attempt to complicate the software license of Zig would risk compromising the value Zig provides.

Therefore, Zig is available under the MIT (Expat) License, and comes with a humble request: use it to make software better serve the needs of end-users.

This project redistributes code from other projects, some of which have other licenses besides MIT. Such licenses are generally similar to the MIT license for practical purposes. See the subdirectories and files inside lib/ for more details.