Skip to content

Releases: oven-sh/zig

0.12.0-dev.1828

08 Jun 01:07
Compare
Choose a tag to compare
0.12.0-dev.1828 Pre-release
Pre-release

tarball backup

Head Build

18 Jul 22:59
Compare
Choose a tag to compare
Head Build Pre-release
Pre-release

Commits

  • c2f5f19: Setup Linux builds (Jarred Sumner)

jul1

11 Jul 09:55
Compare
Choose a tag to compare
macho: implement pruning of unused segments and sections

This is a prelude to a more elaborate work which will implement
`-dead_strip` flag - garbage collection of unreachable atoms. Here,
when sorting sections, we also check that the section is actually
populated with some atoms, and if not, we exclude it from the final
linked image. This can happen when we do not import any symbols
from dynamic libraries in which case we will not be populating
the stubs sections or the GOT table, implying we can skip allocating
those sections. Furthermore, we also make a check that a segment
is actually occupied too, with the exception of `__TEXT` segment
which is non-optional given that it wraps the header and load commands
and thus is required by the `dyld` to perform dynamic linking, and
`__PAGEZERO` which is generally non-optional when the linked image
is an executable. For any other segment, if its section count is
zero, we mark it as dead and skip allocating it and generating
a load command for it.

This commit also includes some minor improvements to the linker such
as refactoring of the segment allocating codepaths, skipping
`__PAGEZERO` generation for dylibs, and skipping generation of zero-sized
atoms for special symbols such as `__mh_execute_header` and `___dso_handle`.
These special symbols are only allocated local and global symbol pair
and their VM addresses is set to the start of the `__TEXT` segment,
but no `Atom` is created, as it's not necessary given that they never
carry any machine code.

Finally, we now always force-link against `libSystem` which turns out
to be required for `dyld` to properly handle `LC_MAIN` load command
on older macOS versions such as 10.15.7.

mar4

04 Mar 08:29
0ea51f7
Compare
Choose a tag to compare
Merge pull request #11049 from mitchellh/peer-arrays

stage2: fix a couple issues with peer resolution and const casting arrays

jan17: remove `zig_is_stage2` from `@import("builtin")`

19 Jan 21:24
Compare
Choose a tag to compare
Instead use the standarized option for communicating the
zig compiler backend at comptime, which is `zig_backend`. This was
introduced in commit 1c24ef0d0b09a12a1fe98056f2fc04de78a82df3.

Jan 1

02 Jan 02:47
Compare
Choose a tag to compare
jan1

behavior tests: add a "passing for arm backend" section

December 30th

31 Dec 07:28
Compare
Choose a tag to compare
For unused references & redundant keywords, append the compiler error…

… but continue running AstGen

prebuilt

21 Dec 07:03
Compare
Choose a tag to compare
dec20

Fix typo in hash map