Andrew Kelley
7749ffd797
try expression can omit variable assignments
2017-02-05 18:58:58 -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
e00eec1c29
typedefs work for binary math operations
2017-02-03 12:09:13 -05:00
Andrew Kelley
71d335e5cc
implement packed structs
...
closes #183
2017-02-03 11:39:24 -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
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
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
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
e5b1758010
remove staticEval builtin in favor of comptime expression
2017-01-22 23:21:00 -05:00
Andrew Kelley
47cf8520ad
use comptime instead of inline for var and params
...
See #221
2017-01-22 19:51:37 -05:00
Andrew Kelley
ab8b14aa9f
add test for compile error returning from defer expression
...
closes #218
2017-01-16 17:18:25 -05:00
Andrew Kelley
cf3b9f4f5b
add test for compile time bool not operator
...
closes #205
2017-01-16 17:15:42 -05:00
Andrew Kelley
0caee421e3
ability to equality compare with null
...
closes #106
2017-01-16 16:39:31 -05:00
Andrew Kelley
867686af42
equality comparison of void types is known at compile time
...
closes #56
2017-01-16 16:07:03 -05:00
Andrew Kelley
fdbc2d8da1
implement error when assigning to field of const struct
...
closes #48
2017-01-16 15:24:03 -05:00
Andrew Kelley
98faf4f749
add test for short-circuit AND and OR assignment
...
closes #31
2017-01-16 14:58:22 -05:00
Andrew Kelley
c715309bc5
Merge branch 'master' into ir-merge
2017-01-16 14:23:32 -05:00
Andrew Kelley
4cbeb87e83
fix handling of const values for 2d arrays
2017-01-16 12:42:46 -05:00
Andrew Kelley
0b6cf0aa63
fix handling of invalid enumeration
2017-01-15 22:34:20 -05:00
Andrew Kelley
8106f9846a
fix enum codegen and implement comptime switch var on enums
2017-01-15 22:16:39 -05:00
Andrew Kelley
18f248b94d
IR: fix array concatenation
...
all tests passing
2017-01-12 15:10:58 -05:00
Andrew Kelley
d784705353
IR: implement macro for function aliasing function pointer
2017-01-12 03:15:06 -05:00
Andrew Kelley
76b1cbc2ea
pass some parseh tests
2017-01-11 22:25:17 -05:00
Andrew Kelley
25a670d74e
pass more tests
2017-01-11 19:09:17 -05:00
Andrew Kelley
de9ecaf964
fix some tests
2017-01-11 18:23:19 -05:00
Andrew Kelley
fc53708dc0
better error message for unable to eval const expr
2017-01-11 18:06:21 -05:00
Andrew Kelley
7493af5953
fix a few tests
2017-01-11 00:38:24 -05:00
Andrew Kelley
fde276a3bf
IR: implement error for missing or extra switch prongs
2017-01-10 16:28:49 -05:00
Andrew Kelley
6caf32195a
pass unnecessary if statement test
2017-01-08 22:25:38 -05:00
Andrew Kelley
76d0e49e61
fix unable to eval const expr test case
2017-01-08 10:54:05 -05:00
Andrew Kelley
e4bc8d22c2
fix some tests
2017-01-08 10:41:36 -05:00
Andrew Kelley
3ef447fa20
don't try to eval extern functions at compile time
2017-01-08 10:30:05 -05:00
Andrew Kelley
6b36aef306
pass conflicting variable name test
2017-01-07 14:27:38 -05:00
Andrew Kelley
cf62f02ba9
don't mark call instruction as generated
...
pass cast unreachable test
2017-01-06 02:04:27 -05:00
Andrew Kelley
23feafdef0
pass more tests
...
by removing assertion, fixing error column,
and updating expected message
2017-01-05 19:25:36 -05:00
Andrew Kelley
28403eaad0
pass more tests by updating expected error messages
2017-01-05 19:20:31 -05:00
Andrew Kelley
837cc467f7
pass array access compile error tests
2017-01-05 19:05:48 -05:00
Andrew Kelley
e621ad014e
pass cannot assign to constant test
2017-01-05 18:50:36 -05:00
Andrew Kelley
ed21be011a
pass unreachable variable test
2017-01-05 04:03:25 -05:00