Commit Graph

12675 Commits

Author SHA1 Message Date
data-man 6af39aa49a Fixes #3966 2019-12-29 18:19:03 -05:00
Andrew Kelley 6b960331ee Merge pull request #3968 from daurnimator/sigprocmask
Clean up linux sigprocmask, raise
2019-12-29 18:03:09 -05:00
Vexu f5e7d2d00c translate-c fix bugs
Thanks @daurnimator
2019-12-29 14:01:59 +02:00
Vexu 59cc7072e2 translate-c-2 use intCast in most places 2019-12-29 11:04:59 +02:00
Vexu 3f7bab7373 fix translate-c taking ages 2019-12-29 11:04:58 +02:00
Marc Tiehuis bda355d976 Merge pull request #3992 from ForLoveOfCats/BigIntToStringLeak
Add missing deferred deinits to `math.big.Int.toString`
2019-12-29 14:47:59 +13:00
daurnimator 2662e50d27 std: sentinel terminated pointers for utf16 apis 2019-12-29 10:35:05 +11:00
ForLoveOfCats b28824ef66 Add missing deferred deinits to math.big.Int.toString (mem leak fix) 2019-12-28 15:31:32 -05:00
daurnimator edb5deb39c std: unicode codepoints are 21 bits 2019-12-28 16:49:59 +11:00
daurnimator ab6065407d std: simplify utf8ToUtf16Le
Also faster, on my machine unicode/throughput_test.zig now gives e.g.
> original utf8ToUtf16Le: elapsed: 1048 ns (0 ms)
> new utf8ToUtf16Le: elapsed: 971 ns (0 ms)
2019-12-28 16:49:59 +11:00
daurnimator 5843a6e3bc std: optimise utf8ByteSequenceLength
Also tested (but not as fast):
```zig
pub fn utf8ByteSequenceLength(first_byte: u8) !u3 {
    const len = @clz(u8, ~first_byte);
    if (len == 0) return 1;
    if (len < 4) return @intCast(u3, len);
    return error.Utf8InvalidStartByte;
}
```
2019-12-28 14:39:38 +11:00
daurnimator 8b72eedc76 std: add warm up phase to benchmark
In my tests, whatever ran first was getting much better numbers.
Additionally, add alignment requirements so that comparison is fair.
2019-12-28 14:39:38 +11:00
daurnimator a81c0ba2e7 std: fix unicode encoding of astral plane codepoints to utf16 2019-12-28 14:39:38 +11:00
kprotty 1c5a1284e3 typo fix 2019-12-22 21:45:26 -06:00
kprotty b8fabb3426 ResetEvent: broadcast by default 2019-12-22 21:45:26 -06:00
Andrew Kelley 28dbdba37e Merge pull request #3935 from Vexu/translate-c-2
Translate-c-2 the rest
2019-12-22 16:12:56 -05:00
daurnimator 95c83388e4 std: use pid_t where appropriate 2019-12-22 20:20:58 +11:00
daurnimator 59348240d7 std: use wrappers from raise() rather than raw syscalls 2019-12-22 20:20:58 +11:00
daurnimator 6de4bd850c std: add tkill and tgkill for linux 2019-12-22 20:20:58 +11:00
daurnimator c31afc3736 std: remove high level linux sigprocmask wrappers 2019-12-22 20:20:58 +11:00
daurnimator 9577ff1c90 std: use simpler sigset_t definition 2019-12-22 20:20:53 +11:00
Jethro Nederhof ba1d213f48 freebsd: add missing OS and libc bits 2019-12-22 02:27:23 -05:00
daurnimator 96c9c38b35 std: sigprocmask set is optional 2019-12-22 12:03:03 +11:00
Andrew Kelley 290dc5d95b zig fmt support for slice sentinel syntax 2019-12-21 14:03:36 -05:00
LemonBoy 333eec557f Initial support for static PIE executables 2019-12-21 17:34:05 +01:00
Nathan Michaels 45339aec02 Fix wording on deinit. 2019-12-21 01:30:55 -05:00
Andrew Kelley 8918cb06fc sentinel slicing improvements
* add runtime safety for slicing pointers, arrays, and slices.
 * slicing without a sentinel value results in non-sentineled slice
 * improved `std.debug.panic` handling of panic-during-panic
