| Age | Commit message (Collapse) | Author |
|
Adds error for taking a non comptime parameter in a function returning a
comptime-only type but not when that type is dependent on a parameter.
Co-authored-by: Veikka Tuominen <git@vexu.eu>
|
|
Previously, Zig had inconsistent semantics for an enum like this:
`enum(u8){zero = 0}`
Although in theory this can only hold one possible value, the tag
`zero`, Zig no longer will treat the type this way. It will do loads and
stores, as if the type has runtime bits.
Closes #12619
Tests passed locally:
* test-behavior
* test-cases
|
|
Closes #12529
Closes #12511
Closes #6835
|
|
Rename all references of sparcv9 to sparc64, to make Zig align more with
other projects. Also, added new function to convert glibc arch name to Zig
arch name, since it refers to the architecture as sparcv9.
This is based on the suggestion by @kubkon in PR 11847.
(https://github.com/ziglang/zig/pull/11487#pullrequestreview-963761757)
|
|
|
|
Add Seccomp bits for linux
|
|
|
|
target.Arch already supports finding the correct encoding for either
target, so being able to do the inverse has use cases for when parsing
files of an unknown target (i.e. for zar).
|
|
Also adds the _CSKY and _FRV ELF machines that are defined in
`<linux/elf-em.h>`
|
|
To match the renaming of `@bswap` to `@byteSwap` in
https://github.com/ziglang/zig/commit/1fdb24827fb51351d5e31103069619668fae31c4.
|
|
|
|
tools/gen_stubs.zig now cuts out the middle man and operates directly on
the libc.so ELF file. it outputs accurate .size directives for objects.
std.elf gains an STV enum.
|
|
I believe these are Linux specific so they will need to be os-gated
in `elf.zig` at some point, but I reckon it should be fine to have
them as-is right now since the ELF linker work will mainly be done
on x86-64 Linux at first.
|
|
|
|
We already have a LICENSE file that covers the Zig Standard Library. We
no longer need to remind everyone that the license is MIT in every single
file.
Previously this was introduced to clarify the situation for a fork of
Zig that made Zig's LICENSE file harder to find, and replaced it with
their own license that required annual payments to their company.
However that fork now appears to be dead. So there is no need to
reinforce the copyright notice in every single file.
|
|
With this change zig ld can link with dynamic libraries
contained within a fat/universal file that had multiple
seperate binaries embedded within it for multi-arch
support (in macOS).
Whilst zig can still only create single-architecture
executables - the ability to link with fat libraries is
useful for cases where they are the easiest (or only)
option to link against.
|
|
(#9014)
|
|
This replaces callconv(.Inline) with the more idiomatic inline keyword.
|
|
Conflicts:
* doc/langref.html.in
* lib/std/enums.zig
* lib/std/fmt.zig
* lib/std/hash/auto_hash.zig
* lib/std/math.zig
* lib/std/mem.zig
* lib/std/meta.zig
* test/behavior/alignof.zig
* test/behavior/bitcast.zig
* test/behavior/bugs/1421.zig
* test/behavior/cast.zig
* test/behavior/ptrcast.zig
* test/behavior/type_info.zig
* test/behavior/vector.zig
Master branch added `try` to a bunch of testing function calls, and some
lines also had changed how to refer to the native architecture and other
`@import("builtin")` stuff.
|
|
|
|
|
|
* `comptime const` is redundant
* don't use `extern enum`; specify a tag type.
`extern enum` is only when you need tags to alias. But aliasing tags
is a smell. I will be making a proposal shortly to remove `extern enum`
from the language.
* there is no such thing as `packed enum`.
* instead of `catch |_|`, omit the capture entirely.
* unused function definition with missing parameter name
* using `try` outside of a function or test
|
|
|
|
|
|
I moved it to std.elf since it could be used there and added test
|
|
std.elf: expose parsing decoupled from std.fs.File
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
lib/std/dynamic_library.zig (fixed in this commit)
src/all_types.hpp
src/codegen.cpp
src/link.cpp
src/main.cpp
Will manually apply the diffs to these deleted files to the new zig
code in a followup commit.
|
|
introduce Addr and Half definition to std.elf, and use them for dl_phdr_info
|
|
The code accidentally used the phdr offset instead of the shdr one while
iterating over the section headers.
Fixes #6338
|
|
|
|
add SPDX license identifier
copyright ownership is zig contributors
|
|
map EBADF to error values for read and write
|
|
|
|
The buffer index was declared as `u64`, which overflows `usize` on a
32-bit target.
The following example program failed to compile for 32-bit targets:
```zig
const std = @import("std");
pub fn main() !void {
const alloc = std.testing.allocator;
const file = std.io.getStdIn();
_ = try std.elf.readAllHeaders(alloc, file);
}
```
```
lib/zig/std/elf.zig:543:36: error: expected type 'usize', found 'u64'
const len = file.pread(buf[i .. buf.len - i], offset + i) catch |err| switch (err) {
^
lib/zig/std/elf.zig:543:36: note: unsigned 32-bit int cannot represent all possible unsigned 64-bit values
const len = file.pread(buf[i .. buf.len - i], offset + i) catch |err| switch (err) {
^
lib/zig/std/elf.zig:543:35: note: referenced here
const len = file.pread(buf[i .. buf.len - i], offset + i) catch |err| switch (err) {
^
lib/zig/std/elf.zig:348:5: note: referenced here
try preadNoEof(file, &hdr_buf, 0);
^
lib/zig/std/elf.zig:392:19: note: referenced here
.header = try readHeader(file),
```
|
|
|
|
|
|
This is direct result of review comments left by andrewrk and
daurnimator. It makes sense to map `ENOTCAPABLE` into a more generic
`error.AccessDenied`.
|
|
|
|
|
|
|
|
regression from #5266
closes #5270
|