Commit Graph

890 Commits

Author SHA1 Message Date
vegecode
d06bfc2e2a Correct comment to include comptime attribute on format output fn parameter
Without comptime, printing custom type through the stream interface fails
2020-02-12 13:16:32 -06:00
LemonBoy
b81c5be451 riscv: Remove 'relax' from the baseline cpu features
LLD doesn't implement relaxations at the moment.
2020-02-11 17:03:11 +01:00
LemonBoy
ea8755fda9 compiler-rt: Export the AEABI builtins when targeting thumb 2020-02-11 15:24:18 +01:00
LemonBoy
3237528a59 fmt: Pass the fmt string to the inner formatters 2020-02-10 19:43:11 -05:00
Andrew Kelley
702398dd0e Revert "windows: remove the 'A' versions of psapi functions"
This reverts commit 1cdefeb10b.

See #4426
2020-02-10 12:30:20 -05:00
Andrew Kelley
1cdefeb10b windows: remove the 'A' versions of psapi functions
See #534
2020-02-10 12:03:11 -05:00
Vexu
ae5ba369e1 translate-c float fixes 2020-02-10 11:02:29 -05:00
Andrew Kelley
014f66e6de Merge pull request #4404 from ziglang/async-std
a big step towards std lib integration with async I/O
2020-02-10 00:22:59 -05:00
Andrew Kelley
3b622f4494 fix off-by-one error in std.unicode.utf8ToUtf16LeWithNull
and fix larger-than-one-byte sentinels when being freed

Thank you to João Pedro for identifying both problems and
providing example code to solve them.

closes #4413
2020-02-09 14:56:19 -05:00
LemonBoy
c4d0f97b4c compiler_rt: Fix clzsi2 implementation for Thumb1
The LUT contains the number of bits set, not the number of leading zeros
as we're subtracting from the total number of bits in a word.

Closes #4415
2020-02-09 14:12:01 -05:00
Andrew Kelley
5b10d9f917 std: fix bitrotted evented code 2020-02-08 16:24:26 -05:00
Andrew Kelley
6ae36807b7 solve recursion in std.atomic.Queue.dump
by adding a maximum depth
2020-02-08 16:22:53 -05:00
Andrew Kelley
c48831512b std lib typo fixups 2020-02-08 01:38:01 -05:00
Jared Miller
b55bc5eb26 Add wWinMain and wWinMainCRTStartup to fix #4376 2020-02-07 22:52:40 -05:00
Andrew Kelley
0e7461d4a3 Merge pull request #4408 from LemonBoy/mmap-i386-fix
handle SIGBUS, fix mmap on i386 linux
2020-02-07 22:51:43 -05:00
LemonBoy
a779450fef linux/i386: Make syscall6 more robust and correct
LLVM10 exposed a subtle flaw in the previous implementation that made
the mmap tests fail.
2020-02-07 22:13:05 +01:00
Andrew Kelley
4a60689309 more carefully calculate llvm field indexes
more correctly solves #4403
2020-02-07 14:54:58 -05:00
Andrew Kelley
3fce8008cc skip self-hosted for now as we work towards async I/O
1. behavior tests with --test-evented-io
 2. std lib tests with --test-evented-io
 3. fuzz test evented I/O a bit, make it robust
 4. make sure it works on all platforms (kqueue, Windows IOCP,
    epoll/other)
 5. restart efforts on self-hosted
2020-02-07 12:30:16 -05:00
Andrew Kelley
7f4cce3345 add fcntl support on darwin 2020-02-07 12:11:15 -05:00
pwzk
eff50abce6 Fixing library search path 2020-02-07 12:08:41 -05:00
Andrew Kelley
71873e7133 implement os.pipe2 for darwin 2020-02-07 11:28:42 -05:00
LemonBoy
7a58ec81ec std: Add a few tests for mmap/munmap 2020-02-07 16:07:12 +01:00
LemonBoy
be02616c86 debug: Show a nice error message on SIGBUS 2020-02-07 16:06:33 +01:00
Andrew Kelley
0b5bcd2f56 more std lib async I/O integration
* `zig test` gainst `--test-evented-io` parameter and gains the ability
   to seamlessly run async tests.
 * `std.ChildProcess` opens its child process pipe with O_NONBLOCK when
   using evented I/O
 * `std.io.getStdErr()` gives a File that is blocking even in evented
   I/O mode.
 * Delete `std.event.fs`. The functionality is now merged into `std.fs`
   and async file system access (using a dedicated thread) is
   automatically handled.
 * `std.fs.File` can be configured to specify whether its handle is
   expected to block, and whether that is OK to block even when in
   async I/O mode. This makes async I/O work correctly for e.g. the
   file system as well as network.
 * `std.fs.File` has some deprecated functions removed.
 * Missing readv,writev,pread,pwrite,preadv,pwritev functions are added
   to `std.os` and `std.fs.File`. They are all integrated with async
   I/O.
 * `std.fs.Watch` is still bit rotted and needs to be audited in light
   of the new async/await syntax.
 * `std.io.OutStream` integrates with async I/O
 * linked list nodes in the std lib have default `null` values for
   `prev` and `next`.
 * Windows async I/O integration is enabled for reading/writing file
   handles.
 * Added `std.os.mode_t`. Integer sizes need to be audited.
 * Fixed #4403 which was causing compiler to crash.

