Commit Graph

853 Commits

Author SHA1 Message Date
LemonBoy
e6485282d3 Better logic for last-param rendering 2020-01-03 11:49:42 +01:00
LemonBoy
7b375a1c4a Revert "Revert "Trailing comma is respected for builtin calls""
This reverts commit f83411b0b1.
2020-01-03 10:17:40 +01:00
Andrew Kelley
f83411b0b1
Revert "Trailing comma is respected for builtin calls"
This reverts commit afd0290918.

This caused test failures.
2020-01-02 21:53:25 -05:00
LemonBoy
afd0290918 Trailing comma is respected for builtin calls 2020-01-02 16:43:39 -05:00
LemonBoy
e99209baf0 Add transform test 2020-01-02 18:57:08 +01:00
LemonBoy
0ccac79c8e Implement Thiscall CC 2020-01-02 18:57:08 +01:00
LemonBoy
0ec64d4c0c Integrate callconv into translate-c-2 2020-01-02 18:53:21 +01:00
LemonBoy
563d9ebfe5 Implement the callconv() annotation 2020-01-02 18:53:16 +01:00
Andrew Kelley
cb56b26900
fix float ops with respect to vectors
also remove the redundant type parameter
2020-01-01 23:27:43 -05:00
Andrew Kelley
576320e6d5
Merge pull request #4025 from ziglang/Vexu-stage-2-cimport
Use self hosted translate-c for cImport
2020-01-01 22:46:46 -05:00
Andrew Kelley
5575e2a168
std.mem.compare: breaking API changes
* `std.mem.Compare` is now `std.math.Order` and the enum tags
   renamed to follow new style convention.
 * `std.mem.compare` is renamed to `std.mem.order`.
 * new function `std.math.order`
2020-01-01 18:08:40 -05:00
Andrew Kelley
0c8ec369f0
std.os.memfd_create: add error.SystemOutdated 2019-12-31 17:57:20 -05:00
Andrew Kelley
39ee3bc0ec
Merge branch 'stage-2-cimport' of https://github.com/Vexu/zig into Vexu-stage-2-cimport 2019-12-31 16:55:41 -05:00
Andrew Kelley
8186211404
improvements to memfd_create
* move test from std/io/test.zig to std/os/test.zig
 * do glibc version check, and make direct system call if
   glibc is too old
 * disable test when not linking libc, to avoid not working
   with outdated qemu version on the CI server. see #4019
