14678 Commits

Author SHA1 Message Date
Andrew Kelley
22b20f20b6 AstGen: fix missing compile error for unreachable @TypeOf argument 2021-07-02 13:26:50 -07:00
Andrew Kelley
7f5560689a AstGen: introduce 'reachableExpr' function
This function can be swapped out for calls to expr() to report a compile
error when the expression results in control flow that does not return.
2021-07-02 13:26:50 -07:00
Andrew Kelley
cffa22a658 AstGen: implement compile error for useless locals
When a local variable has an initialization expression of type
'noreturn', emit a compile error. This brings this branch closer
to parity with master branch.
2021-07-02 13:26:50 -07:00
Andrew Kelley
527c55aa56 stage1: get rid of the is_noreturn flag on IrInstSrc
One more step towards lowering the memory footprint of stage1. This flag
was hiding in padding but now that it is gone we can re-arrange the
memory layout more easily.
2021-07-02 13:26:50 -07:00
Andrew Kelley
125b85d737 move "unreachable code" error from stage1 to stage2
* AstGen: implement "unreachable code" error for blocks. This works at
   the statement level.
 * stage1: remove the "unreachable code" error implementation, which
   means removing the `is_gen` field from IrInstSrc. This is one small
   step towards a smaller memory footprint for stage1. The benefits
   won't be realized until a future commit because this flag took
   advantage of padding.

There may be a regression here with "union has no associated enum"
error, and there is a regression with the following code:

```zig
const a = noreturn;
```

A future commit will address these regressions.
2021-07-02 13:26:50 -07:00
J.C. Moyer
d84b386f60 stage2: print valid filename in error messages 2021-07-02 14:08:52 -04:00
kprotty
483eb8e057 std.Thread: move linux detach code to inline asm 2021-07-01 17:34:23 -05:00
Veikka Tuominen
7140bb64e1 stage2: fix @asyncCall parameter count
Closes #9269
2021-07-01 22:39:26 +03:00
LemonBoy
1fc877fd94 std: Catch and handle overflow in json parser
When a floating-point value with no fractional part is shoved into an
integer type we must check whether it fits or not before calling
`@floatToInt` as the builtin panics in case of overflow.

