Andrew Kelley
46b0b84b90
ability to specify body of an extern function
...
closes #101
2016-04-28 16:04:44 -07:00
Andrew Kelley
4815c03caa
better parameter codegen
...
* ability to take address of a parameter (closes #97 )
* debug symbols work for parameters
2016-04-27 17:34:53 -07:00
Andrew Kelley
d1fa5692c6
add array bounds checking in debug mode
...
closes #27
2016-04-26 11:36:11 -07:00
Andrew Kelley
d0378057d1
support switching on error union type
...
closes #23
2016-04-25 21:51:04 -07:00
Andrew Kelley
3886fdc19b
rename unknown_size_array to slice
2016-04-24 16:33:52 -07:00
Andrew Kelley
8ad75a9bf3
add compile error for invalid equality operator uses
...
See #145
2016-04-24 12:09:51 -07:00
Andrew Kelley
46ab981787
add skeleton for union support
2016-04-24 11:24:04 -07:00
Andrew Kelley
899fb14c30
fix handling of slice of zero bits type
...
closes #143
2016-04-23 13:58:30 -07:00
Andrew Kelley
55b28ab030
fix returning empty struct from function
...
closes #142
2016-04-23 12:21:47 -07:00
Josh Wolfe
4a7911e3eb
fix gcc build errors
2016-04-23 00:26:29 -07:00
Andrew Kelley
a380b803ac
ability to use a struct with no fields
2016-04-21 09:47:41 -07:00
Andrew Kelley
ae600d2f7f
fix undeclared identifier not marking function as impure
2016-04-20 17:25:26 -07:00
Andrew Kelley
6acc354957
for loop: add ability to get pointer to elem var
...
see #51
2016-04-20 11:58:01 -07:00
Andrew Kelley
a25307c0a1
add optional continue expression to while loop
...
closes #139
2016-04-19 20:28:44 -07:00
Andrew Kelley
04364c45ce
fix casting with imported symbol not working
2016-04-19 19:37:25 -07:00
Andrew Kelley
36c6acfc76
enum init uses container init syntax instead of fn call
...
See #5
2016-04-19 18:52:09 -07:00
Andrew Kelley
4e37fb2fa2
implement constant initialization of enum values
...
see #5
2016-04-19 17:15:55 -07:00
Andrew Kelley
ff1ab3fe9c
fix crash in non-const expression in struct literal outside fn
2016-04-18 18:18:41 -07:00
Andrew Kelley
5e33175517
add @embed_file builtin function
2016-04-18 15:47:21 -07:00
Andrew Kelley
83a59c4d07
fix evaluating generic functions in wrong context
2016-04-13 12:28:07 -07:00
Andrew Kelley
3c27cb2527
more eval tests and fix eval call analyze code
2016-04-12 17:33:46 -07:00
Andrew Kelley
69109bc270
add error for dividing by zero in static function evaluation
2016-04-12 16:18:41 -07:00
Andrew Kelley
be4df96e4b
passing all tests
2016-04-12 13:30:52 -07:00
Andrew Kelley
aa89fd3b3e
eval: ability to eval more things
2016-04-12 09:35:33 -07:00
Andrew Kelley
a177e30534
compile-time function evaluation of pure functions
2016-04-12 09:35:33 -07:00
Andrew Kelley
5a479720ec
add error for unable to infer expression type in if statements
...
closes #136
2016-04-12 08:53:00 -07:00
Andrew Kelley
954a451c51
unsigned ints implicitly cast to signed ints when they fit
...
also fix #135
2016-04-11 22:57:32 -07:00
Andrew Kelley
b117b5907c
add error for accessing empty array
...
closes #134
2016-04-10 13:18:42 -07:00
Andrew Kelley
0683bd8bf6
fix crash when casting undefined to slice
...
also fix crash having to do with runtime allocated stack memory
2016-04-10 12:04:25 -07:00
Andrew Kelley
e66ed0f2e2
add error for assigning null to non-nullable pointer
...
closes #133
2016-04-09 17:35:26 -07:00
Andrew Kelley
7eb6af1d3e
add @breakpoint()
2016-04-09 16:52:52 -07:00
Andrew Kelley
21eca6478f
re-introduce goto
...
see #44
2016-04-09 16:41:17 -07:00
Andrew Kelley
7026bed462
fix debug symbols regression after llvm 3.8.0
2016-04-09 14:21:55 -07:00
Andrew Kelley
7a05e18efb
implement @err_name builtin function
2016-04-09 08:55:53 -07:00
Josh Wolfe
4ce85ea067
fix gcc compile error
2016-04-08 16:24:06 -07:00
Andrew Kelley
5dbc21b511
update cat example, refactor std
...
partial implementation of @err_name
2016-04-08 16:21:30 -07:00
Josh Wolfe
f6edba4a87
fix gcc compile errors
2016-04-07 18:02:30 -07:00
Andrew Kelley
3b535d2c3a
fix evaluating generic function instance in wrong context
...
See #22
2016-04-07 14:23:06 -07:00
Andrew Kelley
ee22e87296
generic functions use correct type for generic args
...
See #22
2016-04-07 11:34:24 -07:00
Andrew Kelley
1d4c66b56b
support multiple generic function instances
...
See #22
2016-04-07 10:34:54 -07:00
Andrew Kelley
57688dea36
add error for gt and lt comparison of invalid types
2016-04-06 14:15:20 -07:00
Andrew Kelley
7bb67b1fd0
ability to compare function pointers at compile time
2016-04-06 14:09:27 -07:00
Andrew Kelley
22ef416d4d
fix generics not using ast clone
2016-04-06 14:02:29 -07:00
Andrew Kelley
67152f7294
support simple generic functions
2016-04-06 12:58:54 -07:00
Andrew Kelley
76e1541803
update to llvm 3.8.0
2016-03-08 18:56:14 -07:00
Andrew Kelley
f72c36cd37
fix detection of @import and @c_import inside fn body
2016-03-01 17:59:56 -07:00
Andrew Kelley
5df091fea9
c_void is provided outside of C imports
2016-03-01 15:26:41 -07:00
Andrew Kelley
1d08ab087e
fix comparison of unsigned integers error
2016-03-01 14:08:04 -07:00
Andrew Kelley
f1d338194e
rewrite how importing works
...
* Introduce the concept of packages. Closes #3
* Add support for error notes.
* Introduce `@import` and `@c_import` builtin functions and
remove the `import` and `c_import` top level declarations.
* Introduce the `use` top level declaration.
* Add `--check-unused` parameter to perform semantic
analysis and codegen on all top level declarations, not
just exported ones and ones referenced by exported ones.
* Delete the root export node and add `--library` argument.
2016-03-01 03:13:40 -07:00
Andrew Kelley
06398a22d0
back to normal print specifiers
...
disable warnings for format specifiers on mingw since the
compiler emits bogus warnings
2016-02-16 21:43:38 -07:00