Andrew Kelley
d1e68c3ca8
better bigint/bigfloat implementation
2017-07-08 17:59:10 -04:00
Andrew Kelley
6a93dda3e1
progress toward windows hello world working
2017-06-14 00:04:34 -04:00
Andrew Kelley
e5b90651ba
compileError builtin includes "referenced by" notes
...
to help track down the cause
closes #278
2017-06-03 15:09:40 -04:00
Andrew Kelley
2dfb1ebee2
const global values can reference each other
...
Before, if you did something like:
```
const hi1 = "hi";
const hi2 = hi1;
```
This would create the "hi" data twice in the built object.
But since the value is const we don't have to duplicate the
data, now we take advantage of this fact.
closes #336
2017-05-27 00:54:14 -04:00
Andrew Kelley
d6b01931ef
implicitly cast by value var args parameters to const references
...
See #336
2017-05-26 16:44:13 -04:00
Andrew Kelley
fcdd808c5c
fix segfault with array of variadic functions
...
closes #377
2017-05-25 13:48:10 -04:00
Andrew Kelley
9f3cca8615
add error for break/continue exiting defer expression
...
See #284
2017-05-21 10:44:55 -04:00
Andrew Kelley
b483db4868
typeId builtin instead of isInteger, isFloat, etc
...
closes #373
2017-05-17 12:26:35 -04:00
Andrew Kelley
01f066de37
ability to slice ptr to hard coded integer at comptime
...
closes #369
2017-05-09 22:23:38 -04:00
Andrew Kelley
818a0a2629
switch expression - add compile errors
...
* for duplicate integer value
* for missing integer values
* for missing else prong
see #43
2017-05-07 12:07:35 -04:00
Andrew Kelley
17b935325e
@import("builtin")
instead of @compileVar
...
See #226
Closes #220
2017-05-01 13:12:38 -04:00
Andrew Kelley
7e11ef79d6
zig test no longer requires a separate test_runner.o file
...
See #298
2017-04-27 16:19:20 -04:00
Andrew Kelley
7b0542d08b
build system: consolidate duplicate code and more
...
* add ability to add assembly files when building an exe, obj, or lib
* add implicit cast from `[N]T` to `?[]const T` (closes #343 )
* remove link_exe and link_lib in favor of allowing build_exe and
build_lib support no root zig source file
2017-04-26 19:17:05 -04:00
Andrew Kelley
6de33ded81
make undefined as a constant value lazy
...
closes #268
2017-04-23 14:34:40 -04:00
Andrew Kelley
f2140efc52
Merge remote-tracking branch 'origin/parser'
2017-04-13 03:09:09 -04:00
Andrew Kelley
bf57d8a7e3
typedefpocalypse
...
closes #314
2017-04-13 03:07:58 -04:00
Josh Wolfe
919910312d
make it an error to ignore a statement's value
...
this makes {1;} an error.
2017-04-12 22:21:35 -07:00
Andrew Kelley
11a6550324
fix some -Wconversion errors
2017-04-10 20:02:39 -04:00
Andrew Kelley
095591f0b0
add enumTagName builtin function
...
closes #299
2017-04-08 17:45:22 -04:00
Andrew Kelley
a32b5929cc
add stack protector safety when linking libc
...
* introduce zigrt file. it contains only weak symbols so that
multiple instances can be merged. it contains __zig_panic
so that multiple .o files can call the same panic function.
* remove `@setFnVisible` builtin and add @setGlobalLinkage builtin
which is more powerful
* add `@panic` builtin function.
* fix collision of symbols with extern prototypes and internal
function names
* add stack protector safety when linking against libc. To add
the safety mechanism without libc requires implementing
Thread Local Storage. See #276
2017-03-26 21:07:07 -04:00
Andrew Kelley
e1c47d6fe8
fix test regression regarding shadowing names
...
closes #271
2017-03-20 15:32:13 -04:00
Andrew Kelley
25761570f1
more robust const struct values
2017-02-26 23:50:04 -05:00
Andrew Kelley
3075d8aee7
fix use decls not always working
2017-02-23 16:52:13 -05:00
Andrew Kelley
d794549985
bitfields support for array of non-store-aligned packed structs
2017-02-22 00:49:10 -05:00
Andrew Kelley
0148f39df9
pointers with bit offset contain length
...
adds compile error when passing pointer that is byte-aligned
at the beginning but not the end to a function expecting
a fully byte aligned pointer
closes #261
2017-02-16 19:35:42 -05:00
Andrew Kelley
fc5d47b9b9
reading from a bit field partially works
...
See #261
Still need to do:
* reading a field that has bit offset 0 but still needs to
shift and truncate
* writing a field
2017-02-16 15:45:41 -05:00
Andrew Kelley
4b5cc80f66
move volatile pointers to central type table
2017-02-16 13:58:42 -05:00
Andrew Kelley
1fc2082b4c
ability to declare const bitfields
...
See #261
2017-02-15 18:55:29 -05:00
Andrew Kelley
63d37b7cff
add runtime debug safety for dividing integer min value by -1
...
closes #260
2017-02-14 01:08:30 -05:00
Andrew Kelley
39287d7346
rework compile-time known pointer values
...
See #257
2017-02-11 13:13:45 -05:00
Andrew Kelley
916a96fb72
variables, memcpy, and memset all get alignment
...
See #37
2017-02-07 01:50:10 -05:00
Andrew Kelley
419e75eb23
remove volatileStore builtin; add volatile pointers
...
closes #238
2017-02-04 21:49:27 -05:00
Andrew Kelley
71d335e5cc
implement packed structs
...
closes #183
2017-02-03 11:39:24 -05:00
Andrew Kelley
2b88441295
fix behavior when initializing struct with undefined
2017-02-02 14:55:01 -05:00
Andrew Kelley
d13cec6894
fix var args allocating wrong amount of memory in compiler
2017-01-31 16:04:26 -05:00
Andrew Kelley
d2b94afaf2
fix compile time initialization of array with undefined
2017-01-29 23:35:34 -05:00
Andrew Kelley
17cb85dfb8
basic support for functions with variable length arguments
...
See #77
2017-01-23 16:40:17 -05:00
Andrew Kelley
201a3c121a
introduce comptime expression
...
closes #221
2017-01-22 22:59:52 -05:00
Andrew Kelley
0c1800a9c9
fix some stuff when llvm has assertions on
2017-01-13 17:33:19 -05:00
Andrew Kelley
d784705353
IR: implement macro for function aliasing function pointer
2017-01-12 03:15:06 -05:00
Andrew Kelley
430e33b869
partially fix parseh command
2017-01-10 15:39:52 -05:00
Andrew Kelley
349cd79fe4
containers created during eval get names for parameters
2017-01-05 03:22:00 -05:00
Andrew Kelley
a9acc8cb45
IR: error for returning from defer expression
...
also fix peer type resolution for pure error mixed with error union
2016-12-28 03:47:02 -05:00
Andrew Kelley
25a5fc32fe
IR: pass passSliceOfEmptyStructToFn test
2016-12-28 01:15:09 -05:00
Andrew Kelley
f47dea2a2e
IR: support compile time global pointer reinterpret
...
this required moving the place we store types to ConstExprValue
2016-12-25 04:15:23 -05:00
Andrew Kelley
1f6dacbb2f
IR: enum init support
2016-12-20 01:50:32 -05:00
Andrew Kelley
09c34352f8
IR: if and switch guaranteed compile time if target expr is
2016-12-19 00:04:51 -05:00
Andrew Kelley
82101198f1
workaround for Arch being a primitive type
2016-12-18 20:09:34 -05:00
Andrew Kelley
e50ced44a2
IR: all structs anonymous
2016-12-18 16:56:50 -05:00
Andrew Kelley
85b6d14637
IR: support var type args and fix phi peer type resolution
2016-12-18 00:09:43 -05:00