Commit Graph

139 Commits

Author SHA1 Message Date
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
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
8dc45bc505 port more tests 2016-12-22 10:10:04 -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
1f6dacbb2f IR: enum init support 2016-12-20 01:50:32 -05:00
Andrew Kelley
6b2d06710c IR: start a new passing self hosted test suite 2016-12-19 00:41:37 -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
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
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
b97bfc3ecb fix error when switch prong has implicit cast
closes #194
2016-09-20 16:10:34 -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
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
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
1f7ec741fa implement ?return expression 2016-08-29 22:14:09 -07:00
Andrew Kelley
37d167f6e0 std: conform to style guidelines 2016-08-16 22:42:50 -07:00
Andrew Kelley
2ed949a6ae add zeroes value 2016-08-08 20:43:38 -07:00
Andrew Kelley
0d5ecc4312 ability to have a return type of 'type' 2016-08-07 20:08:37 -07:00
Andrew Kelley
275410dc33 implement multiline C string syntax 2016-08-04 23:10:24 -07:00
Andrew Kelley
d0b11af2bd new multiline string syntax
This patch also moves a bunch of the parser code into the tokenizer.

Closes #162.
2016-08-04 22:52:38 -07:00
Andrew Kelley
1fa0cabf9d remove multiline comments
closes #161
2016-07-27 23:26:12 -07:00
Andrew Kelley
8552d7fd19 explicit wrapping integer operations
instead of wrapping integer types

closes #159
2016-07-27 23:08:27 -07:00
Andrew Kelley
bc81ddfea6 unsigned integers for sizes of things
Closes #62.
2016-07-26 20:40:11 -07:00
Andrew Kelley
78d4fb20c4 inline parameters
This replaces the current generic syntax for functions and replaces
it with the concept of inline parameters.

This paves the way for the "all structs anonymous" proposal.

Closes #151.
2016-07-25 22:55:15 -07:00
Andrew Kelley
49a4b1b930 ability to cast explicitly from int to enum
This commit also fixes a bug where pure functions are marked with
the read-only attribute in debug mode. This resulted in incorrect
codegen because calls to read-only functions with unused values
were not generated.

For example, a call to assert() would not be generated if assert
is marked with read-only. Which it *is* marked with in release
mode.
2016-07-09 15:22:04 -07:00