2019-12-31 16:34:14 -05:00
Luna
a153a972ad
io.test: close memfd at end of test 2019-12-31 15:58:03 -05:00
Luna
13c9faaa2d
c.linux: add memfd_create 2019-12-31 15:58:03 -05:00
Luna
f0cbf63e1a
os: use system for memfd_create
- os: update flags type for memfd_create
2019-12-31 15:58:03 -05:00
Luna
997812e8fb
os: add memfd_create
currently only linux is supported
2019-12-31 15:58:03 -05:00
Andrew Kelley
25051832b3
std.fmt.format: add helpful compile error for non-tuple args 2019-12-31 13:13:13 -05:00
mogud
d972d1c942 generate header in separate folder 2019-12-31 02:25:57 -05:00
Andrew Kelley
99f6f8ead9
update setsockopt error set according to POSIX
In the code review I accidentally encouraged Luna to remove some
handling of errors that are possible according to POSIX, but I think how
Luna had it before was better, so I fixed it, and now the branch should
be good to merge.
2019-12-30 19:35:05 -05:00
Luna
22f6297157
std.os: update error set for setsockopt 2019-12-30 19:26:30 -05:00
Luna
0d852effe3
std.net: use mem.toBytes 2019-12-30 19:26:30 -05:00
Luna
50e6a27c29
std.net: fix setsockopt call 2019-12-30 19:26:30 -05:00
Luna
5efc0ea89e
std.os: make setsockopt receive a slice as option 2019-12-30 19:26:30 -05:00
Luna
ea8f496970
std.c: c_uint -> u32 for sockopt functions 2019-12-30 19:26:30 -05:00
Luna
3ccbf3cfc2
move parameters on sockopt functions to c_uint
this makes them consistent with the linux syscalls
2019-12-30 19:26:30 -05:00
Luna
d423bb3808
std.c: add setsockopt 2019-12-30 19:26:30 -05:00
Luna
0e67568bca
net: fix Options
- os: fix typos on setsockopt
2019-12-30 19:26:30 -05:00
Luna
4a4d2c0d80
os: add setsockopt
- net: use os.setsockopt()
2019-12-30 19:26:29 -05:00
Luna
631eb6783d
add StreamServer.Options.reuse_address
this uses a bad direct interface with std.os.linux, this should add
setsockopt to std.os.
2019-12-30 19:26:29 -05:00
Andrew Kelley
8f8a32d297
Merge pull request #4007 from daurnimator/json-cleanup
std.json: cleanups
2019-12-30 18:13:20 -05:00
lukechampine
ab093228f9
Fix segfault by not reassigning to function parameter 2019-12-30 13:53:09 -05:00
lukechampine
d1a570a4b8
chacha: Fix open docstring 2019-12-30 13:35:16 -05:00
lukechampine
d6ca2323cf
chacha: Use error set instead of bool 2019-12-30 13:35:13 -05:00
lukechampine
1953b60599
chacha20poly1305: Return false on short ciphertext 2019-12-30 13:35:05 -05:00
lukechampine
ae7bb4ecc0
chacha20poly1305: verify tag in constant time 2019-12-30 13:34:57 -05:00
lukechampine
fbe7d8c1cb
crypto: Add chacha20poly1305 2019-12-30 13:34:53 -05:00
daurnimator
42727c73f9
std: fix typo in comment 2019-12-31 03:06:33 +11:00
daurnimator
ef3a01a367
std: json.unescapeString doesn't need to take an allocator 2019-12-31 02:26:09 +11:00
daurnimator
04a2a4a7cb
std: track decoded string length in std.json tokenizer 2019-12-31 02:26:06 +11:00
daurnimator
0def92cff4
std: use enum literals in std.json 2019-12-30 23:47:33 +11:00
daurnimator
80d37a13c0
std: use a union(enum) for std.json.Token 2019-12-30 23:47:29 +11:00
daurnimator
51943ff432
std: meta.TagPayloadType takes the tag type of the union 2019-12-30 23:09:18 +11:00
daurnimator
17cc511ea4
std: fmt std/json.zig 2019-12-30 22:34:19 +11:00
Haze Booth
c70a673c6e array literal address of fix 2019-12-30 05:48:27 -05:00
Andrew Kelley
e0c7d12043
update std/json.zig to latest language changes
fixes regression from 54231e832b
2019-12-29 19:00:27 -05:00
Benoit Giannangeli
fb2f0cc497 ArrayList: ptrAt function returns pointer to item at given index 2019-12-29 18:46:59 -05:00
Andrew Kelley
54231e832b
Merge pull request #3648 from xackus/json-unescape
breaking: JSON unescape
2019-12-29 18:31:10 -05:00
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
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
LemonBoy
9d9b0720f5 Fix for the error codepath in ChildProcess 2019-12-16 10:57:29 +01:00
LemonBoy
c257f892fd Revert "Revert "Use eventfd in ChildProcess on Linux""
This reverts commit 2c7a2aefbf.
2019-12-16 10:56:53 +01:00
Shawn Landden
143603b39f
std: lessThan and greaterThan between signed and unsigned
It is a deviation from C, but I think we should consider making this the behavior
of the operators. See #2133
2019-12-16 01:41:26 -05:00
Andrew Kelley
2c7a2aefbf
Revert "Use eventfd in ChildProcess on Linux"
This reverts commit b169f7b0d5.

This caused `integer cast truncated bits` at
std/child_process.zig:801:12

Can be reproduced on my machine simply by running `make`.
2019-12-16 01:39:41 -05:00
LemonBoy
b169f7b0d5 Use eventfd in ChildProcess on Linux
Closes #819
2019-12-15 14:43:37 -05:00
LemonBoy
19ddbd9e9e Make sure the address is aligned for intToPtr ops
Closes #773
2019-12-15 14:41:05 -05:00
Vexu
e57e3602e7
translate-c-2 implement enums 2019-12-14 23:24:47 +02:00
Vexu
1a967db083
add default initializers to all ast.Node base values 2019-12-14 20:40:56 +02:00
Vexu
1f84586836
translate-c-2 avoid collisions with zig keywords 2019-12-14 17:00:10 +02:00
Vexu
4dae70e702
translate-c-2 container aliases 2019-12-14 13:40:33 +02:00
Vexu
e4ca1f441b
translate-c-2 record type 2019-12-14 02:00:01 +02:00
Andrew Kelley
fff3c1fff4
un-special-case startup code in the std lib
Previously, the compiler had special logic to determine whether to
include the startup code, which was in `std/special/start.zig`. Now,
the file is moved to `std/start.zig`, and there is no special logic
in the compiler. Instead, the standard library unconditionally imports
the `start.zig` file, which then has a `comptime` block that does the
logic of determining what, if any, start symbols to export. Instead of
`start.zig` being in its own special package, it is just another normal
file that is part of the standard library.

