8842 Commits

Author SHA1 Message Date
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
Andrew Kelley
877f39d227
fix async function call resolves target fn frame 2020-02-07 22:48:31 -05:00
Andrew Kelley
39ee1f4b97
fix invalid behavior tests from prev commit
and fix "no-op casts" from incorrectly spilling
2020-02-07 16:31:52 -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
9e5b248991
remove workarounds for Windows native CPU features
bug fixed in LLVM 10

closes #508
2020-02-07 12:41:46 -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
a1576225ca
Merge pull request #4409 from LemonBoy/llvm-10-fpchanges
LLVM10 changes
2020-02-07 11:47:18 -05:00
Andrew Kelley
71873e7133
implement os.pipe2 for darwin 2020-02-07 11:28:42 -05:00
LemonBoy
e3447e67fe riscv64: Enable some more tests
Closes #3338
2020-02-07 17:21:28 +01:00
LemonBoy
8d6536b50c codegen: Use the new frame-pointer fn attributes
no-frame-pointer-elim and no-frame-pointer-elim-non-leaf have been
deprecated for a while in favour of the newer (and clearer)
frame-pointer attribute.

Starting with LLVM10 the old attributes are silently ignored, leading to
no stack traces in debug mode.
2020-02-07 17:08:21 +01: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
5076f2d4f6918946616504d22907c9f80601caf8
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
Andrew Kelley
5076f2d4f6
std: improve non-libc dynamic library loading 2020-02-05 15:31:09 -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
LemonBoy
21932a0ef2 Fix edge case in cast between fn with varargs
* Prevent the next_param_index to become greater than the param_count
  one as it's expected by every other function.
* Fix a typo in a error message.

Closes #4381
2020-02-05 20:31:18 +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
Vexu
f196ddd251
translate c type names 2020-02-05 17:52:46 +02: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
Michael Dusan
b022db16ec
Merge pull request #4394 from mikdusan/fix-cmake-regression
stage1: fix cmake regression
2020-02-05 10:01:16 -05:00
Michael Dusan
d0a9da74ef
stage1: fix cmake regression
- add `None` as a valid CMAKE_BUILD_TYPE
- this is a legitimate setting used by packagers

regression was caused by c6df5deb3450e0d8a2ba449c34a0bd195fbce8ec
2020-02-05 08:24:50 -05: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
Michael Dusan
25cbee0b84
Merge pull request #4390 from mikdusan/cherry-pick
stage1: guard against case-mismatched build types
2020-02-04 22:34:46 -05:00
Michael Dusan
c6df5deb34
stage1: guard against case-mismatched build types
- zig CMakeLists.txt CMAKE_BUILD_TYPE string comparisons are case-sensitive
- cmake itself is unclear about how tolerant it is for case-mismatches
- add CMAKE_BUILD_TYPE guard in CMakeLists.txt to force exact matches
2020-02-04 20:39:05 -05: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
Andrew Kelley
1530e82b6b
re-apply: these are not real CPU features
The commit 70ee818d21c44ec0031b997916694327eb9fc37f
(update target CPUs and features with llvm10's data)
accidentally reverted 6793af8d8b370cefc0a1fccbcf1c9fd1a24c7378.

This un-reverts it.
2020-02-04 15:16:44 -05:00
Andrew Kelley
73256dda91
work around LLVM 10 llvm-config giving absolute path to libz.so 2020-02-04 15:04:11 -05:00
nofmal
a697de3eac Add basic linux termios implementation 2020-02-04 14:09:57 -05:00
Andrew Kelley
a9df637fb1
fix undef clang library symbols when linking self-hosted 2020-02-04 03:39:40 -05:00
Andrew Kelley
d0b12d7726
Merge remote-tracking branch 'origin/master' into llvm10 2020-02-03 17:30:38 -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