Stephen Gregoratto
3200fae9c5
Linux: Add syscall bindings, enhance documentation.
...
- Add syscall bindings/structures for the `futex2` family.
The documentation is taken from the syscall definitions.
- Add documnentation for the `cachestat` bindings and structures.
Taken from work I did in Cosmopolitian libc.
- Add binding for `map_shadow_stack`.
No documentation for this one, since the kernel devs didn't bother to
do it ¯\_(ツ)_/¯.
2024-01-15 20:05:03 +11:00
Stephen Gregoratto
cca021c211
Linux: Update syscalls for the 6.7 release
...
This release adds the rest of the futex2[1] syscalls, along with
shadow stack[2] support for more architectures.
[1]: https://lwn.net/Articles/940944/
[2]: https://lwn.net/Articles/926649/
2024-01-15 20:05:03 +11:00
Jakub Konka
3dddb881bf
Merge pull request #18560 from ziglang/elf-report-dupes
...
elf: report duplicate symbol definitions
2024-01-15 07:37:09 +01:00
Jakub Konka
852e7e24b5
Merge pull request #17917 from Jan200101/PR/each_lib_rpath_frontend
...
move rpath to frontend and remove native paths from it
2024-01-15 07:35:12 +01:00
Andrew Kelley
a5934edd48
std.os.linux.io_uring: fix compilation errors
...
Commit f0c42fbba15a31113dc989ab65c054047423afa3 was created before the
additional compile error for var used instead of const.
2024-01-14 19:20:41 -07:00
Andrew Kelley
f0c42fbba1
Merge pull request #18025 from ianic/io_uring_send_zc
...
io_uring: add send_zc and *_direct operations
2024-01-14 18:10:51 -08:00
expikr
ff23efe9fa
Update pow.zig
2024-01-14 18:09:26 -08:00
expikr
0c70d9c714
use Peer Type Resolution for standalone complex fn
...
use peer type resolution
Update complex.zig
Revert "use peer type resolution"
This reverts commit 1bc681ca5b36d2b55b5efab5a5dbec7e8a17332e.
Revert "Update pow.zig"
This reverts commit 5487e8d3159f832b5a0bf29a06bd12575182464f.
Update pow.zig
Revert "Update pow.zig"
This reverts commit 521153d1ef004d627c785f2d3fe5e6497dc15073.
Update pow.zig
2024-01-14 18:09:17 -08:00
Tristan Ross
9fce1d1ab1
mem: add byteswap array support ( #17959 )
...
also make byteswap work with enums
2024-01-14 21:06:31 -05:00
expikr
f9d8176e94
Update atan2.zig ( #17840 )
...
Co-authored-by: castholm <carl@astholm.se>
2024-01-14 21:04:30 -05:00
expikr
1a7a711964
std.math: add wrap function ( #18154 )
2024-01-14 20:45:39 -05:00
Jan200101
e517d5a51e
std.zig.system.NativePaths: add NixOS lib dirs to the rpath
2024-01-14 15:57:45 -07:00
Jakub Konka
a8b9f0cf22
std/Build/Step/Compile: do not propagate deps of complex addObject step
2024-01-14 23:07:21 +01:00
Andrew Kelley
09074d7cd7
std.os: proper use of inline
...
Uses `inline` only to forward the comptime-ness of the flags parameter
to function selection.
Also fixes doc comments in std.c.versionCheck.
2024-01-13 23:56:32 -07:00
Stephen Gregoratto
01cc904fc7
Rework fchmodat tests
...
Based on the Linux kernel fchmodat2 test
2024-01-13 23:52:01 -07:00
Stephen Gregoratto
bc69d62669
Linux: Add fchmodat fallback when flags is nonzero
...
The check for determining whether to use the fallback code has been
moved into an inline function as per Andrew's comments in #17954 .
2024-01-13 23:52:01 -07:00
Stephen Gregoratto
cf6751ae55
Add fchmodat2 bits to os/linux.zig
2024-01-13 23:52:01 -07:00
Stephen Gregoratto
26db31f6f6
Add fchmodat2 to the Linux syscall list
...
This syscall was added to simplify the the libc implementations of
fchmodat, as the original syscall does not take a `flags` argument.
Another syscall, `map_shadow_stack`, was also added for x86_64.
2024-01-13 23:52:01 -07:00
Andrew Kelley
bd46410419
Revert "Merge pull request #18410 from dweiller/by-length-slice-bug"
...
This reverts commit d9d840a33ac8abb0e616de862f592821a7f4a35e, reversing
changes made to a04d4330945565b8d6f298ace993f6954c42d0f3.
This is not an adequate implementation of the missing safety check, as
evidenced by the changes to std.json that are reverted in this commit.
Reopens #18382
Closes #18510
2024-01-13 23:21:44 -07:00
Carl Åstholm
0f9345ea9a
Expose -f(no-)formatted-panics to the build system (again)
2024-01-13 22:07:34 -08:00
Ryan Liptak
4dd3505e43
std.ArrayList: Clarify that ensureTotalCapacity/ensureTotalCapacityPrecise will never shrink the array
...
Closes #18499
2024-01-13 19:58:22 -08:00
vinnichase
279607cae5
Fix fmt UTF-8 characters as fill ( #18533 )
...
Co-authored-by: Jacob Young <jacobly0@users.noreply.github.com>
2024-01-13 22:47:03 -05:00
Nameless
b723296e1f
std.http: add missing documentation and a few examples
2024-01-13 18:51:38 -08:00
Nameless
832f6d8f7f
std.Uri: fix implementation of resolve with trailing slashes
2024-01-13 18:50:29 -08:00
Guillaume Wenzek
c5d359e4cd
fix #17142 , wrong comptime log_int computation
2024-01-13 18:46:16 -08:00
Igor Anić
7d3a31872e
tar: improve diagnostic reporting
...
Using Python testtar file (mentioned in #14310 ) to test diagnostic
reporting.
Added computing checksum by using both unsigned and signed header bytes
values.
Added skipping gnu exteneded sparse headers while reporting unsupported
header in diagnostic.
Note on testing:
wget https://github.com/python/cpython/raw/3.11/Lib/test/testtar.tar -O
/tmp/testtar.tar
```
test "Python testtar.tar file" {
const file_name = "testtar.tar";
var file = try std.fs.cwd().openFile("/tmp/" ++ file_name, .{});
defer file.close();
var diag = Options.Diagnostics{ .allocator = std.testing.allocator };
defer diag.deinit();
var iter = iterator(file.reader(), &diag);
while (try iter.next()) |f| {
std.debug.print("supported: {} {s} {d}\n", .{ f.kind, f.name, f.size });
try f.skip();
}
for (diag.errors.items) |e| {
switch (e) {
.unsupported_file_type => |u| {
std.debug.print("unsupported: {} {s}\n", .{ u.file_type, u.file_name });
},
else => unreachable,
}
}
}
```
2024-01-13 19:37:33 -07:00
Igor Anić
7923a53996
tar: rename reader to iterator
...
Itarator has `next` function, iterates over tar files. When using from
outside of module with `tar.` prefix makes more sense.
var iter = tar.iterator(reader, null);
while (try iter.next()) |file| {
...
}
2024-01-13 19:37:33 -07:00
Igor Anić
e21a12e56b
tar: use @embedFile in tests
...
Like in other tests which uses testdata files (compress). That enables
wasi testing also, was failing because file system operations in tests.
2024-01-13 19:37:33 -07:00
Igor Anić
76fe1f53d5
tar: fix tests on 32-bit platforms
2024-01-13 19:37:33 -07:00
Igor Anić
a75fd4ff15
tar: move test cases to std/tar/testdata
...
Create std/tar/test.zig for test which uses cases from testdata.
2024-01-13 19:37:33 -07:00
Igor Anić
f8e42d6b30
tar: add Go test case files to the project
2024-01-13 19:37:33 -07:00
Igor Anić
c07527abac
tar: reorganize file, functions before tests
2024-01-13 19:37:33 -07:00
Igor Anić
c76abe0e18
tar: use file word in less places
2024-01-13 19:37:33 -07:00
Igor Anić
4a6d67ab1a
tar: remove stratch from tar reader
...
Use explicit buffers for name, link_name instead.
It is cleaner that way.
2024-01-13 19:37:33 -07:00
Igor Anić
9f7dd32308
tar: refactor pax attribute
...
Make it little readable.
2024-01-13 19:37:33 -07:00
Igor Anić
dbab45cfc6
tar: replace custom buffered reader with std.io
2024-01-13 19:37:33 -07:00
Igor Anić
58e0e509c6
tar: add module comment and references
2024-01-13 19:37:33 -07:00
Igor Anić
a3cf8ec71e
tar: add pax file reader tests
2024-01-13 19:37:33 -07:00
Igor Anić
7b0bbc680f
tar: add file mode to result of tarbal iteration
...
So we have information to set executable bit on write to file system.
2024-01-13 19:37:33 -07:00
Igor Anić
2a432d3008
tar: prefix test cases with 'tar'
...
To make it little easier to filter from all stdlib tests.
2024-01-13 19:37:33 -07:00
Igor Anić
2ed9a276a7
tar: use Go test cases path from env variable
...
Skip tests if env is not set.
2024-01-13 19:37:33 -07:00
Igor Anić
6bfa7bf197
tar: use scratch buffer for file names
...
That makes names strings stable during the iteration. Otherwise string
buffers can be overwritten while reading file content.
2024-01-13 19:37:33 -07:00
Igor Anić
6e7a39c935
tar: refactor reading pax attributes
2024-01-13 19:37:33 -07:00
Igor Anić
c761dfc176
tar: add gnu path and link extensions handling
2024-01-13 19:37:33 -07:00
Igor Anić
48b160c1bf
tar: handle pax null attrs and pax attr ending
2024-01-13 19:37:33 -07:00
Igor Anić
16c40fc471
tar: add header chksum checking
2024-01-13 19:37:33 -07:00
Igor Anić
169f28d3e6
tar: fix import path
2024-01-13 19:37:33 -07:00
Igor Anić
e1424b84b8
tar: add parsing size in gnu extended format
...
Reference:
https://www.gnu.org/software/tar/manual/html_node/Extensions.html#Extensions
If the leading byte is 0x80 (128), the non-leading bytes of the field
are concatenated in big-endian order, with the result being a positive
number expressed in binary form.
2024-01-13 19:37:33 -07:00
Igor Anić
6d5283e835
tar: refactor reader and iterator
...
Make it more readable.
2024-01-13 19:37:33 -07:00
Igor Anić
be5d04ab79
tar: add pax linkpath attribute parsing
...
Name of symbolic link can be also found in pax attribute.
2024-01-13 19:37:33 -07:00