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
Andrew Kelley
8dc45bc505
port more tests
2016-12-22 10:10:04 -05:00
Andrew Kelley
ba8af0f1e2
IR: fix missing implicit casts in init expressions
...
and implement runtime struct init instruction
2016-12-22 09:35:07 -05:00
Andrew Kelley
5a71718757
IR: port more tests
2016-12-22 01:20:08 -05:00
Andrew Kelley
56cc2e2b24
migrate all the temporary tests to new test file
2016-12-22 00:12:27 -05:00
Andrew Kelley
6b2d06710c
IR: start a new passing self hosted test suite
2016-12-19 00:41:37 -05:00
Andrew Kelley
12fcbecbf8
IR: add more instructions
...
* MaybeWrap
* TestErr
* UnwrapErrCode
* UnwrapErrPayload
* ErrUnionTypeChild
* ErrWrapCode
* ErrWrapPayload
2016-12-17 16:16:17 -05:00
Andrew Kelley
84f7805029
IR: support import builtin function
2016-11-26 20:52:22 -05:00
Andrew Kelley
b581da41f8
remove compiler directives
...
* add `setFnTest`, `setFnVisible`, `setFnStaticEval`,
`setFnNoInline` builtin functions to replace previous
directive functionality
* add `coldcc` and `nakedcc` as keywords which can be used as part
of a function prototype.
* `setDebugSafety` builtin can be used to set debug safety features
at a per block scope level.
* closes #169
2016-09-28 02:33:32 -04:00
Andrew Kelley
e5fd8efcb6
clean up test directory
2016-09-27 00:09:43 -04:00
Andrew Kelley
183976b242
add this keyword refers to thing in immediate scope
...
See #169
2016-09-26 23:47:30 -04:00