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
Andrew Kelley
fde276a3bf
IR: implement error for missing or extra switch prongs
2017-01-10 16:28:49 -05:00
Andrew Kelley
430e33b869
partially fix parseh command
2017-01-10 15:39:52 -05:00
Andrew Kelley
8d27a02705
pass division by zero test
2017-01-08 22:35:31 -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
090ff05054
add compile error for initializing struct with non struct type
2017-01-07 14:24:08 -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
97e1054890
fix compiler rt
2017-01-05 04:20:07 -05:00