Andrew Kelley
914ad1ec2e
fix peer result location with typed parent, ...
...
...runtime condition, comptime prongs.
closes #3244
2019-09-17 22:30:49 -04:00
Andrew Kelley
c6e77f248d
fix tripping llvm assert
...
```
Assertion `!isa<DIType>(Scope) && "shouldn't
make a namespace scope for a type"
```
We've had this problem and solved it before; see #579 .
2019-09-16 14:31:41 -04:00
Andrew Kelley
5e34fb3597
fix tripping llvm assert
...
```
Assertion `!isa<DIType>(Scope) && "shouldn't
make a namespace scope for a type"
```
We've had this problem and solved it before; see #579 .
2019-09-16 14:02:00 -04:00
Jay Weisskopf
cddd6b46d8
Fix typos: "seperate" to "separate"
...
Fixes #3236
2019-09-15 23:39:36 -04:00
Andrew Kelley
c4416b224d
Merge remote-tracking branch 'origin/master' into llvm9
2019-09-15 20:59:53 -04:00
Andrew Kelley
8223aca09b
no-stack-arg-probe only for UEFI
2019-09-13 14:46:22 -04:00
Andrew Kelley
2b698888ce
fix regression from incorrect conflict resolution in prev commit
...
thanks for catching this LemonBoy
2019-09-13 14:42:30 -04:00
Andrew Kelley
c15e464320
Merge branch 'uefi' of https://github.com/nrdmn/zig into nrdmn-uefi
2019-09-13 14:10:42 -04:00
LemonBoy
eb7d36ae0d
Make single-element enum default to u0
...
* Allow comptime_int as explicit enum tag type
Closes #2997
2019-09-13 15:13:10 -04:00
Andrew Kelley
cf4bccf765
improvements targeted at improving async functions
...
* Reuse bytes of async function frames when non-async functions
make `noasync` calls. This prevents explosive stack growth.
* Zig now passes a stack size argument to the linker when linking ELF
binaries. Linux ignores this value, but it is available as a program
header called GNU_STACK. I prototyped some code that memory maps
extra space to the stack using this program header, but there was
still a problem when accessing stack memory very far down. Stack
probing is needed or not working or something. I also prototyped
using `@newStackCall` to call main and that does work around the
issue but it also brings its own issues. That code is commented out
for now in std/special/start.zig. I'm on a plane with no Internet,
but I plan to consult with the musl community for advice when I get a
chance.
* Added `noasync` to a bunch of function calls in std.debug. It's very
messy but it's a workaround that makes stack traces functional with
evented I/O enabled. Eventually these will be cleaned up as the root
bugs are found and fixed. Programs built in blocking mode are
unaffected.
* Lowered the default stack size of std.io.InStream (for the async
version) to 1 MiB instead of 4. Until we figure out how to get
choosing a stack size working (see 2nd bullet point above), 4 MiB
tends to cause segfaults due to stack size running out, or usage of
stack memory too far apart, or something like that.
* Default thread stack size is bumped from 8 MiB to 16 to match the
size we give for the main thread. It's planned to eventually remove
this hard coded value and have Zig able to determine this value
during semantic analysis, with call graph analysis and function
pointer annotations and extern function annotations.
2019-09-12 01:40:58 -04:00
LemonBoy
f36b8fd7b2
Recognize & skip the UTF-8 BOM
2019-09-11 15:20:18 -04:00
Andrew Kelley
c9b2210fcf
async function calls re-use frame buffers
...
See #3069
2019-09-10 22:59:00 -04:00
Andrew Kelley
92a427437c
Merge remote-tracking branch 'origin/master' into llvm9
2019-09-10 16:53:11 -04:00
stratact
a165cc0535
Get more of the tests passing for FreeBSD ( #3197 )
...
* Add missing <stdint.h> include for uint8_t type declaration
* Add needed FreeBSD check to link to libpthread
* Apply patch to enable more tests in the FreeBSD CI
2019-09-10 14:50:54 -04:00
Michael Dusan
68d159ea9d
fix build on macOS + xcode + clang
2019-09-10 14:38:39 -04:00
LemonBoy
8b5cb8df99
Don't forget to resolve the pointee type
...
Fixes #3128
2019-09-10 19:07:04 +02:00
Andrew Kelley
185cb13278
Merge remote-tracking branch 'origin/master' into llvm9
2019-09-10 13:00:35 -04:00
LemonBoy
ba4d83af3e
Resolve lazy arguments passed to @compileLog
...
Closes #3193
2019-09-10 11:22:40 -04:00
LemonBoy
e2c68fce89
Accept void argument for @cDefine value
...
Closes #2612
2019-09-10 11:16:50 -04:00
Andrew Kelley
ff051f8f5d
-fstack-report outputs JSON
...
See #3069
2019-09-10 10:26:54 -04:00
Andrew Kelley
0489d06c24
make the std lib support event-based I/O
...
also add -fstack-report
2019-09-10 10:26:52 -04:00
LemonBoy
8fbae77770
Force LLVM to generate byte-aligned packed unions
...
Sometimes the frontend and LLVM would disagree on the ABI alignment of a
packed union. Solve the problem by telling LLVM we're gonna manage the
struct layout by ourselves.
Closes #3184
2019-09-10 10:07:32 -04:00
Sahnvour
a06f84fcc6
forbid opaque types in function return types
2019-09-10 10:11:49 -04:00
Andrew Kelley
852679c369
fix a var decl in scope preventing for loop spills
2019-09-09 16:44:23 -04:00
Andrew Kelley
a3993465fe
Merge pull request #3200 from LemonBoy/eq-tagged-union
...
Allow comparison between union tag and enum literal
2019-09-09 16:17:45 -04:00
Andrew Kelley
f50bfb94b5
fix bad LLVM IR when for target expr needs to be spilled
...
Also reduce the size of ZigVar in memory by making the name
a `const char *` rather than a `Buf`.
2019-09-09 15:59:16 -04:00
LemonBoy
4b1cd45472
Comptime folding of enum/union comparisons
2019-09-09 19:09:56 +02:00
LemonBoy
cc63760587
Allow comparison between union tag and enum literal
...
Closes #2810
2019-09-09 18:51:13 +02:00
Andrew Kelley
f7721ac37c
implement spilling when returning error union async function call
...
closes #3190
2019-09-09 12:15:39 -04:00
Andrew Kelley
2482bdf22b
release builds of stage1 have llvm ir verification
...
the stage2 zig code however gets compiled in release mode,
and stripped.
2019-09-09 09:33:33 -04:00
Andrew Kelley
5dde3cd3bd
move logic for propagating framework dirs to zig cc
2019-09-08 15:09:05 -04:00
Gustav Olsson
ec13fa3f4a
forward framework dirs to embedded clang in addition to linker on osx
2019-09-08 14:46:25 +02:00
Andrew Kelley
229323e13a
fix suspensions inside for loops generating invalid LLVM IR
...
closes #3076
2019-09-07 17:37:17 -04:00
Andrew Kelley
9a18db8a80
properly spill expressions with async function calls
2019-09-07 00:27:45 -04:00
Andrew Kelley
d1a98ccff4
implement spills when expressions used across suspend points
...
closes #3077
2019-09-07 00:13:12 -04:00
Andrew Kelley
9ca8d9e21a
fix await used in an expression generating bad LLVM
2019-09-07 00:13:12 -04:00
Andrew Kelley
7d303ae861
runtime safety for noasync function calls
...
See #3157
2019-09-06 13:08:44 -04:00
Andrew Kelley
0a3c6dbda9
implement noasync function calls
...
See #3157
2019-09-05 21:55:32 -04:00
Timon Kruiper
ca70ca7e26
Add compiler error when negating invalid type
2019-09-05 15:27:50 -04:00
Andrew Kelley
4a5bc89862
add -l as an alias for --library
2019-09-05 15:17:23 -04:00
Andrew Kelley
b564e7ca59
os: raise maximum file descriptor limit
...
Do a binary search for the maximum RLIMIT_NOFILE.
Patch lifted from node.js commit
6820054d2d42ff9274ea0755bea59cfc4f26f353
2019-09-05 15:09:13 -04:00
Andrew Kelley
2045b4d932
prefer result type casting to peer type resolution
...
See #2749
2019-09-05 14:56:52 -04:00
Andrew Kelley
8f0df86937
I'm pretty sure sp is the stack pointer on all ARM
2019-09-05 14:15:39 -04:00
Timon Kruiper
866c253e0e
Add compile error when shifting amount is not an int type
2019-09-05 13:10:39 -04:00
LemonBoy
8e3c56b912
Always resolve the struct field types
...
Packed structs used to skip the zero-sized types and trip some
assertions that expected the type reference not to be null.
Fixes #3143
2019-09-05 13:07:04 -04:00
LemonBoy
0107b19124
Resolve lazy values when checking for definedness
...
Fixes #3154
2019-09-05 13:09:43 -04:00
Jonathan Marler
9a358d2d33
Add Array support to @Type
2019-09-05 13:08:45 -04:00
Michael Dusan
fe153ad2a4
stage1 enhance IR print
...
- print fn name in pass1
- replace scalar with enum IrPass for clarity
2019-09-05 13:06:10 -04:00
LemonBoy
fabf45f5fc
Add the noinline keyword for function declarations
2019-09-05 13:04:58 -04:00
Timon Kruiper
e540e5b8ec
Implicit cast from enum literal to optional enum and implicit cast to payload of error union
2019-09-04 12:30:23 -04:00