Andrew Kelley 4056bb92e6 stage2: more progress moving zig cc to stage2
* std.cache_hash exposes Hasher type
 * std.cache_hash makes hasher_init a global const
 * std.cache_hash supports cloning so that clones can share the same
   open manifest dir handle as well as fork from shared hasher state
 * start to populate the cache_hash for stage2 builds
 * remove a footgun from std.cache_hash add function
 * get rid of std.Target.ObjectFormat.unknown
 * rework stage2 logic for resolving output artifact names by adding
   object_format as an optional parameter to std.zig.binNameAlloc
 * support -Denable-llvm in stage2 tests
 * Module supports the use case when there are no .zig files
 * introduce c_object_table and failed_c_objects to Module
 * propagate many new kinds of data from CLI into Module and into
   linker.Options
 * introduce -fLLVM, -fLLD, -fClang and their -fno- counterparts.
   closes #6251.
   - add logic for choosing when to use LLD or zig's self-hosted linker
 * stub code for implementing invoking Clang to build C objects
 * add -femit-h, -femit-h=foo, and -fno-emit-h CLI options
2020-09-09 09:28:05 -07:00
2020-07-11 18:33:56 -04:00
2020-09-01 13:53:12 -04:00
2020-09-09 09:28:05 -07:00
2015-08-05 16:22:18 -07:00

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 or install Zig from a package manager.

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

Description
General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
Readme MIT 698 MiB
Languages
Zig 98.3%
C 1.1%
C++ 0.2%
Python 0.1%