Commit Graph

3484 Commits

Author SHA1 Message Date
Andrew Kelley
8d73703d52 fix safety for sentinel-slicing floats 2019-12-20 18:28:59 -05:00
Andrew Kelley
8918cb06fc sentinel slicing improvements
* add runtime safety for slicing pointers, arrays, and slices.
 * slicing without a sentinel value results in non-sentineled slice
 * improved `std.debug.panic` handling of panic-during-panic
2019-12-20 18:28:59 -05:00
Andrew Kelley
26f3c2d061 fix std.mem.addNullByte and implement sentinel slicing
see #3770
2019-12-20 18:28:56 -05:00
LemonBoy
51cbd96820 Fix sentinel value of opaque pointers in typeInfo
Fixes #3888
2019-12-20 15:48:34 -05:00
LemonBoy
f077c3c4cc Fix comptime evaluation of runtime array access
Fix #3951
2019-12-20 15:47:43 -05:00
LemonBoy
d8499f7abe Make sure the fields array is always non-null
Fixes #3497
2019-12-17 15:45:22 -05:00
Andrew Kelley
b242c2ac10 avoid using undefined value
closes #3933
2019-12-16 22:47:19 -05:00
Andrew Kelley
13cdc137e6 Merge pull request #3570 from ziglang/c-sanitize-undef
use -fsanitize=undefined for C code in safe build modes
2019-12-16 16:17:52 -05:00
LemonBoy
de0d8885b4 Fix alignment query on unresolved types
Fixes #3919
2019-12-16 15:54:06 -05:00
Andrew Kelley
839b3a61ad expose the ability to disable C sanitization
and disable C sanitization when building libcs.
Empirically, they seem to trigger undef-sanitization.
2019-12-16 13:51:21 -05:00
Andrew Kelley
f8cd981c04 use -fsanitize=undefined for C code in safe build modes
closes #3569
2019-12-16 13:06:02 -05:00
Andrew Kelley
9468d63819 allow comparison of any numeric types 2019-12-16 11:09:10 -05:00
Vexu
0f38410ea6 improve extern enum 2019-12-15 19:28:53 -05:00
LemonBoy
59de23dfa0 Don't assume TLS storage has a fixed address
Fixes #3433
2019-12-15 16:23:42 -05:00
LemonBoy
f1407b4b7e Generate the fn pointers into the correct address space
Fixes #3645
2019-12-15 14:42:53 -05:00
LemonBoy
19ddbd9e9e Make sure the address is aligned for intToPtr ops
Closes #773
2019-12-15 14:41:05 -05:00
Andrew Kelley
21a85d4fb6 Merge pull request #3896 from Vexu/translate-c-2
Translate-c self-hosted var decl and remove translate mode
2019-12-13 15:48:10 -05:00
Vexu
45abfa9e71 revert removal of translate mode in stage 1 2019-12-13 19:06:32 +02:00
Vexu
eb057ef41c translate-c-2 dont eval init expr 2019-12-13 15:07:10 +02:00
Andrew Kelley
fff3c1fff4 un-special-case startup code in the std lib
Previously, the compiler had special logic to determine whether to
include the startup code, which was in `std/special/start.zig`. Now,
the file is moved to `std/start.zig`, and there is no special logic
in the compiler. Instead, the standard library unconditionally imports
the `start.zig` file, which then has a `comptime` block that does the
logic of determining what, if any, start symbols to export. Instead of
`start.zig` being in its own special package, it is just another normal
file that is part of the standard library.

