Commit Graph

3233 Commits (b7be082bd9aaba4cbf7c7c7449e481f9caa1dc24)

Author SHA1 Message Date
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
Andrew Kelley 1a5bd88881 alternate implementation of previous commit
This strategy adds another field to the SwitchBr instruction,
which is the result of the CheckSwitchProngs instruction. The
type of the result is void, and is unused, except that the SwitchBr
instruction will not perform analysis if the CheckSwitchProngs
instruction did not pass analysis. This allows the CheckSwitchProngs
instruction to do implicit casting for its type checking, while
preventing duplicate compile error messages.
2018-07-06 12:03:07 -04:00
Isaac Hier 9cff23dbf9 Fix assertion crash on enum switch values 2018-07-04 13:27:10 -04:00
Isaac Hier 9395162a7c Debug enum issue 2018-07-04 12:47:35 -04:00
Andrew Kelley 8c39cdc89f fix await on early return when return type is struct
previously, await on an early return would try to access the
destroyed coroutine frame; now it copies the result into a
temporary variable before destroying the coroutine frame
2018-07-04 11:51:02 -04:00
Marc Tiehuis 1d18688628 Do not normalize langref.html.in line endings
See #1191.
2018-07-04 23:47:15 +12:00
Jimmi HC 28821b5f31 Fixed last commit compiler error 2018-07-04 11:35:29 +02:00
Jimmi HC 4f32b86142 Allow allocation of any 0 sized type (not just void) 2018-07-04 11:29:02 +02:00
Andrew Kelley 291afcf75a fix runtime libc detection depending on locale
closes #1165
2018-07-03 14:20:26 -04:00
Andrew Kelley 27fc49f72c langref: improve docs for while and undefined
closes #1190
2018-07-03 14:03:27 -04:00