Andrew Kelley
bbf785bc1d
IR: switch expression works with numbers
2016-11-26 00:25:48 -05:00
Andrew Kelley
e80e8a8099
IR: fix detection of invalid codegen
2016-11-21 13:53:08 -05:00
Andrew Kelley
2f8dd46174
IR: error for uncasted null lit variable
2016-11-19 01:53:14 -05:00
Andrew Kelley
8a81f8aa13
IR: implement compileVar builtin and more
...
* implicit array to slice cast
* fix if statements at global scope
* implement array type IR
2016-11-19 01:39:51 -05:00
Andrew Kelley
d94cb0566b
IR: correctly codegening memset and memcpy
2016-11-18 22:24:41 -05:00
Andrew Kelley
62d0d88b56
IR: pointers to constants don't copy data
2016-11-17 04:00:02 -05:00
Andrew Kelley
d4f2394dcf
IR handles global variables correctly
2016-11-13 01:56:28 -05:00
Andrew Kelley
05de70017d
IR: support slice types
2016-11-07 18:58:01 -05:00
Andrew Kelley
a2e3293930
WIP moving all analysis to IR
2016-11-04 15:36:30 -04:00
Andrew Kelley
bc6c33b1b6
IR: support this literal and bool literal
2016-11-03 14:26:21 -04:00
Andrew Kelley
c8333d0cc9
add concept of inline for, inline while, inline var
2016-11-03 14:13:57 -04:00
Andrew Kelley
1a0111d4c3
*WIP*
2016-10-30 02:46:16 -04:00
Andrew Kelley
56cdaff9e7
ir: support return expression
2016-10-29 19:24:59 -04:00
Andrew Kelley
afc5507b64
ir: ability to modify global vars
2016-10-29 19:14:48 -04:00
Andrew Kelley
114049a220
IR analysis unrolls a complicated loop
2016-10-27 03:28:29 -04:00
Andrew Kelley
bfcd6648e7
IR can inline loops
2016-10-27 01:08:06 -04:00
Andrew Kelley
44d6f8ffd8
IR supports variable assignment
2016-10-23 01:33:23 -04:00
Andrew Kelley
d7a2b05a81
IR: introduce concept of lvalues
2016-10-23 00:21:29 -04:00
Andrew Kelley
a9a6f77a1f
add variable declaration initialization IR
2016-10-20 01:13:39 -04:00
Andrew Kelley
ac6d1674e3
IR working for if statements
2016-10-16 02:19:01 -04:00
Andrew Kelley
ce3c52471d
IR if statements WIP
2016-10-11 23:45:33 -04:00
Andrew Kelley
77ae3442ef
explicit casting works with IR
2016-10-09 02:20:01 -04:00
Andrew Kelley
07fe60ded1
IR in 2 passes
2016-10-06 01:09:01 -04:00
Andrew Kelley
cd1bd78aa9
simple add function works with IR
2016-10-02 23:48:48 -04:00
Andrew Kelley
633781e31d
empty function compiles successfully with IR
2016-09-30 20:12:00 -04:00
Andrew Kelley
4e2fa2d15b
*WIP*
2016-09-30 02:21:21 -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
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
01e13de7ca
refactor field access code into more generic container code
2016-09-26 00:06:37 -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
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
158225a203
avoid emitting "no member" errors when use import fails
...
closes #192
2016-09-19 21:23:36 -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
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
6abd8b6405
fix crash with []type{} expression
2016-09-13 15:35:56 -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
1fa4d2a5af
rename LLVMZig to ZigLLVM
2016-09-10 20:53:57 -04:00
Andrew Kelley
9e92dbdd08
std: use parameter type inference on min and max functions
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
4979e606c3
fix gcc 5.4.0compile errors
2016-09-05 16:18:49 -04:00
Andrew Kelley
20eb749ad6
generate debug info for global constants
...
See #41
2016-09-04 22:32:23 -07:00