Andrew Kelley
7749ffd797
try expression can omit variable assignments
2017-02-05 18:58:58 -05:00
Andrew Kelley
b9c943b066
tell LLVM the target sub arch type
2017-02-05 18:23:54 -05:00
Andrew Kelley
0c88b1ce73
use printf in test runner code
2017-02-05 16:09:33 -05:00
Andrew Kelley
135c021c83
delete unneeded IR code and fix assigning to const ptr
2017-02-05 16:06:06 -05:00
Andrew Kelley
025051885b
fix volatile not respected for loads
2017-02-05 16:00:12 -05:00
Andrew Kelley
d151c58788
all functions are nounwind because zig does not support exceptions
2017-02-05 13:14:42 -05:00
Andrew Kelley
52eec6b9a6
%=
in inline assembly survives optimization
2017-02-05 13:12:06 -05:00
Andrew Kelley
6f316d8ebd
setGlobalSection and setGlobalAlign work for functions
2017-02-05 12:50:19 -05:00
Andrew Kelley
d2f1f57fa4
even external functions which provide definitions get nounwind
2017-02-05 01:57:49 -05:00
Andrew Kelley
74d41ce44b
infer hard float from target environments that imply it
2017-02-05 00:16:49 -05:00
Andrew Kelley
e56f903522
memset and memcpy implementations need not return dest
2017-02-04 23:04:07 -05:00
Andrew Kelley
64a0510205
inline assembly supports %=
syntax
...
it outputs a number that is unique to each instance of the asm
statement in the entire compilation.
useful when creating local labels and referring to them multiple
times in a single template that generates multiple
assembler instructions
2017-02-04 22:33:58 -05:00
Andrew Kelley
b840184bb0
memcpy and memset builtins support volatile pointers
...
See #238
2017-02-04 22:12:06 -05:00
Andrew Kelley
419e75eb23
remove volatileStore builtin; add volatile pointers
...
closes #238
2017-02-04 21:49:27 -05:00
Andrew Kelley
0d7abc6368
add compile error when setting non power of 2 alignment
2017-02-04 10:38:38 -05:00
Andrew Kelley
0919ea0afd
ability to set global variable alignment and ...
...
..section in the initialization expression
2017-02-04 10:22:07 -05:00
Andrew Kelley
67b02326f8
preserve names of exported variables
2017-02-03 16:27:24 -05:00
Andrew Kelley
d3f1889951
in freestanding environment, assume gnu binutils
...
for now. soon LLD will free us from depending on
system linkers.
2017-02-03 15:53:23 -05:00
Andrew Kelley
5a86c04996
add volatileStore() builtin function
...
See #238
We can revisit how volatile will work later - for now
here's a builtin function to do it.
2017-02-03 15:14:18 -05:00
Andrew Kelley
8c9016b6d1
add setGlobalAlign and setGlobalSection builtin functions
...
closes #241
2017-02-03 13:56:56 -05:00
Andrew Kelley
3be4b6434c
add ability to set linker script
2017-02-03 12:34:20 -05:00
Andrew Kelley
e00eec1c29
typedefs work for binary math operations
2017-02-03 12:09:13 -05:00
Andrew Kelley
aae168550f
exported global variables get emitted as external in LLVM
2017-02-03 11:59:56 -05:00
Andrew Kelley
71d335e5cc
implement packed structs
...
closes #183
2017-02-03 11:39:24 -05:00
Andrew Kelley
cd7713b178
make --target-os freestanding work
2017-02-02 23:14:08 -05:00
Andrew Kelley
0cf0739b0a
update outdated comment
2017-02-02 17:18:36 -05:00
Andrew Kelley
c0b37e8514
add try expression
...
See #83
2017-02-02 17:09:27 -05:00
Andrew Kelley
8b1c6d8b76
fix ability to call method on variable at compile time
2017-02-02 15:03:21 -05:00
Andrew Kelley
2b88441295
fix behavior when initializing struct with undefined
2017-02-02 14:55:01 -05:00
Andrew Kelley
b78c91951a
remove ability to mark if and switch as inline
...
if and switch are implicitly inline if the condition/target
expression is known at compile time.
instead of:
```
inline if (condition) ...
inline switch (target) ...
```
one can use:
```
if (comptime condition) ...
switch (comptime target) ...
```
2017-02-02 13:23:18 -05:00
Andrew Kelley
cd08c1f3be
prefix op maybe and error are for types only
2017-02-02 12:21:11 -05:00
Andrew Kelley
4df1a9b251
document setDebugSafety builtin function
2017-02-01 03:28:40 -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
88a253c64d
fix crash when passing void to var args function
...
closes #235
2017-01-31 15:50:38 -05:00
Andrew Kelley
b258fdb532
add integer literal to pointer explicit cast
...
closes #227
2017-01-31 13:38:04 -05:00
Andrew Kelley
eb00aa21f5
readme update
2017-01-31 13:26:53 -05:00
Andrew Kelley
d8da34c64c
fix crash when assigning too large value to integer
...
closes #228
2017-01-31 02:30:10 -05:00
Andrew Kelley
d2b94afaf2
fix compile time initialization of array with undefined
2017-01-29 23:35:34 -05:00
Andrew Kelley
3caf6bacdc
fix sometimes using wrong outer scope for generating defers
2017-01-29 21:57:49 -05:00
Andrew Kelley
c75e58ffe6
fix behavior for comptime and runtime basic block phi
2017-01-29 19:10:56 -05:00
Andrew Kelley
e0a422ae7e
fix runtime branching tricking the comptime evaluation
...
closes #167
2017-01-26 15:34:36 -05:00
Andrew Kelley
34a4d7a201
update cat example code
2017-01-24 02:06:56 -05:00
Andrew Kelley
4b3f18de3c
printf var args proof of concept
...
See #167
Need to troubleshoot when we send 2 slices to printf. It goes
into an infinite loop.
This commit introduces 4 builtin functions:
* `@isInteger`
* `@isFloat`
* `@canImplictCast`
* `@typeName`
2017-01-24 02:02:48 -05:00
Andrew Kelley
32d8686da8
various fixes
...
* comptime expression is a block expression as it should be
* fix var args when number of args passed is 0
* implement const value equality for structs
* fix indent when rendering container decl AST
* IR: prevent duplicate generation of code when it is partially
compile-time evaluated
* implement compile time struct field pointer evaluation
* fix compile time evaluation of slicing
2017-01-23 23:30:20 -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
1826a96160
update charToDigit to take advantage of switch syntax
2017-01-23 01:19:03 -05:00
Andrew Kelley
0b34439c1f
mem.free no longer requires explicit type argument
2017-01-23 00:11:21 -05:00
Andrew Kelley
e5b1758010
remove staticEval builtin in favor of comptime expression
2017-01-22 23:21:00 -05:00
Andrew Kelley
201a3c121a
introduce comptime expression
...
closes #221
2017-01-22 22:59:52 -05:00
Andrew Kelley
47cf8520ad
use comptime instead of inline for var and params
...
See #221
2017-01-22 19:51:37 -05:00