`std.builtin.TestFn` is now part of the standard library rather than
specially generated by the compiler.
2019-12-12 18:33:44 -05:00
Christine Dodrill
b37acc4d68
allow custom OS entrypoint
Also:

 * Expose `std.start.callMain`.
 * Other fixes added to fix issues found in development.
2019-12-12 16:00:23 -05:00
Andrew Kelley
d08dc21116
Merge pull request #3886 from kavika13/master
Add function params, parens handling, and some infix operators to self-hosted translate-c
2019-12-11 18:40:35 -05:00
Christine Dodrill
b375f6e027 lib/std/io: let the bring-your-own OS package handle stdio (#3887) 2019-12-11 18:37:52 -05:00
Merlyn Morgan-Graham
5e8186a8ce Fix access of undefined field when calling ast.Tree.dump 2019-12-10 23:52:40 -08:00
Andrew Kelley
7c1dbfab72
self-hosted: manually parse args 2019-12-11 02:08:33 -05:00
Andrew Kelley
c3d8b1ffeb
remove iterator API from std.ArrayList
This is not a meaningful abstraction. Use a for loop on the result
of `toSlice` or `toSliceConst`.

An iterator can be implemented on top of ArrayList by applications which
want additional functionality, such as removing elements while
iterating.

Closes #3037.
2019-12-10 15:08:10 -05:00
frmdstryr
f30af12bea Add hotpath for BufferedOutStream (#3858)
* Add hotpath for BufferedOutStream
2019-12-10 13:44:59 -05:00
Heppokoyuki
5ada11449a fix con_in difinition and add EFI_SIMPLE_TEXT_INPUT_PROTOCOL difinition 2019-12-10 13:25:28 -05:00
Andrew Kelley
fdc3132126 fix windows dynamic lib loading test 2019-12-10 13:21:37 -05:00
Andrew Kelley
3ef8460d06 fix load dynamic library API when linking libc 2019-12-10 12:56:05 -05:00
Andrew Kelley
80882bda59
load dynamic library test: update API usage code 2019-12-10 12:48:10 -05:00
Andrew Kelley
fd6b7b160d
improve dynamic library API 2019-12-10 12:28:28 -05:00
emekoi
29fd727b79
fixed windows dynamic library loading and added loading for darwin 2019-12-10 11:41:54 -05:00
Robin Voetter
8c096707b7
Additional replacements of @typeOf with @TypeOf 2019-12-10 11:09:41 -05:00
Robin Voetter
4b4fbe3887
Replace @typeOf with @TypeOf in all zig source
This change was mostly made with `zig fmt` and this also modified some whitespace. Note that in some files, `zig fmt` produced incorrect code, so the change was made manually.
2019-12-10 11:09:41 -05:00
Robin Voetter
d568db2386
Remove misplaced dot 2019-12-10 11:09:29 -05:00
Robin Voetter
23b901d45a
Add typeOf/TypeOf render test 2019-12-10 11:09:29 -05:00
Robin Voetter
20a3011def
Add typeOf/TypeOf substition in zig fmt 2019-12-10 11:09:29 -05:00
Andrew Kelley
cd4d638d10
Merge pull request #3830 from fengb/wasm-page-allocator
WasmPageAllocator
2019-12-10 10:58:50 -05:00
xackus
c27d06596b fix integers parsed as floats 2019-12-10 10:30:41 -05:00
dbandstra
3388c777fa print call in build.zig needs to use a tuple argument 2019-12-10 10:18:57 -05:00
Andrew Kelley
e6c01e49d8
remove no-longer-needed workaround for var args
See #557
2019-12-09 16:21:16 -05:00
Andrew Kelley
a3f6a58c77
remove var args from the language
closes #208
2019-12-09 15:27:27 -05:00
Andrew Kelley
f205d23e65
implement async function call with @call
this removes the last usage of var args in zig std lib
2019-12-09 15:27:26 -05:00
Andrew Kelley
5d82744f1c
ability to give comptime and non-comptime types to same parameter 2019-12-09 13:30:53 -05:00
Andrew Kelley
d571fad20e
update tests to new format API 2019-12-09 00:05:21 -05:00
Andrew Kelley
03396b3caa
update docs to new fmt API 2019-12-08 23:46:50 -05:00
Andrew Kelley
5f9467d78f
update formatted printing when linking libc 2019-12-08 23:39:30 -05:00
Andrew Kelley
7a4f704258
windows-specific fixes 2019-12-08 23:26:19 -05:00
Andrew Kelley
8b2622cdd5
std.fmt.format: tuple parameter instead of var args 2019-12-08 22:53:51 -05:00
Benjamin Feng
608d36ad8c Rewrite WasmPageAllocator tests to be less flaky on environment 2019-12-08 21:22:07 -06:00
Andrew Kelley
64d700bfa6
zig fmt: support comptime fields 2019-12-08 12:26:20 -05:00
Josh Wolfe
05fc4d34a9 documentation for mutable HashMap KV pointers 2019-12-07 13:22:23 -05:00
Benjamin Feng
e91522b875 Add back comptime check for wasm 2019-12-06 17:27:11 -06:00
data-man
80a72c225c Crypto benchmark fixes 2019-12-06 17:14:10 -05:00
data-man
008e42f483 getStdOut fixes 2019-12-06 16:41:02 -05:00
Benjamin Feng
5a004ed834 Actually use const conventional as the comment indicates 2019-12-06 15:16:07 -06:00
Andrew Kelley
525b1e8fb4
Merge pull request #3856 from ziglang/builtin-call
introduce `@call` and remove other builtin calls
2019-12-06 15:49:47 -05:00
Andrew Kelley
656cc33f8d
allow calling with a new stack to regress a bit
Calling with a new stack, with a runtime-known stack pointer (e.g.
not a global variable) is regressed with this branch. It is now a
compile-error, due to the Runtime Hint system not being smart enough
to mix a compile-time modifier field with a runtime stack field.
I'm OK with this regression because this feature is flawed (see #3268)
and may be deleted from the language.
2019-12-06 15:25:00 -05:00
Andrew Kelley
71b7f4b47f
remove @newStackCall from zig 2019-12-06 14:52:09 -05:00
Andrew Kelley
343987cd05
remove @inlineCall from zig 2019-12-06 14:12:01 -05:00
Benjamin Feng
eb495d934b Add WasmPageAllocator tests 2019-12-05 21:54:57 -06:00
Andrew Kelley
105ef560b3
Merge pull request #3853 from xackus/doc-fixes
Docs: assembly example printing garbage and minor html fixes
2019-12-05 20:43:10 -05:00
Benjamin Feng
f2b0dbea74 Resolve tests to work with or skip WasmPageAllocator 2019-12-05 19:31:49 -06:00
Benjamin Feng
694616adb5 Standardize around bigger slices 2019-12-05 18:43:51 -06:00
Benjamin Feng
7d1c4fe4dc Switch bitmask to enums 2019-12-05 18:01:49 -06:00
Andrew Kelley
ef83358eb6
remove @noInlineCall from zig 2019-12-05 17:37:29 -05:00
Andrew Kelley
1f602fe8c5
implement @call
closes #3732
2019-12-05 17:07:15 -05:00
xackus
71354498c9 docs: add html lang and minor fixes 2019-12-05 22:40:58 +01:00
Vexu
bfb15f1c9f fix casts 2019-12-05 15:47:06 -05:00
frmdstryr
1baaf9a503 Increase io.BufferedInStream readByte speed by ~75% 2019-12-05 10:16:50 -05:00
Vexu
d40ad92668
use enum literals in render.zig 2019-12-05 14:50:51 +02:00
Vexu
10cc8cad86
fix zig fmt of c pointers 2019-12-05 14:50:46 +02:00
Benjamin Feng
30da6d49f4 Fix freeing memory across bounds 2019-12-04 22:43:02 -06:00
Benjamin Feng
86ae75363e Strip out an unnecessary memset 2019-12-04 21:41:01 -06:00
Benjamin Feng
5784985bb8 Use raw PackedIo to shave ~150b 2019-12-04 21:22:36 -06:00
Benjamin Feng
a910a6c871 Rejuggle how offsets are calculated 2019-12-04 18:12:25 -06:00
Andrew Kelley
bef3769bb7
std.fmt.ParseUnsignedError is now public 2019-12-04 18:44:22 -05:00
Andrew Kelley
10e172b1d7
add other OS and fix regression in build-exe for freestanding 2019-12-04 14:42:40 -05:00
Andrew Kelley
44e896f613
Merge pull request #3844 from Snektron/sort-improvements
Small sort improvements
2019-12-04 14:25:00 -05:00
Vexu
137cb32f5e add docs for function parameters 2019-12-04 14:14:47 -05:00
Robin Voetter
841a37ab59 Add std.sort.argMax and std.sort.argMin 2019-12-04 18:20:55 +01:00
Robin Voetter
0159fa284a Make std.sort.min and std.sort.max return ?T 2019-12-04 18:10:20 +01:00
Robin Voetter
65f57e4499 Make std.sort.max accept const slices and add tests 2019-12-04 16:42:18 +01:00
Robin Voetter
6bb0ee0bc4 Add std.sort.isSorted 2019-12-04 16:41:32 +01:00
Benjamin Feng
a6f838aab2 Remove redundant alloc 2019-12-04 00:10:37 -06:00
Benjamin Feng
01e73bba8d Tighten recycled search 2019-12-04 00:08:09 -06:00
Benjamin Feng
baffaf7986 Extract setBits 2019-12-04 00:07:52 -06:00
Benjamin Feng
b33211ed51 Implement block-based skipping 2019-12-03 17:24:50 -06:00
Andrew Kelley
521744bb91
correct the calling convention of WinMainCRTStartup 2019-12-03 16:55:27 -05:00
Andrew Kelley
8db4d2332e
correct startup logic for exporting libc main 2019-12-03 13:10:26 -05:00
Andrew Kelley
a91f552393
WinMainCRTStartup implies defaulting to console subsystem 2019-12-03 12:52:28 -05:00
Andrew Kelley
6a046c1bcd
activate start code when pub main exists
and rename LinkType->LinkMode, OutType->OutputMode
2019-12-03 12:50:42 -05:00
Vexu
621c08e692
exported main must be pub 2019-12-03 12:50:42 -05:00
Vexu
a0ca30ce01
move more startup code to std lib 2019-12-03 12:50:18 -05:00
Benjamin Feng
45e0441278 Fix bugs 2019-12-02 22:04:09 -06:00
LemonBoy
26c8930b95 Accept comptime-known expression for asm 2019-12-02 19:53:06 -05:00
Andrew Kelley
b7be57766b
Merge pull request #3715 from daurnimator/towards-afd
Misc windows additions+fixes
2019-12-02 16:12:55 -05:00
Andrew Kelley
55202a021a
add missing license files 2019-12-02 16:02:03 -05:00
Andrew Kelley
6a36c549a8
add extra LICENSE file for clarification 2019-12-02 15:11:11 -05:00
Andrew Kelley
ad214c7aa0
bring your own OS layer in the std lib
closes #3784
2019-12-02 15:02:17 -05:00
Andrew Kelley
dcbd5ad155
remove upstream support for Zen hobby OS
The new plan to support hobby operating systems is #3784.

And what kind of name is "Zen" anyway? There's already a
[Zen programming language](http://zenlang.sourceforge.net/)
and that's just confusing.
2019-12-02 12:01:49 -05:00
Benjamin Feng
f32555aa08 Work around __heap_base for now 2019-12-02 09:59:20 -06:00
Benjamin Feng
ba38a6d122 Get stuff vaguely working 2019-12-02 09:59:20 -06:00
Benjamin Feng
eb1628b033 Initialize memory segments 2019-12-02 09:59:20 -06:00
Benjamin Feng
eff926b454 Brain dump new wasm allocator 2019-12-02 09:59:20 -06:00
Andrew Kelley
b6127b0fe9
add some null-termination annotations
closes #3797
2019-12-02 01:13:46 -05:00
Andrew Kelley
3644e85091 fix regressions on windows 2019-12-01 21:31:00 -05:00
Andrew Kelley
4af5c38674
fixes for self-hosted compiler 2019-12-01 19:22:03 -05:00
Andrew Kelley
b36c07a95a
Merge remote-tracking branch 'origin/master' into remove-array-type-coercion 2019-12-01 09:56:01 -05:00
Andrew Kelley
951dc451d6
Merge pull request #3808 from LemonBoy/i386-for-ya
linux-i386 support
2019-11-30 22:00:00 -05:00
Andrew Kelley
2e7350140d
further clarify std.fs function docs 2019-11-30 18:36:47 -05:00
Andrew Kelley
034ccb4e4e add missing error code handling on Windows 2019-11-30 16:58:32 -05:00
Andrew Kelley
413f9a5cfc
move std.fs.Dir.cwd to std.fs.cwd
update to non-deprecated std.fs APIs throughout the codebase

Related: #3811
2019-11-30 15:35:27 -05:00
Andrew Kelley
d039fed831
introduce std.fs.Dir.openFile and std.fs.Dir.createFile
These functions have flags parameters which cover all the use cases. The
other functions are now deprecated.
2019-11-30 13:32:11 -05:00
LemonBoy
e1e06e6766 linux-i386 support 2019-11-30 16:13:33 +01:00
Andrew Kelley
b220be7a33
more test regression fixes 2019-11-29 23:04:19 -05:00
Andrew Kelley
d87b13f2f7
fix windows std lib regressions 2019-11-29 21:55:27 -05:00
Andrew Kelley
2ab7f31e99
std.math: remove constants that should be expressions
All four of these can be represented in fewer characters with
expressions, which will be guaranteed to happen at compile-time, and
have the same or better precision.

The other math constants here which depend on function calls could be
similarly removed if and when #425 is solved. However I left them for
now since Zig does not eagerly evaluate functions with comptime parameters.
2019-11-29 10:48:46 -05:00
Quetzal Bradley
a6c9c5f767 implement correct buffer wrapping logic in std.event.Channel 2019-11-27 23:09:24 -05:00
Michael Dusan
ca61a5f0b7 Windows: fix test/standalone/shared_library
- on Windows use first found env var { "Path", "PATH" }

Bug Description: `build test` results in the following error on in
a msys64 shell with "PATH" env var instead of "Path":

    error while loading shared libraries: mathtest.dll:
    cannot open shared object file: No such file or directory
2019-11-27 19:24:06 -05:00
Felix Queißner
f0d6447569 Implements std.testing.expectEqual for tagged unions. (#3773) 2019-11-27 16:35:32 -05:00
Andrew Kelley
0f2a9af4aa
Merge pull request #3769 from MCRusher/initcapacity-for-buffer-arraylist
Add initCapacity for buffer & arraylist
2019-11-27 13:40:39 -05:00
Andrew Kelley
83c664eaa0
Merge pull request #3780 from Vexu/stage2-async-review
Update use of async functions in self hosted compiler
2019-11-27 13:38:49 -05:00
Andrew Kelley
bf3ac66150
remove type coercion from array values to references
* Implements #3768. This is a sweeping breaking change that requires
   many (trivial) edits to Zig source code. Array values no longer
   coerced to slices; however one may use `&` to obtain a reference to
   an array value, which may then be coerced to a slice.

 * Adds `IrInstruction::dump`, for debugging purposes. It's useful to
   call to inspect the instruction when debugging Zig IR.

 * Fixes bugs with result location semantics. See the new behavior test
   cases, and compile error test cases.

 * Fixes bugs with `@typeInfo` not properly resolving const values.

 * Behavior tests are passing but std lib tests are not yet. There
   is more work to do before merging this branch.
2019-11-27 03:37:50 -05:00
Vexu
4d8a8e65df
add more workarounds 2019-11-27 10:17:37 +02:00
daurnimator
8a71f77c4a
std: lie about windows socklen_t signed-ness 2019-11-27 13:01:34 +11:00
daurnimator
edc84e7ef7
std: add more winsock functions 2019-11-27 13:01:33 +11:00
daurnimator
19f26578c0
std: windows sockaddr constants come from ws2_32 2019-11-27 13:01:32 +11:00
daurnimator
8aa3d6019c
std: add windows.USHORT definition 2019-11-27 13:01:30 +11:00
daurnimator
254c79125b
std: fix WSAIoctl definition
zig automatically passes functions as pointers
2019-11-27 13:01:28 +11:00
daurnimator
d99f0a2b8f
std: IO_STATUS_BLOCK's status member is an NTSTATUS; add union 2019-11-27 13:01:10 +11:00
daurnimator
1537d4701e
std: fix definition of NtDeviceIoControlFile 2019-11-27 13:01:09 +11:00
daurnimator
a453c99ba9
std: add comments for some nt status codes 2019-11-27 13:01:08 +11:00
daurnimator
2c6788d7de
std: add windows.closesocket 2019-11-27 13:01:07 +11:00
daurnimator
6b5b0e6cd6
std: fix windows.GetOverlappedResult 2019-11-27 13:01:05 +11:00
daurnimator
ce9966a39b
std: improved windows.DeviceIoControl 2019-11-27 13:01:04 +11:00
daurnimator
b05a5a3e52
std: add CreateEvent for windows 2019-11-27 13:01:03 +11:00
daurnimator
78c0d33eb7
std: add WaitForMultipleObjects for windows 2019-11-27 13:01:02 +11:00
daurnimator
21ca54f560
std: add alertable argument for windows.WaitForSingleObject 2019-11-27 13:00:59 +11:00
kprotty
ff445814cb
remove wait timeout test cases 2019-11-26 20:40:28 -05:00
kprotty
056b5a26c9
ResetEvent: get abstime based on std.time 2019-11-26 20:40:28 -05:00
kprotty
ca2d566ec8
replace ThreadParker with ResetEvent + WordLock mutex 2019-11-26 20:40:27 -05:00
kprotty
a0955990dc
fix ResetEvent windows bugs 2019-11-26 20:40:04 -05:00
kprotty
ef208fee3c
Definition fixups & ResetEvent test cases 2019-11-26 20:40:04 -05:00
kprotty
9bce97a479
Start on ResetEvent 2019-11-26 20:40:04 -05:00
syscall0
a6ef83cccf Fix build system crash when compiling windows dll 2019-11-26 15:40:31 -05:00
Andrew Kelley
7de138ad7c
std.elf: breaking improvements to the API
and also integration with std.Target.Arch
2019-11-26 14:25:35 -05:00
Benjamin Feng
aca1367533 Optimize binary search algorithm 2019-11-26 13:09:58 -05:00
Vexu
128034481a
solve recursion in self hosted 2019-11-26 18:25:29 +02:00
Jonathan S
ec569ff26a Or in O_DIRECTORY in openDirFlagsC to capture the fact that it is intended for opening directories 2019-11-25 23:46:48 -05:00
Jonathan S
8baf226d69 Add missing shortening of os.windows. 2019-11-25 23:46:48 -05:00
Jonathan S
4014a8e4b4 Avoid deprecated cwd-based functions for opening directories, preferring to open explicitly relative to Dir.cwd(). 2019-11-25 23:46:48 -05:00
Jonathan S
001334266a Don't pass FILE_LIST_DIRECTORY in openDirTraverseW. 2019-11-25 23:46:48 -05:00
Jonathan S
51c5740879 Use a specific access mask in Dir.openDirListW instead of a generic one. Untested.
The actual desired access mask in this case seems quite confusing and badly documented. The previous combination of `GENERIC_READ` and `SYNCHRONIZE` seems both illegal and redundant according to the [`ntifs.h` documentation](https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntcreatefile), which specifies that `GENERIC_READ` should not be used for directories and includes `SYNCHRONIZE`. `winnt.h` contains a number of relevant-sounding flags such as `FILE_ADD_FILE`, `FILE_ADD_SUBDIRECTORY`, and `FILE_DELETE_CHILD` that do not show up in documentation at all. These are equal in value to file-specific flags that are documented as flags you should not specify when opening a directory.
2019-11-25 23:46:47 -05:00
Jonathan S
07120c8745 Use O_PATH where available in std.fs.Dir.openPathTraverse. 2019-11-25 23:46:47 -05:00
Jonathan S
17bc1f62a5 Split std.fs.Dir.openDir into openDirList and openDirTraverse to clarify what directories can be iterated. Closes ziglang/zig#3741.
The Windows-inspired nomenclature of "List" and "Traverse" was chosen over POSIX-style "Read" and "Path" (from `O_PATH`) for clarity. Using "Path" makes it look like the function is manipulating strings, and the generic "Read" ending isn't useful when there is no generic read method. Even in implementation details, `read` is never used.

Actual exploitation of the difference between the two functions will come in a later commit.
2019-11-25 23:46:47 -05:00
daurnimator
c0cb676745 std: refactor std/debug.zig DwarfInfo operations to be methods 2019-11-25 22:49:46 -05:00
Andrew Kelley
f8a2dec243
docs: update references to wasm_allocator 2019-11-25 19:30:41 -05:00
Andrew Kelley
4261fa3c49
move logic to the appropriate layers; add new compile error 2019-11-25 18:46:17 -05:00