Commit Graph

7206 Commits (5ba143e7e3418719cc3c4acba9c9bfeea9803e57)

Author SHA1 Message Date
Andrew Kelley 5ba143e7e3
avoid trying to translate microsoft's stdio.h inline functions
...for now. See #515
2020-01-01 20:33:07 -05:00
Andrew Kelley a3f741e9b8
translate-c: avoid producing duplicate macro errors
This input file, for example, would produce duplicate identifiers
in the translated Zig code:

```
  #define bar err(
  #define bar err(
```
2020-01-01 20:29:35 -05:00
Andrew Kelley 365a6124d9
translate-c: fix regression from previous commit
This made macros which had an error being processed emit multiple times,
causing the self-hosted compiler to fail to build.
2020-01-01 19:58:41 -05:00
Andrew Kelley ec09b9e5f0
translate-c: prevent name clashing of macros declared after locals 2020-01-01 19:23:46 -05:00
Andrew Kelley 9298b9a4aa
translate-c: prevent name clashing of globals declared after locals 2020-01-01 18:53:08 -05:00
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