Commit Graph

951 Commits (a8b36fbe34e4acfea1fcb348fbed321b05611fd3)

Author SHA1 Message Date
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