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
c32a060d4f
IR: add unreachable code compiler error
2017-01-04 23:21:33 -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
dc26dec8e0
rename self_hosted3 to self_hosted
2016-12-28 01:36:13 -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
f47dea2a2e
IR: support compile time global pointer reinterpret
...
this required moving the place we store types to ConstExprValue
2016-12-25 04:15:23 -05:00
Andrew Kelley
6f91fb4c37
IR: support const ref
2016-12-22 10:39:10 -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
ed962d9d21
IR: port another test
2016-12-22 08:48:08 -05:00
Andrew Kelley
3e25ff65c3
IR: fix switch enum variable for void enum field
2016-12-22 08:05:37 -05:00
Andrew Kelley
dab3ddab45
IR: port more tests
2016-12-22 01:42:30 -05:00
Andrew Kelley
5a71718757
IR: port more tests
2016-12-22 01:20:08 -05:00
Andrew Kelley
5fc95c2a53
IR: port some tests
2016-12-22 00:55:21 -05:00
Andrew Kelley
46033a2128
pass void parameters test
2016-12-22 00:46:17 -05:00
Andrew Kelley
23bebdbcd5
IR: port some tests
2016-12-22 00:20:14 -05:00
Andrew Kelley
56cc2e2b24
migrate all the temporary tests to new test file
2016-12-22 00:12:27 -05:00
Andrew Kelley
9b61682037
IR: implement runtime enum init and switch on enum with variable
2016-12-21 21:49:05 -05:00
Andrew Kelley
1f6dacbb2f
IR: enum init support
2016-12-20 01:50:32 -05:00
Andrew Kelley
2419f0c914
IR: support maybe defers
2016-12-19 17:25:09 -05:00
Andrew Kelley
09d50e35a4
IR: support error defers
2016-12-19 16:45:15 -05:00
Andrew Kelley
14422e0312
organize tests
2016-12-19 00:53:18 -05:00
Andrew Kelley
6b2d06710c
IR: start a new passing self hosted test suite
2016-12-19 00:41:37 -05:00
Andrew Kelley
e50ced44a2
IR: all structs anonymous
2016-12-18 16:56:50 -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
647d13168a
IR: implement maybe return expression
2016-12-13 19:36:56 -05:00
Andrew Kelley
3f3630d7e3
IR: implement the rest of the builtin functions
...
* returnAddress
* frameAddress
* addWithOverflow
* subWithOverflow
* mulWithOverflow
* shlWithOverflow
* alignOf
2016-12-13 04:30:41 -05:00
Andrew Kelley
9b17c0ff7f
IR: implement intType builtin
...
and int type field access
and fix compile time bool not
2016-12-11 16:30:01 -05:00
Andrew Kelley
3429639e84
IR: implement truncate builtin
2016-12-11 15:31:07 -05:00
Andrew Kelley
433c17aeb1
IR: implement divExact builtin
2016-12-11 14:27:37 -05:00
Andrew Kelley
8fcb1a141b
IR: implement fence and cmpxchg builtins
2016-12-11 04:06:07 -05:00
Andrew Kelley
6feae8a4e9
IR: support error union type
2016-12-10 18:38:53 -05:00
Andrew Kelley
443e14afbd
IR: fix errorName builtin
2016-12-10 17:11:35 -05:00
Andrew Kelley
7d0fb281fe
IR: a bunch of fixes and some additions
...
* add errorName builtin function
* add assertion for generated memcopy being on correct types
* respect handle_is_ptr for constant values
* fix return codegen to respect sret semantics
* remove ArrayLen IR instruction; we already have StructFieldPtr
with "len" field
* fix gen_const_val for pointers inside aggregates
2016-12-08 01:52:57 -05:00
Andrew Kelley
0ad580f001
IR: add minValue, maxValue, and negation
2016-12-07 01:23:38 -05:00
Andrew Kelley
7d9fa01ed5
IR: implement compile time eval unwrap maybe
2016-12-06 22:04:55 -05:00
Andrew Kelley
6ed202ab16
IR: implement defer
2016-12-06 21:26:17 -05:00
Andrew Kelley
bed83bc5a1
IR: implement short circuit bool or, and
2016-12-05 19:12:19 -05:00
Andrew Kelley
24048b2af6
IR: implement break and continue
2016-12-05 18:43:16 -05:00
Andrew Kelley
0541532ed6
IR: implement generic function calls
2016-12-05 05:12:44 -05:00
Andrew Kelley
25a89e7a36
IR: compile time function evaluation
2016-12-04 23:52:43 -05:00
Andrew Kelley
eb5693d91f
IR: function call porting progress
...
also implemented container init
generics is still todo
2016-11-28 02:40:01 -05:00
Andrew Kelley
a52ede6494
IR: support goto and labels
2016-11-26 23:16:38 -05:00
Andrew Kelley
84f7805029
IR: support import builtin function
2016-11-26 20:52:22 -05:00
Andrew Kelley
4619b5de06
IR: support inline switch
2016-11-26 15:38:07 -05:00
Andrew Kelley
697c768730
IR: support switch with range
2016-11-26 04:03:39 -05:00
Andrew Kelley
0c22358cc1
IR: generating a switch statement
2016-11-24 02:44:03 -05:00
Andrew Kelley
a2257e4b81
IR: implement setFnVisible builtin
2016-11-21 15:36:25 -05:00
Andrew Kelley
bf7cde62c5
IR: support setDebugSafety builtin function
2016-11-18 20:57:27 -05:00
Andrew Kelley
c8333d0cc9
add concept of inline for, inline while, inline var
2016-11-03 14:13:57 -04:00
Andrew Kelley
e4271f4fb2
more test coverage, change 'got' to 'found' in errors
2016-10-28 12:15:37 -04:00
Andrew Kelley
e3857a361c
more test coverage
2016-10-28 12:04:46 -04: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
Andrew Kelley
7ce7e2c9d1
emit error for extern function
...
with byvalue return value or parameter.
currently we don't codegen byvalue parameters or return values
correctly for C compatibilty functions so instead of generating
incorrect code, we emit a compile error.
eventually we'll support this feature and remove the compile error.
See #180
2016-09-26 20:01:42 -04:00
Andrew Kelley
7f4d4bdb3f
fix crash when doing binary not on integer literal
...
closes #201
2016-09-26 19:42:51 -04:00
Andrew Kelley
4b68224c60
add error message for method call on non method
...
closes #199
2016-09-26 01:01:02 -04:00
Andrew Kelley
683da0e4ec
ability to have struct to have a field which is slice of itself
...
closes #197
2016-09-25 13:39:46 -04:00
Andrew Kelley
e06885d64e
enums support member functions
2016-09-23 15:18:02 -04:00
Andrew Kelley
9ec6a78f12
fix compiler crash for misspelled type with pointer only reference
...
closes #196
2016-09-23 11:53:05 -04:00
Andrew Kelley
46eb77dbb2
stack trace is able to figure out compilation unit
...
each address is contained within
also fix a bug having to do with codegen for enum value
initialization expressions
2016-09-23 02:00:23 -04:00
Andrew Kelley
c64f6f9503
fix compile crash when leaving out for loop parameter
2016-09-22 10:40:05 -04:00
Andrew Kelley
b97bfc3ecb
fix error when switch prong has implicit cast
...
closes #194
2016-09-20 16:10:34 -04:00
Andrew Kelley
e397ea43c0
tests: correct test name
2016-09-19 20:19:02 -04:00
Andrew Kelley
3239b3cb69
use size_t for indexes
...
protect against incorrect copies in debug mode
2016-09-19 11:54:01 -04:00
Andrew Kelley
b738cbdc76
fix compiler crash involving slice with const slice child
...
also fix compiler crash for multiple errors in main fn prototype
closes #191
2016-09-15 14:09:08 -04:00
Andrew Kelley
3f05fdc8e8
tests: use a more robust path to self_hosted.zig
...
closes #184
2016-09-14 03:10:56 -04:00
Andrew Kelley
f1761632da
darwin compat fixups
...
- delete commented out code
- delete redundant check for missing
mmacosx-version-min/maxdir
- add TODO comment in std library
- rename 'os' to 'self' in io.zig
- `openSelfExe` aborts on darwin instead of compile error
- only allow warnings on the one parseh test that has
`#include <stdint.h>`.
2016-09-14 02:47:16 -04:00
alter
cf9b21c09f
MacOSX compatibility
...
- Implemented some syscall for MacOSX
- tested on : El Capitan 10.11 x86_64
- make self hosted test run on macosx
- modified run_test so it does not fail when parseh throws
warnings (most of them are related to buildin types from
gcc that arent defined in header files and unions)
- making -mmacosx-version-min and -mios-version-min works like
gcc (command line paramers have precedence over enviroment variables)
2016-09-14 02:46:02 -04:00
Andrew Kelley
06f2f4d64b
change unreachable{}
to @unreachable()
...
instead of a container init expression, it's a builtin
function call.
2016-09-13 16:46:27 -04:00
Andrew Kelley
56f8325799
add compile error for assigning through const
...
pointer and slice
closes #188
2016-09-11 14:12:24 -04:00
Andrew Kelley
28811234bb
fix compile error message for wrong arg count on method
2016-09-10 20:53:57 -04:00
Andrew Kelley
d324b1befa
ability to infer parameter types
2016-09-08 00:24:48 -04:00
Andrew Kelley
64034a3d1a
maxValue and minValue builtins return number literal
...
closes #170
2016-09-05 23:19:13 -04:00
Andrew Kelley
cfaced3f73
rename errName builtin to errorName
2016-09-05 17:03:11 -04:00
Andrew Kelley
9193a3cdad
stronger static eval recursive test
2016-08-30 16:06:02 -07:00
Andrew Kelley
6e6d138c2f
add ability to explicitly cast enum with no payload to int
2016-08-29 22:14:10 -07:00
Andrew Kelley
651dc31247
implement null as a literal type
2016-08-29 22:14:09 -07:00
Andrew Kelley
1f7ec741fa
implement ?return
expression
2016-08-29 22:14:09 -07:00