Go to file
Andrew Kelley 1bbfa36b76 stage2: improved codegen
* multiple returns jump to one canonical function exitlude. This is in
   preparation for the defer feature.
 * simple elision of trivial jump relocs.
 * omit prelude/exitlude for naked calling convention functions.
 * fix not switching on arch for prelude/exitlude
 * fix swapped registers when setting stack mem from a register
2020-07-29 02:29:37 -07:00
.builds ci: don't rely on sourcehut's pkg system 2020-01-30 10:23:00 -05:00
.github Sponsors Button => ZSF 2020-07-11 18:33:56 -04:00
ci ci: update msys2 installer 2020-07-25 22:21:52 -07:00
cmake update cmake, update readme, in response to the dynamic linking fiasco 2020-04-17 18:41:21 -04:00
deps deps/SoftFloat-3e/: commit with LF line endings 2020-05-31 12:18:31 -04:00
doc Add meta viewport to fix mobile rendering, add missing <code> block 2020-07-27 17:10:55 +03:00
lib std.fmt.format: small optimization to avoid runtime bloat 2020-07-29 02:29:36 -07:00
src stage1: hot path for resolving types of primitives 2020-07-28 00:00:35 -07:00
src-self-hosted stage2: improved codegen 2020-07-29 02:29:37 -07:00
test add helpful error note for when function cannot return an error 2020-07-28 04:24:52 +00:00
tools Fix a few std.sort.sort invocations 2020-06-12 13:33:31 -04:00
.gitattributes .gitattributes: deps/SoftFloat-3e/*.txt lines are crlf terminated 2020-04-05 11:03:31 -04:00
.gitignore fix .gitignore file and add commit missing std lib file 2019-02-26 18:33:27 -05:00
CMakeLists.txt cmake: add -DZIG_WORKAROUND_POLLY_SO 2020-07-03 04:48:48 +00:00
CONTRIBUTING.md add behavior tests fro macro translations 2020-07-16 17:10:52 +03:00
LICENSE add license 2015-08-05 16:22:18 -07:00
README.md clean up readme 2020-07-03 04:43:05 +00:00
build.zig stage2: remove some dead code, fix build on aarch64 2020-07-21 22:34:14 +03:00

README.md

ZIG

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

Resources

Building from Source

Build Status

Note that you can download a binary of master branch.

Stage 1: Build Zig from C++ Source Code

Dependencies

POSIX
  • cmake >= 2.8.5
  • gcc >= 5.0.0 or clang >= 3.6.0
  • LLVM, Clang, LLD development libraries == 10.x, compiled with the same gcc or clang version above
Windows
  • cmake >= 3.15.3
  • Microsoft Visual Studio. Supported versions:
    • 2015 (version 14)
    • 2017 (version 15.8)
    • 2019 (version 16)
  • LLVM, Clang, LLD development libraries == 10.x

Instructions

POSIX
mkdir build
cd build
cmake ..
make install

Need help? Troubleshooting Build Issues

MacOS
brew install cmake llvm
brew outdated llvm || brew upgrade llvm
mkdir build
cd build
cmake .. -DCMAKE_PREFIX_PATH=$(brew --prefix llvm)
make install

You will now run into this issue: homebrew and llvm 10 packages in apt.llvm.org are broken with undefined reference to getPollyPluginInfo or error: unable to create target: 'Unable to find target for this triple (no targets are registered)', in which case try -DZIG_WORKAROUND_4799=ON

Hopefully this will be fixed upstream with LLVM 10.0.1.

Windows

See https://github.com/ziglang/zig/wiki/Building-Zig-on-Windows