Commit Graph

7201 Commits (dc28526c6cd9320fefeebe15a90dd9269cf2b2ca)

Author SHA1 Message Date
Andrew Kelley dc28526c6c
translate-c: improve support of integer casting
Widening and truncating integer casting to different signedness
works better now. For example `(unsigned long)-1` is now translated
to zig code that compiles correctly.
2020-01-01 18:10:43 -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 7b62d5dfd8
translate-c: propagate scope properly in nested assignment 2019-12-31 21:01:49 -05:00
Andrew Kelley 42945a269a
translate-c: better mangling strategy
Block-local identifiers have block-local mangling numbers, and more
consistent mangling is applied within blocks. Parameters, for example,
are treated the same as other block-local variables, and are not mangled
unless they conflict with another name in scope.
2019-12-31 20:39:33 -05:00
Andrew Kelley 5749f706ef
translate-c: non-wrapping operator for pointer arithmetic
According to C11 6.5.6.8, pointer arithmetic may not overflow. In fact,
it may not even go more than 1 past the end of an object, or UB occurs.

This is the same as Zig pointer arithmetic semantics, and so the
`+` and `+=` operators rather than `+%` and `+%=` are appropriate for
C-translated pointer arithmetic.
2019-12-31 17:33:55 -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 c8c65b0168
translate-c: add `pub` to failed-to-translate macros 2019-12-31 16:54:41 -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 86ba8c06bf
Merge branch 'lun-4-net-reuseaddr-opt'
Closes #3820
2019-12-30 19:36:43 -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 73e535e112
Merge pull request #3683 from Vexu/atomic-float
Support floats with some atomic operations
2019-12-30 19:19:05 -05:00
LemonBoy cbfd66f68a Don't crash when parsing invalid files 2019-12-30 19:17:19 -05:00
Andrew Kelley a05150e92d
fix comparing comptime_int against undefined literal
closes #4004
2019-12-30 19:08:57 -05:00
Andrew Kelley a3d04b9228
update readme tagline 2019-12-30 18:17:13 -05:00
Andrew Kelley 8f8a32d297
Merge pull request #4007 from daurnimator/json-cleanup
std.json: cleanups
2019-12-30 18:13:20 -05:00
LemonBoy 28a8ded95a Resolve more types as needed
Closes #3994
2019-12-30 17:45:09 -05:00
LemonBoy c1ee846c22 Fix ptrCast of zero-sized type
Closes #2431
2019-12-30 17:43:58 -05:00
Andrew Kelley 34b4538d7b
Merge pull request #4011 from lukechampine/chacha20poly1305
crypto: Implement ChaCha20-Poly1305 AEAD (fixed)
2019-12-30 17:39:46 -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 950eb81304
translate-c-2 macro comparision ops 2019-12-29 20:19:30 +02:00
Vexu ca211617bd
update c_tokenzier tests to new api 2019-12-29 20:04:19 +02:00