Commit Graph

1185 Commits (451ce090674d6d5f2c23e6667047e1e479917c93)

Author SHA1 Message Date
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
Andrew Kelley 6a5e61acd1 get rid of zeroes literal
closes #222
2017-01-16 17:24:13 -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 c7591736b4 fix array of enums. also render debug info for const vars 2017-01-16 01:44:47 -05:00
Andrew Kelley 3752e0c290 fix get_maybe_type not ensuring complete child type 2017-01-15 23:36:14 -05:00
Andrew Kelley d0b59f20ab fix llvm assertion failure for zero bits structs 2017-01-15 23:27:14 -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 0c1800a9c9 fix some stuff when llvm has assertions on 2017-01-13 17:33:19 -05:00
Andrew Kelley 83f1a6fae2 fix some bugs with structs 2017-01-13 16:24:13 -05:00
Andrew Kelley 652bfab3d0 fix crash when casting fn call arg 2017-01-12 18:10:18 -05:00
Andrew Kelley c793c534b8 fix use decl regression 2017-01-12 18:10:05 -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