Andrew Kelley
8a859afd58
std.io supports printing integers as hex values
...
remove "unnecessary if statement" error
this "depends on compile variable" code is too hard to validate,
and has false negatives. not worth it right now.
std.str removed, instead use std.mem.
std.mem.eql and std.mem.sliceEql merged and do not require explicit
type argument.
2017-02-07 17:23:50 -05:00
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
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
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
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
98faf4f749
add test for short-circuit AND and OR assignment
...
closes #31
2017-01-16 14:58:22 -05:00
Andrew Kelley
4cbeb87e83
fix handling of const values for 2d arrays
2017-01-16 12:42:46 -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
6caf32195a
pass unnecessary if statement test
2017-01-08 22:25:38 -05:00
Andrew Kelley
e621ad014e
pass cannot assign to constant test
2017-01-05 18:50:36 -05:00
Andrew Kelley
3b5e26b7f7
self hosted tests import std library
2017-01-05 03:57:48 -05:00
Andrew Kelley
6ec6589bd8
IR: pass MT19937_64 test
2017-01-05 00:59:37 -05:00
Andrew Kelley
69132bdeda
IR: progress toward compiling standard library
...
* comptime fn call
* is_comptime doesn't count as an instruction dependency
* update more std code to latest zig
2016-12-31 17:10:29 -05:00
Andrew Kelley
5f89393acb
IR: implement binary not instruction
2016-12-31 02:23:39 -05:00
Andrew Kelley
6bbee194b9
IR: better basic block dependency detection
2016-12-30 18:34:05 -05:00
Andrew Kelley
94f977a6c1
IR: pass genericFnWithImplicitCast test
2016-12-28 01:35:13 -05:00
Andrew Kelley
f6ac2fa70e
IR: pass pointerToVoidReturnType test
2016-12-28 01:31:46 -05:00
Andrew Kelley
25a5fc32fe
IR: pass passSliceOfEmptyStructToFn test
2016-12-28 01:15:09 -05:00
Andrew Kelley
15f843e70f
IR: pass castSliceToU8Slice test
2016-12-26 17:11:36 -05:00
Andrew Kelley
66a83d8738
IR: pass intToEnum test
2016-12-26 16:34:18 -05:00
Andrew Kelley
c8a7ab7eff
IR: pass cStringConcatenation test
2016-12-26 16:04:14 -05:00
Andrew Kelley
7504be923b
IR: pass pointerComparison test
2016-12-26 15:49:03 -05:00
Andrew Kelley
735cdbfdac
IR: pass intToPtrCast test
2016-12-26 15:45:50 -05:00
Andrew Kelley
aee7ad3de2
IR: port all passing tests over
2016-12-26 03:44:59 -05:00
Andrew Kelley
73a751911e
IR: pass staticEvalListInit test
2016-12-26 03:16:19 -05:00
Andrew Kelley
6ed835ca67
IR: port more tests
2016-12-26 03:05:33 -05:00
Andrew Kelley
3ef6663b72
IR: pass genericMallocFree test
2016-12-26 03:02:20 -05:00
Andrew Kelley
110a6f39ca
IR: pass explicitCastMaybePointers test
2016-12-26 02:53:42 -05:00
Andrew Kelley
6c9ec3688e
IR testing: rename cases3 dir to cases
2016-12-26 02:49:30 -05:00
Andrew Kelley
66777ccd7d
IR: port more tests
2016-12-26 02:47:52 -05:00
Andrew Kelley
4664f793dc
IR: pass enumToInt test
2016-12-26 02:36:04 -05:00
Andrew Kelley
1b5d1877ae
IR: port more tests
2016-12-26 01:37:33 -05:00
Andrew Kelley
2b5c7b1b8e
IR: port more tests
2016-12-25 18:36:45 -05:00