Andrew Kelley
69e60e351b
self-hosted: better IR for empty fn
...
avoids a void
2018-07-12 15:22:23 -04:00
Andrew Kelley
687bd92f9c
self-hosted: generate zig IR for simple function
...
no tests for this yet. I think the quickest path to testing will be
creating the .o files and linking with libc, executing, and then
comparing output.
2018-07-12 15:12:44 -04:00
Andrew Kelley
ce11d6d16c
ir: refactor lvalues
2018-07-11 21:37:47 -04:00
Andrew Kelley
30c4add85a
std.event.Future: workaround in tests for llvm coro memory
...
See #1194
2018-07-11 20:17:47 -04:00
Andrew Kelley
9751a0ae04
std.atomic: use spinlocks
...
the lock-free data structures all had ABA problems and
std.atomic.Stack had a possibility to load an unmapped memory address.
2018-07-11 19:38:01 -04:00
Andrew Kelley
9bdcd2a495
add std.event.Future
...
This is like a promise, but it's for multiple getters, and
uses an event loop.
2018-07-11 16:00:06 -04:00
Andrew Kelley
5954c94d20
build system: add -Dskip-release option to test faster
2018-07-11 14:09:05 -04:00
Andrew Kelley
3f30897fdc
add compile error for disallowed types in extern structs
...
closes #1218
2018-07-11 14:08:56 -04:00
Andrew Kelley
3aaf814b9d
Merge pull request #1216 from ziglang/sort-improvements
...
Add generic comparator generator functions for sorting
2018-07-11 11:56:14 -04:00
Marc Tiehuis
9b054e73f6
Add generic comparator generator functions for sorting
...
- Copy-by-value instead of pointer where appropriate
- Clean up old zig fmt issues
2018-07-11 18:44:30 +12:00
Andrew Kelley
c6c49389eb
self-hosted: add compile error test for missing fn name
2018-07-11 01:26:46 -04:00
Andrew Kelley
c620a1fe3d
Merge pull request #1215 from ziglang/self-hosted-first-test
...
self-hosted: first passing test
2018-07-11 00:50:17 -04:00
Andrew Kelley
8197a14ceb
self-hosted test: use C allocator since we depend on libc
2018-07-10 20:27:15 -04:00
Andrew Kelley
574e31f0a0
self-hosted: first passing test
...
* introduce std.atomic.Int
* add src-self-hosted/test.zig which is tested by the main test suite
- it fully utilizes the multithreaded async/await event loop so the
tests should Go Fast
* `stage2/bin/zig build-obj test.zig` is able to spit out an error if 2 exported
functions collide
* ability for `zig test` to accept `--object` and `--assembly`
arguments
* std.build: TestStep supports addLibPath and addObjectFile
2018-07-10 20:18:43 -04:00
Andrew Kelley
8fba0a6ae8
introduce std.event.Group for making parallel async calls
2018-07-10 15:17:01 -04:00
Andrew Kelley
0ce6934e26
allow var args calls to async functions
2018-07-10 11:44:47 -04:00
Andrew Kelley
696ef0bc03
langref: docs for union safety
2018-07-10 10:37:58 -04:00
Andrew Kelley
28f9230b40
fix crash when calling comptime-known undefined function ptr
...
closes #880
closes #1212
2018-07-10 10:12:08 -04:00
Andrew Kelley
b5cfbfd84e
fix regression from b6eb4048
2018-07-09 23:41:28 -04:00
Andrew Kelley
1b82a9defc
enable basic event loop test
2018-07-09 22:41:16 -04:00
Andrew Kelley
b6eb404831
organize std.event into directories
2018-07-09 22:22:44 -04:00
Andrew Kelley
ccef60a640
Merge pull request #1198 from ziglang/m-n-threading
...
M:N threading
2018-07-09 22:06:47 -04:00
Andrew Kelley
10cc49db1c
define c macros before importing llvm h files
...
Seems to matter on Ubuntu 16.04.
closes #1196
2018-07-09 22:05:22 -04:00
Andrew Kelley
c89aac85c4
better workaround for guaranteeing memory in coroutine frame
...
See #1194
2018-07-09 21:21:59 -04:00
wilsonk
a2834d48b9
Update throughput_test.zig. ( #1211 )
2018-07-09 17:21:20 -04:00
Andrew Kelley
1a1534ecb5
fix regression on macos
2018-07-09 17:16:06 -04:00
Andrew Kelley
3f4d0ecd7e
Merge remote-tracking branch 'origin/master' into m-n-threading
2018-07-09 17:14:42 -04:00
Andrew Kelley
0ac1b83885
fix non-portable format specifier
2018-07-09 17:13:31 -04:00
Andrew Kelley
9462852433
std.event.Loop multithreading for windows using IOCP
2018-07-09 16:49:46 -04:00
Andrew Kelley
caa0085057
implement std.os.cpuCount for windows
2018-07-09 13:19:11 -04:00
Andrew Kelley
05f1ea33d2
ZIG_DEBUG_COLOR=1 overrides tty detection for runtime stack traces
2018-07-09 12:12:37 -04:00
Andrew Kelley
2ee67b7642
langref: docs for invalid error set cast and incorrect pointer alignment
...
also add detection of incorrect pointer alignment at compile-time
of pointers that were constructed with `@intToPtr`.
2018-07-09 11:13:29 -04:00
Andrew Kelley
9eb51e20ed
fix crash on @ptrToInt of a *void
...
closes #1192
2018-07-09 10:44:06 -04:00
Andrew Kelley
42ba06133a
std.Hashmap - don't use catch unreachable in tests
2018-07-09 10:44:06 -04:00
Andrew Kelley
a0c564d762
zig fmt
2018-07-09 01:23:47 -04:00
Andrew Kelley
3ba451778f
fix regressions on linux
2018-07-09 01:22:36 -04:00
Marc Tiehuis
82e9190d09
Update zig.parser benchmark program
2018-07-09 17:14:04 +12:00
Andrew Kelley
04d3da4bd1
std.os.cpuCount implementation for macos
2018-07-09 01:08:33 -04:00
Andrew Kelley
50d70d5f49
tests passing with kqueue on macos
2018-07-08 02:46:10 -04:00
Josh Wolfe
410b4d9bdf
builder.addBuildOption
2018-07-08 00:00:05 -04:00
Andrew Kelley
ced3aae3b2
cleaner output from zig build when there are compile errors
2018-07-07 20:31:50 -04:00
Andrew Kelley
c15a6fa9d0
add std.os.cpuCount and have std.event.Loop use it for thread pool size
2018-07-07 01:23:18 -04:00
Andrew Kelley
57f36c4201
std.event.Loop: use EPOLLONESHOT to save 1 syscall
...
when a thread pool worker accepts a coroutine to resume
2018-07-07 00:32:19 -04:00
Andrew Kelley
eb326e1553
M:N threading
...
* add std.atomic.QueueMpsc.isEmpty
* make std.debug.global_allocator thread-safe
* std.event.Loop: now you have to choose between
- initSingleThreaded
- initMultiThreaded
* std.event.Loop multiplexes coroutines onto kernel threads
* Remove std.event.Loop.stop. Instead the event loop run() function
returns once there are no pending coroutines.
* fix crash in ir.cpp for calling methods under some conditions
* small progress self-hosted compiler, analyzing top level declarations
* Introduce std.event.Lock for synchronizing coroutines
* introduce std.event.Locked(T) for data that only 1 coroutine should
modify at once.
* make the self hosted compiler use multi threaded event loop
* make std.heap.DirectAllocator thread-safe
See #174
TODO:
* call sched_getaffinity instead of hard coding thread pool size 4
* support for Windows and MacOS
* #1194
* #1197
2018-07-07 00:32:19 -04:00
Andrew Kelley
d8295c1889
add @popCount intrinsic
2018-07-07 00:25:32 -04:00
Andrew Kelley
e19f0b5d9c
remove outdated semantic analysis documentation
2018-07-06 18:24:09 -04:00
Andrew Kelley
4ad4cd2654
fix iterating over a void slice
...
closes #1203
2018-07-06 17:27:44 -04:00
Andrew Kelley
1cf7511dc9
add compile error notes for where struct definitions are
...
closes #1202
2018-07-06 16:20:46 -04:00
Andrew Kelley
6d793c0ea3
langref: add more internal links
2018-07-06 16:20:31 -04:00
Andrew Kelley
0e9fef78dd
Merge branch 'isaachier-switch-enum-fix'
2018-07-06 12:07:57 -04:00