Catch the error and bubble it up to the caller.
2021-07-01 22:35:19 +03:00
Christopher Smyth
628f490c59
Add context to fatal OpenErrors
Now it also outputs what directory it attempted to open.
2021-07-01 22:24:18 +03:00
kprotty
98106b09d5 zig fmt 2021-06-30 21:49:38 -05:00
kprotty
2309c81a78 std.Thread: non-zero child_tid to avoid racy join() 2021-06-30 21:49:00 -05:00
kprotty
2a6ba41020 std.Thread: add CLONE_CHILD_SETTID to fix join() 2021-06-30 21:49:00 -05:00
kprotty
6dd6604638 std.Thread: fix tls 9386 linux typo 2021-06-30 21:49:00 -05:00
kprotty
f0fa129e9b std.Thread: more cleanup & testing 2021-06-30 21:49:00 -05:00
kprotty
7b323f84ca std.Thread: more fixes 2021-06-30 21:49:00 -05:00
kprotty
c6fb968a3d std.Thread: fix posix 2021-06-30 21:49:00 -05:00
kprotty
fd4a607bb2 std.Thread: fix futex test + thread errors 2021-06-30 21:49:00 -05:00
kprotty
18bcb2e990 std.Thread: fix futex thread spawning 2021-06-30 21:49:00 -05:00
kprotty
6a903fc4c0 std.Thread: more typo fixes 2021-06-30 21:49:00 -05:00
kprotty
009c95b8ec std.Thread: more fixes 2021-06-30 21:49:00 -05:00
kprotty
5f4a40e6aa std.Thread: typo fixes 2 2021-06-30 21:49:00 -05:00
kprotty
b1f37b4ead std.Thread: uh more typo fixes 2021-06-30 21:49:00 -05:00
kprotty
d016caaccb std.Thread: more compile error fixes 2021-06-30 21:49:00 -05:00
kprotty
281a9a60f0 std.Thread: fixup ThreadPool.zig 2021-06-30 21:49:00 -05:00
kprotty
1ae969e529 std.Thread: even more typo fixes 2021-06-30 21:49:00 -05:00
kprotty
ca1e61b851 std.Thread: fix some typos 2021-06-30 21:49:00 -05:00
kprotty
6ff64895cf std.Thread: add tests + getCurrentId() returns ints when possible 2021-06-30 21:49:00 -05:00
kprotty
235fcc5ba6 std.Thread: another typo fix 2021-06-30 21:48:59 -05:00
kprotty
3a276be135 std.Thread.getCpuCount(): fix usages 2021-06-30 21:48:59 -05:00
kprotty
0a1def7833 changes to accomodate std.Thread update 2021-06-30 21:48:59 -05:00
kprotty
e16d3d162a std.Thread: rewrite + extensions 2021-06-30 21:48:59 -05:00
Andrew Kelley
acf2e8fe64 fix start code for WebAssembly 2021-06-30 18:39:04 -07:00
Takeshi Yoneda
d606811f55 Fix test cases for stage2.
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2021-06-30 20:35:17 -04:00
Takeshi Yoneda
bc7761d8e0
Add support for WASI reactor in pure Zig-exe. (#9178)
* Add command line help for "-mexec-model"
* Define WasmExecModel enum in std.builtin.
* Drop the support for the old crt1.o in favor of crt1-command.o

Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2021-06-30 20:02:48 -04:00
Jakub Konka
a95ba0d10d
Merge pull request #9254 from moosichu/feature/macos-link-universal-static-libs
Add fat/universal archive support to zig ld
2021-06-30 10:22:49 +02:00
Nameless
908b431abe std/os/uefi: fix packed struct bitfields 2021-06-30 09:28:08 +03:00
Sreehari Sreedev
b8329351b1 boot_services: allow custom MemoryTypes 2021-06-30 09:26:09 +03:00
Jakub Konka
81bf05bf6c
Merge pull request #9266 from ziglang/zld-dylibs
zig ld can create dylibs now; remove system linker hack and any mention of ld64.lld from the codebase
2021-06-30 00:03:55 +02:00
Jakub Konka
0e15205521 Remove mention of lldMachO from the project
including:
* finding lldMachO in CMake config
* punting `ld64.lld` to LLD linker
* providing bindings to LLD linker
2021-06-29 23:38:19 +02:00
Andrew Kelley
37fbf5b0d3
Merge pull request #9258 from ziglang/shared-cache-locking
Shared Cache Locking
2021-06-29 17:29:59 -04:00
Andrew Kelley
e32530b6a3 std.fs.File: update doc comments regarding locking
Update to accomodate the differences in Windows, which is now advisory
file locking, and include details about which operating systems have
atomic locking flags.
2021-06-29 14:25:04 -07:00
Andrew Kelley
06129d7e3d std: implement a cross platform file locking abstraction
This modifies the lock semantics from using AccessMode to using
NtLockFile/NtUnlockFile.

This is a breaking change.
2021-06-29 14:25:04 -07:00
Andrew Kelley
488f68069b implement std.fs.File.setLock for Windows 2021-06-29 14:25:04 -07:00
Andrew Kelley
3d7ae63c6f stage2: remove c_object_cache_digest_set
This logic was a workaround to prevent cache deadlocks which happened
from always using exclusive file locks. Now that the Cache system
supports sharing cached artifacts, this workaround is no longer needed.

Closes #7596
2021-06-29 14:25:04 -07:00
Andrew Kelley
4e61af404e stage2: Cache system handles shared objects
Fixes #9139
Fixes #9187
2021-06-29 14:25:04 -07:00
Andrew Kelley
6ba6b98b72 std add fs.File.setLock
Windows implementation is still missing.
2021-06-29 14:25:04 -07:00
Tom Maenan Read Cutting
186577225f Add fat/universal archive support to zig ld
This is an extension of adding fat dylib support to zig ld, pulling out
the functionality needed to support fat headers & offsets and applying
it to zig archives.

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
2021-06-29 18:42:57 +01:00
Jakub Konka
8211cef77c zld: we can now create basic dylibs targeting macOS! 2021-06-29 17:46:23 +02:00
Jakub Konka
069fcf1c95 zld: put all global symbols in the export trie
* sort the symbols by name to optimise the export trie first
* insert only symbols with global linkage (private exts or weak should
  not make the cut)
2021-06-29 11:21:44 +02:00