Commit Graph

6620 Commits

Author SHA1 Message Date
Andrew Kelley
2a6fbbd8fb
introduce @as builtin for type coercion
This commit also hooks up type coercion (previously called implicit
casting) into the result location mechanism, and additionally hooks up
variable declarations, maintaining the property that:

    var a: T = b;

is semantically equivalent to:

    var a = @as(T, b);

See #1757
2019-11-08 15:57:24 -05:00
Andrew Kelley
6d28b28ccc
Merge branch 'kprotty-adaptive_lock' 2019-11-08 02:09:51 -05:00
Andrew Kelley
2723ffc2b2
fixups and zig fmt 2019-11-08 01:52:23 -05:00
Andrew Kelley
fbbcf2f30d
Merge branch 'adaptive_lock' of https://github.com/kprotty/zig into kprotty-adaptive_lock 2019-11-08 01:21:22 -05:00
kprotty
e2189b6e5d cleanup getEventHandle 2019-11-07 19:37:53 -06:00
kprotty
43900011f7 handle NtCreateKeyedEvent failure by spinning to ensure correctness 2019-11-07 18:56:43 -06:00
Andrew Kelley
9b0536e6f4
ci: add srht oauth token to drone cloud script 2019-11-07 19:00:52 -05:00
kprotty
fe8c1cf804 missing os declaration 2019-11-07 17:14:08 -06:00
kprotty
bb4abfdc78 Use system instead of builtin.link_libc 2019-11-07 16:36:33 -06:00
kprotty
12e68cbeb6 pthread_sched_yield -> sched_yield 2019-11-07 16:33:25 -06:00
kprotty
f41e58d015 fix SpinLock.yield for pull/3626 2019-11-07 15:51:20 -06:00
kprotty
b5d84635f2 remove WaitOnAddress backend in std.ThreadParker 2019-11-07 15:46:57 -06:00
kprotty
b535e86cc0 move SpinLock definitions around 2019-11-07 15:32:20 -06:00
Andrew Kelley
e2a0bea65f ci: bump ubuntu from 16.04 to 18.04 2019-11-07 16:18:42 -05:00
Vexu
459a364a33 allow Group to optionally manage function frames' memory 2019-11-07 13:26:49 -05:00
Vexu
3858a526e3 make callMainAsync async 2019-11-07 13:18:47 -05:00
kprotty
92dac89d01 lock the mutex on pthread_cond_signal() 2019-11-07 09:23:02 -06:00
Shawn Landden
2e52fafac5 correctly use llvm undef in release modes 2019-11-07 02:51:04 -05:00
Andrew Kelley
697c4ffd41
Merge branch 'LemonBoy-fix-more-things'
closes #3621
2019-11-07 02:46:20 -05:00
LemonBoy
cf6fb89ced
Add small tokenizer test case for #3468 2019-11-07 02:46:10 -05:00
LemonBoy
528908a06e
Fix ptrCast of array references to fn
Closes #3607
2019-11-07 02:46:10 -05:00
Andrew Kelley
c7fd414dab
Merge pull request #3618 from nrdmn/uefi
UEFI improvements
2019-11-06 23:19:46 -05:00
Nick Erdmann
78b54d9c96
std/os/uefi: protocol handling improvements 2019-11-07 03:06:06 +01:00
Nick Erdmann
cef51eaffb
std/os/uefi: snp, mnp, ip6, and udp6 support 2019-11-07 02:53:53 +01:00
Nick Erdmann
f4767186dd
std/os/uefi: loading images 2019-11-07 02:53:53 +01:00
Andrew Kelley
6ee3cabe5c
allow type coercion from *[0]T to E![]const T
This is an unambiguous, safe cast.
2019-11-06 20:44:15 -05:00
kprotty
7045f1e875 skip std.ThreadParker test on single-threaded 2019-11-06 17:23:44 -06:00
shiimizu
7277670843 Add error when too few arguments are provided to std.fmt 2019-11-06 18:22:33 -05:00
Sebastian Keller
f81f36e2ff std.json.Value: added dumpStream(), utilize WriteStream for dump() 2019-11-06 18:21:52 -05:00
Vexu
ac6f0d245d fix NodeErrorSetDecl rendering 2019-11-06 18:15:39 -05:00
Vexu
4530adbd33 use global event loop in std.event types 2019-11-06 15:17:40 -05:00
Andrew Kelley
913f7d0450
improve the start code for evented I/O
When evented I/O is being used, prevent event loop from terminating
at least until main() has returned.
2019-11-06 15:08:29 -05:00
Brendan Hansknecht
c1e8fdf812 add token for parsing pointer dereference 2019-11-06 14:03:21 -05:00
Sebastian Keller
dd4e9fb16b Fixed a leak in the json parser.
parseString() created a copy of the string using the wrong allocator.
Instead of using the ArenaAllocator, it was using the allocator passed
into Parser.init(). This lead to a leak as the copied string was not
freed when the ArenaAllocator was deinited.
2019-11-06 14:00:36 -05:00
Vexu
6b61fcddfa fix translate-c arrow deref 2019-11-06 13:58:55 -05:00
kprotty
4dbfc48ab3 Disable asm("yield") for arm in SpinLock.yieldCpu() because of CI 2019-11-05 16:16:03 -06:00
kprotty
c9db420a09 Adaptive Mutex:
- uses std.ThreadParker
- supports static initialization (deprecates StaticallyInitializedMutex)
2019-11-05 16:14:43 -06:00
kprotty
465ebf494d ThreadParker implementation 2019-11-05 15:58:58 -06:00
kprotty
14209cf615 make SpinLock.Backoff pub 2019-11-05 13:43:17 -06:00
Andrew Kelley
9bc4f8ea77
zig build: addIncludeDir does -I instead of -isystem 2019-11-05 14:32:17 -05:00
Andrew Kelley
cb8af1c6d4
Merge branch 'vector-element-access'
This introduces the concept of vector index being part of a pointer
type. This avoids vectors having well-defined in-memory layout, and
allows vectors of any integer bit width to work the same way.

When a vector is indexed with a scalar, this is vector element access,
which this branch implements. When a vector is indexed with a vector,
this is gather/scatter, which is not implemented in this branch.

closes #3575
closes #3580
2019-11-05 13:40:57 -05:00
Andrew Kelley
9a08de93b6
fix incorrect type name on bit field pointers 2019-11-05 13:37:43 -05:00
Andrew Kelley
9b4a529164
fix initialization of vector in a struct field 2019-11-05 12:36:39 -05:00
Andrew Kelley
cbaa10fc3b
implement storing vector elements via runtime index 2019-11-05 12:11:57 -05:00
Andrew Kelley
70be308c43
implement loading vector elements via runtime index 2019-11-05 12:11:40 -05:00
Andrew Kelley
76d188551e
implement store of vector element with comptime index 2019-11-05 12:11:18 -05:00
Andrew Kelley
ece8d6c2fa
comptime load of vector element 2019-11-05 12:11:18 -05:00
Andrew Kelley
55e54d98c4
runtime load vector element with comptime index 2019-11-05 12:11:16 -05:00
Vexu
a26e9fa723 add special formatting for ipv4-mapped ipv6 addresses 2019-11-05 12:05:34 -05:00
LemonBoy
71e209521a Mark type fields as CT
Fixes #3276
2019-11-05 12:05:01 -05:00