Commit Graph

151 Commits

Author SHA1 Message Date
Andrew Kelley
a791417552 add @fieldParentPtr builtin function
closes #320
2017-04-18 02:28:05 -04:00
Andrew Kelley
bf57d8a7e3 typedefpocalypse
closes #314
2017-04-13 03:07:58 -04:00
Andrew Kelley
0edc2b19fe support module level assembly
closes #256
2017-04-04 19:47:22 -04:00
Andrew Kelley
22e6bfca96 add comptime top level declaration
closes #255
2017-03-26 04:32:13 -04:00
Andrew Kelley
7c53230a61 introduce copyable concept
closes #103
2017-03-26 03:39:18 -04:00
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
e00eec1c29 typedefs work for binary math operations 2017-02-03 12:09:13 -05:00
Andrew Kelley
c0b37e8514 add try expression
See #83
2017-02-02 17:09:27 -05:00
Andrew Kelley
2b88441295 fix behavior when initializing struct with undefined 2017-02-02 14:55:01 -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
fdbc2d8da1 implement error when assigning to field of const struct
closes #48
2017-01-16 15:24:03 -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
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