`std.builtin.TestFn` is now part of the standard library rather than
specially generated by the compiler.
2019-12-12 18:33:44 -05:00
Vexu
c759a77aa0 fix dot init parsing 2019-12-12 13:06:48 -05:00
Vexu
69dee57d95 remove concept of translate mode 2019-12-12 14:26:24 +02:00
Andrew Kelley
fd6b7b160d improve dynamic library API 2019-12-10 12:28:28 -05:00
Robin Voetter
f0ee0688f2 Replace typeOf with TypeOf in stage0 2019-12-10 11:09:30 -05:00
Andrew Kelley
a3f6a58c77 remove var args from the language
closes #208
2019-12-09 15:27:27 -05:00
Andrew Kelley
f205d23e65 implement async function call with @call
this removes the last usage of var args in zig std lib
2019-12-09 15:27:26 -05:00
Andrew Kelley
5d82744f1c ability to give comptime and non-comptime types to same parameter 2019-12-09 13:30:53 -05:00
Andrew Kelley
8b2622cdd5 std.fmt.format: tuple parameter instead of var args 2019-12-08 22:53:51 -05:00
Andrew Kelley
5874cb04bd implement tuple concatenation 2019-12-08 22:44:41 -05:00
Andrew Kelley
6504c5098e tuple detection does not require AST node 2019-12-08 18:39:52 -05:00
LemonBoy
d5e788072d Make array types (quasi-)lazy
Fixes #3843
2019-12-08 17:29:59 -05:00
Andrew Kelley
1cb19d1a46 fix anon struct literal field initialized with fn call 2019-12-08 17:28:34 -05:00
emekoi
c2342dab0b fixed BREAKPOINT macro on mingw 2019-12-08 17:18:44 -05:00
Andrew Kelley
fe8d65556d add syntax for comptime struct fields 2019-12-08 12:26:20 -05:00
Andrew Kelley
119ed128c0 implement comptime struct fields 2019-12-08 12:26:20 -05:00
LemonBoy
19c1b5a33a Fix for @Type not picking up the sentinel value
The code converted the whole TypeInfo payload into an optional type
instead of using the "sentinel" field value.

Fixes #3828
2019-12-08 10:28:29 -05:00
Andrew Kelley
edebe0586b remove compile error for peer result comptime_int and null
closes #2763
2019-12-07 13:03:43 -05:00
Andrew Kelley
525b1e8fb4 Merge pull request #3856 from ziglang/builtin-call
introduce `@call` and remove other builtin calls
2019-12-06 15:49:47 -05:00
Andrew Kelley
656cc33f8d allow calling with a new stack to regress a bit
Calling with a new stack, with a runtime-known stack pointer (e.g.
not a global variable) is regressed with this branch. It is now a
compile-error, due to the Runtime Hint system not being smart enough
to mix a compile-time modifier field with a runtime stack field.
I'm OK with this regression because this feature is flawed (see #3268)
and may be deleted from the language.
2019-12-06 15:25:00 -05:00
Andrew Kelley
71b7f4b47f remove @newStackCall from zig 2019-12-06 14:52:09 -05:00
Andrew Kelley
343987cd05 remove @inlineCall from zig 2019-12-06 14:12:01 -05:00
LemonBoy
f64cff3e16 Fix misinterpretation of sentinel constant value
Fixes #3842
2019-12-06 12:27:52 -05:00
Andrew Kelley
e41495de9d private linkage for unnamed internal constants 2019-12-05 23:13:42 -05:00
Andrew Kelley
ef83358eb6 remove @noInlineCall from zig 2019-12-05 17:37:29 -05:00
Andrew Kelley
1f602fe8c5 implement @call
closes #3732
2019-12-05 17:07:15 -05:00
Andrew Kelley
10e172b1d7 add other OS and fix regression in build-exe for freestanding 2019-12-04 14:42:40 -05:00
Andrew Kelley
e3ebaab3c7 fix zig builtin 2019-12-03 13:57:13 -05:00
Andrew Kelley
a91f552393 WinMainCRTStartup implies defaulting to console subsystem 2019-12-03 12:52:28 -05:00
Andrew Kelley
6a046c1bcd activate start code when pub main exists
and rename LinkType->LinkMode, OutType->OutputMode
2019-12-03 12:50:42 -05:00
Vexu
20bcdab462 correct caching and add test for missing fn name 2019-12-03 12:50:41 -05:00