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
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
Andrew Kelley
1530e82b6b
re-apply: these are not real CPU features
...
The commit 70ee818d21
(update target CPUs and features with llvm10's data)
accidentally reverted 6793af8d8b
.
This un-reverts it.
2020-02-04 15:16:44 -05:00
nofmal
a697de3eac
Add basic linux termios implementation
2020-02-04 14:09:57 -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
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
frmdstryr
32291ab702
Add support for dependent packages when using build.zig
2020-02-02 15:21:27 -05:00
Jay Petacat
923e567c6d
blake3: Replace `&arr` with `arr[0..]` for slice args
2020-02-02 14:59:36 -05:00
Jay Petacat
b143fc0d32
blake3: Name and const pointer refinements
2020-02-02 14:42:57 -05:00
Jay Petacat
d098e212ad
blake3: Convert `*const [n]u8` types to `[n]u8`
...
I do not see many cases of constant pointers to arrays in the stdlib.
In fact, this makes the code run a little faster, probably because Zig
automatically converts to pointers where it makes sense.
2020-02-02 14:08:10 -05:00
Vexu
35c40f0a70
fix regressions
2020-02-02 10:49:51 +02:00
Jay Petacat
4b86c1e3bb
crypto: Add BLAKE3 hashing algorithm
...
This is a translation of the [official reference implementation][1] with
few other changes. The bad news is that the reference implementation is
designed for simplicity and not speed, so there's a lot of room for
performance improvement. The good news is that, according to the crypto
benchmark, the implementation is still fast relative to the other
hashing algorithms:
```
md5: 430 MiB/s
sha1: 386 MiB/s
sha256: 191 MiB/s
sha512: 275 MiB/s
sha3-256: 233 MiB/s
sha3-512: 137 MiB/s
blake2s: 464 MiB/s
blake2b: 526 MiB/s
blake3: 576 MiB/s
poly1305: 1479 MiB/s
hmac-md5: 653 MiB/s
hmac-sha1: 553 MiB/s
hmac-sha256: 222 MiB/s
x25519: 8685 exchanges/s
```
[1]: https://github.com/BLAKE3-team/BLAKE3
2020-02-01 23:03:23 -05:00
daurnimator
4f2652d504
Winsock errors can be an enum
2020-02-01 14:29:16 -05:00
LemonBoy
0bf91cce58
windows: Minor changes to psapi prototypes
2020-02-01 13:43:46 -05:00
LemonBoy
e548195fd5
fmt: Use left brace position instead of the right one
...
Fix a typo and add a test case.
2020-02-01 15:28:23 +01:00
LemonBoy
f34abbf260
fmt: Handle declarations in line with the opening brace
2020-02-01 14:43:31 +01:00
LemonBoy
3640c682a2
Run `zig fmt`
2020-02-01 11:32:53 +01:00
LemonBoy
8309ee8752
fmt: Respect trailing comma for field declarations
...
Closes #4349
2020-02-01 11:28:21 +01:00
Andrew Kelley
e6a812c827
Merge pull request #4340 from daurnimator/ntstatus-as-enum
...
Windows error codes as non-exhaustive enums
2020-01-31 18:27:17 -05:00
LemonBoy
dee7804a81
fmt: Fix logic to find the argument list closing )
...
Closes #4341
2020-01-31 18:25:58 -05:00
LemonBoy
c910aa8555
windows: Add GetCurrentProcess definition
2020-02-01 00:01:09 +01:00
LemonBoy
9ffc13b6c4
windows: Add psapi API
...
Export both the "old-style" definitions from psapi and the "new-style"
ones from kernel32.
2020-01-31 23:50:26 +01:00
daurnimator
ab46713fa6
std: update for linux 5.5 release
2020-01-31 10:18:17 -05:00
daurnimator
a351350b88
std: format non-exhaustive enums
2020-01-31 22:33:56 +11:00
daurnimator
b9f720365c
Turn win32 errors into a non-exhaustive enum
2020-01-31 22:33:55 +11:00
daurnimator
7cf0b02ab4
NTSTATUS is a non-exhaustive enum
2020-01-31 22:33:17 +11:00
meme
1e78070a40
build: Fix missing `dupe`
...
- Strange memory corruption issues occur when allocated memory is passed to the builder and it is `defer`'d and freed
- Instead, `dupe` the string as is done in other handlers, this fixes the issue
2020-01-30 20:57:31 -05:00
Andrew Kelley
a475877007
fix translate-c regression
...
clang.zig had incorrect enum for builtin types
2020-01-30 18:43:54 -05:00
Andrew Kelley
c5df0b3e9d
set llvm cpu features to null for exynosm1,exynosm2
...
llvm dropped support for these features
2020-01-30 18:43:28 -05:00
LemonBoy
fd8d8afb24
stdlib: Add binary search function
2020-01-31 00:40:43 +01:00
LemonBoy
d27678fe83
fmt: Refactor the arg fetching code
...
* Error out if the requested index is out-of-bound
* Tidy-up all the arg-related variables in a struct
2020-01-30 18:07:02 -05:00
Andrew Kelley
17c8f108a4
drop @newStackCall
...
this was causing unrelated behavior tests to fail.
if this commit is reverted, the docs are good, but `@newStackCall` is
already deprecated in favor of `@call`, supplying the `stack` property.
2020-01-30 17:51:55 -05:00
Shawn Landden
cbd42e44d6
rb: fix rb.Node.getLast() that never worked
2020-01-30 12:05:57 -05:00
Andrew Kelley
70ee818d21
update target CPUs and features with llvm10's data
...
based on zig-llvm-target-details-generator
commit 3aef1b9b4415ed3acfaea4ce8bc233e213548f71
2020-01-30 11:31:41 -05:00
Andrew Kelley
65b1a4953f
Merge pull request #4324 from fengb/testing-allocator
...
Remove debug.global_allocator in favor of testing.allocator
2020-01-30 10:01:40 -05:00
Andrew Kelley
e3a383a661
Merge pull request #4239 from shawnl/rb
...
rb: **breaking** change API to be thread-safe
2020-01-30 09:45:35 -05:00
Andrew Kelley
0303e7bd8e
Merge pull request #4319 from Rocknest/windows-traces
...
Bring windows segfault handler on par with linux
2020-01-30 09:26:39 -05:00
LemonBoy
e77a102e24
Small DWARF fixups
...
* Clang doesn't seem to emit a DW_AT_low_pc together with DW_AT_ranges
for asm files.
* Keep reading the other CUs if the lookup fails.
2020-01-30 09:11:02 -05:00
Rocknest
a5f18c2b2a
Fix one more edge case
2020-01-30 10:00:28 +02:00
Benjamin Feng
9c196efa2a
Add explicit error message for too many frees
2020-01-30 01:12:21 -06:00
Rocknest
94f29ae117
Remove intCast's
2020-01-30 08:53:38 +02:00
Benjamin Feng
46d84a1b63
Convert a few more page_allocator
2020-01-30 00:27:44 -06:00
Benjamin Feng
c1fb97aef6
Remove unnecessary allocator from mutex
2020-01-30 00:27:44 -06:00
Benjamin Feng
184128fd9e
Fix testing.allocator wiring
2020-01-30 00:27:44 -06:00
Andrew Kelley
c75f65d38c
std.Target: add ve arch
2020-01-29 23:58:28 -05:00
Andrew Kelley
a95dce15ae
Merge remote-tracking branch 'origin/master' into llvm10
2020-01-29 23:33:12 -05:00
Benjamin Feng
5c8e85f388
Fix BufMap value leak
2020-01-29 22:22:01 -06:00
Benjamin Feng
b7a236d68e
Convert a bunch of page_allocator to testing.allocator
2020-01-29 22:22:01 -06:00
Benjamin Feng
ad93ad3e60
Fix errant reference to page_allocator
2020-01-29 22:22:01 -06:00
Benjamin Feng
b077f3ab7d
Promoted "leak_count_allocator" to the main testing.allocator
2020-01-29 22:22:00 -06:00
Benjamin Feng
70ad84c820
Use defer/panic to better account for test failure
2020-01-29 17:38:52 -06:00
Benjamin Feng
0c137934cb
Move FailingAllocator to testing
2020-01-29 17:38:42 -06:00
Rocknest
b1884b3a62
Fix aarch64
2020-01-30 01:17:34 +02:00
Rocknest
c0c9c601d4
Fix off-by-one error
2020-01-29 23:48:52 +02:00
Rocknest
4a4d6f2be9
Reorganize definitions
2020-01-29 23:15:17 +02:00
Valentin Anger
d448c3d38a
Add support for code model selection
2020-01-29 16:09:07 -05:00
Benjamin Feng
aa9caf5064
Create leak_count_allocator
2020-01-29 14:37:01 -06:00
Rocknest
b7cd60a354
Changing stuff and seeing what happens
2020-01-29 21:09:00 +02:00
Benjamin Feng
4d134a01f5
Move debug.global_allocator to testing.allocator
2020-01-29 12:21:29 -06:00
Andrew Kelley
34706dad3f
fix typo in doc comment
2020-01-29 12:25:25 -05:00
Andrew Kelley
0cc2489d22
Merge pull request #4317 from Vexu/std-c
...
Add (unfinished) C parser to std lib
2020-01-29 12:13:53 -05:00
LemonBoy
1ba4554855
Correct dl_iterate_phdr address
...
The base should be zero so that p_vaddr + dlpi_addr = p_vaddr
2020-01-29 12:05:36 -05:00
Rocknest
3500b41bfe
Add an advanced segfault handler on windows
2020-01-29 17:27:53 +02:00
Vexu
abd1a7c91c
std-c add todos to unfinished parsing functioins
2020-01-29 12:12:28 +02:00
Andrew Kelley
13259acbc3
std.sort.insertionSort: remove superfluous block
2020-01-28 16:22:09 -05:00
Andrew Kelley
3ed52e5453
fix build.zig logic for -target-cpu and -target-feature
...
fix a false negative for detecting the ability to emit these flags.
it matters for stage0/stage1 on aarch64
2020-01-28 14:54:34 -05:00
Andrew Kelley
d8e2549996
remove invalid use of `allowzero` in std.crypto.murmur
2020-01-27 19:42:13 -05:00
Andrew Kelley
4591389497
Merge pull request #4300 from LemonBoy/debug-windows
...
More debug fixes - This time Windows gets a treat
2020-01-27 09:46:39 -05:00
LemonBoy
d5c2a20d8e
Unify the two DWARF interpreters
...
* Let's consolidate the special-cased DWARF interpreter for OSX with the
general purpose one
* Drop the assumption that all the debug data is contained in a single
contiguous slice of memory. This is a good news for freestanding
targets and paves the way for supporting compressed debug sections.
2020-01-27 09:46:20 -05:00
LemonBoy
7336b750bd
Fix stack-trace address calculation on Windows
...
Let's always subtract 1 from the return address so that we're sure to be
inside the callee.
Fixes some edge case where the stack trace skipped the first entry.
2020-01-27 13:12:01 +01:00
LemonBoy
f8e015c85f
Handle S_GPROC32 symbols in PDB files
...
Fixes some incomplete stack traces on Windows.
2020-01-27 13:10:35 +01:00
Andrew Kelley
518dbd30cb
Merge pull request #4133 from daurnimator/4087-free-sets-undefined
...
Sets memory to undefined when freed from allocator
2020-01-26 18:52:43 -05:00
Andrew Kelley
51ac8eb08e
fix regression in windows stack traces tty detection
2020-01-26 18:28:52 -05:00
Andrew Kelley
3839ea8978
fix debug info code not being freestanding compatible
...
in stack tracing code, the idea was to detect the tty settings at the
top of the stack and pass the information down. somewhere along the way
this got changed so that setTtyColor was assuming the global stderr_file
was related to the output stream the stack trace was being printed to.
now, tty_color is changed to tty_config, and it is an enum rather than a
bool, telling how tty colors are expected to be handled. windows is
still incorrectly looking at stderr_file.
2020-01-26 09:55:04 -05:00
Andrew Kelley
9dffc369f1
Merge remote-tracking branch 'origin/master' into layneson-cpus_and_features
2020-01-25 23:25:29 -05:00
LemonBoy
aaa2f9ab2f
Fix handling of DW_LNE_end_sequence
...
The DWARF specification states that LNE_end_sequence should just reset
the state machine, it's not an error.
2020-01-25 20:03:50 -05:00
LemonBoy
8516ee392c
Fix parsing of DW_AT_Ranges debug entry
...
Follow the specification about what the base address is and how it can
be changed by some entries in the list itself.
2020-01-25 16:12:11 -05:00
Andrew Kelley
800ead2810
update target info to llvm 10
...
the branch builds now
2020-01-23 17:31:25 -05:00
Andrew Kelley
fbfda7f00e
fix incorrect list of sub-arches for aarch64
...
tests use older sub-arch that works in the older qemu
2020-01-23 13:02:45 -05:00
Andrew Kelley
c86589a738
disable f128 compiler_rt tests failing on windows
...
These were never working with native CPU features. In this branch,
we fix native CPU features not being enabled on Windows, and regress
f128 language features. In the llvm10 branch, all this is fixed,
and the tests are re-enabled.
2020-01-23 02:05:24 -05:00
Andrew Kelley
ead7d15772
use an older arm64 sub-arch for test suite
...
hopefully this avoids the older qemu version crashing
2020-01-23 00:41:46 -05:00
Michael Dusan
357f42da6c
compiler_rt: fix mulsi3 test typo
2020-01-22 20:17:38 -05:00
Andrew Kelley
fb8e681ea8
update zig_llvm.h and zig_llvm.cpp to llvm 10
2020-01-22 18:43:30 -05:00
Andrew Kelley
9845264a0b
aarch64: less feature-full baseline CPU
2020-01-22 18:40:34 -05:00