2019-12-20 18:28:59 -05:00
Andrew Kelley 26f3c2d061 fix std.mem.addNullByte and implement sentinel slicing
see #3770
2019-12-20 18:28:56 -05:00
Nathan Michaels 33b5dbb82c Document std.Mutex.
Not sure what the build platform is for the generated documentation,
and it's worth thinking about how best to deal with this pattern. It
might be worth figuring out how to rewrite this to have a single
definition of the public API with the implementation chosen at compile
time.
2019-12-19 23:42:27 -05:00
Vexu d172a7335c translate-c-2 copy parametrs to stack 2019-12-20 00:12:08 +02:00
Vexu 61482be153 translate-c-2 improve macro fn ptr caller 2019-12-19 20:58:48 +02:00
Vexu f837c7c9cd translate-c-2 compound assign 2019-12-19 16:13:28 +02:00
Vexu 62bfff5e87 translate-c-2 fix expression grouping bugs 2019-12-18 13:32:19 +02:00
Vexu 21bc3353b8 translate-c-2 character literals and more test fixes 2019-12-18 01:04:01 +02:00
kprotty c912296443 SpinLock: loopHint & yield distinction 2019-12-17 15:38:00 -06:00
kprotty 26e08d5701 ResetEvent: use futex on linux when possible 2019-12-17 15:38:00 -06:00
kprotty ac5ba27c2b Mutex: fix lock/spin bugs, improve perf slightly & more specialization 2019-12-17 15:38:00 -06:00
kprotty e67ce444e7 ResetEvent: simpler interface + fix tests 2019-12-17 15:38:00 -06:00
kprotty 947db78622 Spinlock: remove Backoff & improve yielding 2019-12-17 15:38:00 -06:00
Raul Leal 62c817420d [#3844 + #3767] update std.c and std.os.linux to use null-terminated pointer types (#3900)
* #3844 update std.c functions to use null-terminated pointer types

* check linux functions

* fix callsites

* fix io test

* Add allocPrintCstr function to remove other cast
2019-12-17 15:43:49 -05:00
Andrew Kelley b1abe4a172 Revert "added -- to pass args to zig build commands"
This reverts commit d4e56ae6ae.

This broke the build
2019-12-16 16:36:42 -05:00
Dmitry Atamanov 744133acb1 Fixes utf8ToUtf16Le (#3923) 2019-12-16 16:27:26 -05:00
emekoi d4e56ae6ae added -- to pass args to zig build commands 2019-12-16 16:24:54 -05:00
Andrew Kelley 13cdc137e6 Merge pull request #3570 from ziglang/c-sanitize-undef
use -fsanitize=undefined for C code in safe build modes
2019-12-16 16:17:52 -05:00
Andrew Kelley 839b3a61ad expose the ability to disable C sanitization
and disable C sanitization when building libcs.
Empirically, they seem to trigger undef-sanitization.
2019-12-16 13:51:21 -05:00
Andrew Kelley f8cd981c04 use -fsanitize=undefined for C code in safe build modes
closes #3569
2019-12-16 13:06:02 -05:00
Henry Wu 170de5ecae generated docs: log trace instead of error
When the error occurred for getValueText it could potentially omit
useful documentation since the page stops rendering.
2019-12-16 12:40:38 -05:00
Andrew Kelley 496f271d17 Merge branch 'shawnl-lessThan'
* always allow integer comparison operations no matter the
   bit width, signedness, or comptime-ness of operands.
   closes #2133
 * implement comparisons for vectors, which returns vector of
   bools.

closes #3001
2019-12-16 11:39:13 -05:00
Andrew Kelley 9468d63819 allow comparison of any numeric types 2019-12-16 11:09:10 -05:00
Lachlan Easton fe0e8c87b7 Tokenizer: Copy optional tokens prior to being set to null #3737 (#3910)
* Tokenizer: Copy optional tokens prior to being set to null #3737

* Add TODO comments, reminder to audit copying optional pattern.
2019-12-16 11:01:02 -05:00