This is working towards:

./zig test ../test/stage1/behavior.zig --test-evented-io

Which does not successfully build yet. I'd like to enable behavioral
tests and std lib tests with --test-evented-io in the test matrix in the
future, to prevent regressions.
2020-02-06 18:05:50 -05:00
Andrew Kelley
786700249e build: fix handling disabling .h file generation 2020-02-06 13:46:59 -05:00
LemonBoy
cfcaf09cce debug: Improve the frame-walking strategy
Clean up the code a bit and introduce a few checks meant to avoid
overshooting the end of the frame chain.
The code is now stable enough not to cause panics during the call frame
walking.
2020-02-06 11:25:40 -05:00
Andrew Kelley
5cf30b6791 Merge pull request #4369 from daurnimator/gimli
std.crypto.gimli enhancements
2020-02-05 18:13:28 -05:00
Andrew Kelley
e1f4f44dff std: improve non-libc dynamic library loading
this is a cherry-pick of
5076f2d4f6
from the llvm10 branch
2020-02-05 18:10:26 -05:00
Andrew Kelley
80ae434b66 Merge pull request #4397 from LemonBoy/fixes
Fixes
2020-02-05 17:04:40 -05:00
Andrew Kelley
704cd977bd ability to run tests in evented I/O mode
This adds `--test-evented-io` as a CLI parameter.

see #3117
2020-02-05 16:53:29 -05:00
Andrew Kelley
84323504ac std.fmt.format: comptime output parameter 2020-02-05 16:52:18 -05:00
Andrew Kelley
378d733439 Merge pull request #4345 from Rocknest/open-di
Fix double close in openElfDebugInfo
2020-02-05 15:56:56 -05:00
LemonBoy
8c55c4550a std: Rename isAbsoluteW to isAbsoluteWindowsW 2020-02-05 20:39:14 +01:00
LemonBoy
9d41ff335c std: Make TCSA enum ABI-compliant 2020-02-05 20:37:00 +01:00
Andrew Kelley
40b1fecace Merge pull request #4363 from Vexu/trans-std-c
Use std.c.tokenizer in translate-c
2020-02-05 14:29:39 -05:00
Rocknest
f30feab1b9 Link the issue in doc comment 2020-02-05 17:19:00 +02:00
Rocknest
a56183197d Fix double close in openElfDebugInfo 2020-02-05 17:18:30 +02:00
daurnimator
ef4ecaa462 std: add AEAD modes for gimli 2020-02-06 00:21:26 +11:00
daurnimator
b495512175 add gimli to crypto hash benchmark 2020-02-06 00:16:00 +11:00
daurnimator
5a095a3f08 std: add Gimli based PRNG to std.rand 2020-02-06 00:16:00 +11:00
Vexu
1f49460dcb fix regressions in comments and string prefixes 2020-02-05 08:35:30 +02:00
LemonBoy
3e7c02edc1 std: Fix edge case in isAbsolute fn family
* Empty strings are not considered absolute paths.
* Refactor some common code.

Closes #4382
2020-02-04 15:52:38 -05:00
nofmal
a697de3eac Add basic linux termios implementation 2020-02-04 14:09:57 -05:00
Andrew Kelley
0fdcd5c4cb Merge pull request #4337 from LemonBoy/stdlib-bsearch
stdlib: Add binary search function
2020-02-03 16:53:00 -05:00
LemonBoy
1658becb62 fmt: Fix one more edge case in container formatting 2020-02-03 16:03:48 -05:00
LemonBoy
db3aea3a0b Change API for binarySearch fn 2020-02-03 21:51:03 +01:00
Andrew Kelley
5504f155aa Merge pull request #4366 from jayschwa/blake3
crypto: Add BLAKE3 hashing algorithm
2020-02-03 15:13:50 -05:00
Michaël Larouche
9b11e5e1f1 Add InstallRawStep to Zig build system that does a similar job to llvm-objcopy. To use it, do 'exe.installRaw("kernel.bin");' where exe is a LibExeObjStep
Part of #2826
2020-02-03 15:07:34 -05:00
Jay Petacat
cb2c14e03f blake3: Workaround issue #4373 with named types 2020-02-02 18:44:50 -05:00
Andrew Kelley
a795c36d7b Merge pull request #4352 from LemonBoy/fix-4349
fmt: Respect trailing commas in field declarations
2020-02-02 15:27:53 -05:00