1002 Commits

Author SHA1 Message Date
Andrew Kelley
425c0ffa01 rename NodeTypeStructDecl to NodeTypeContainerDecl 2016-07-17 16:30:41 -07:00
Andrew Kelley
3971bf3d72 fix not resolving use declarations
causing bogus compile errors
2016-07-13 18:22:49 -07:00
Andrew Kelley
f2fc9b8a7b fix duplicate type defined when imported from parseh 2016-07-09 15:48:25 -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
Andrew Kelley
b08bc84a36 don't add no-frame-pointer-elim for inline functions
and make syscall functions inline
this gets the tests all passing on i386
2016-05-18 18:30:03 -07:00
Andrew Kelley
fbb6d1d7ee support extern C ABI for return types 2016-05-18 15:32:34 -07:00
Andrew Kelley
2c710382a8 fix crash when error evaluating target of for expr
closes #153
2016-05-16 22:51:08 -07:00
Andrew Kelley
9813ae8586 add bit_count, is_wrapping, is_signed fields to int types 2016-05-15 01:30:25 -07:00
Andrew Kelley
6ff996f60f add int_type builtin function 2016-05-15 01:05:24 -07:00
Andrew Kelley
7f90dbbb11 switch on compile var marks entire namespaces
as depending on compile vars.

closes #154
2016-05-15 00:25:13 -07:00
Andrew Kelley
6ae6b5f5b5 add compile_err builtin 2016-05-14 18:54:37 -07:00
Andrew Kelley
33e3d56453 add error for wrong return type of main 2016-05-13 13:08:54 -07:00
Andrew Kelley
8e3ab28be9 ability to cast maybe pointer to isize/usize
also ability to put noalias on maybe pointer
2016-05-13 09:54:56 -07:00
Andrew Kelley
1eafc85f1f add readonly attribute to relevant functions and parameters 2016-05-11 15:58:00 -07:00
Andrew Kelley
22888ca524 some work in progress networking code
also, casting to or from a u8 slice makes a function impure
2016-05-10 15:00:59 -07:00
Andrew Kelley
d92ae20f45 add hashmap to standard library
closes #22
2016-05-09 15:07:38 -07:00
Andrew Kelley
f1e5be9686 fix ability to use previous generic params and
add error when `%return` shows up in a function with incorrect
return type
2016-05-09 13:44:29 -07:00
Andrew Kelley
745c325d0f support variable declarations in structs
See #22
2016-05-09 12:34:03 -07:00
Andrew Kelley
56908dcb9d add debug safety for shortening casts
closes #150
2016-05-09 08:44:41 -07:00
Andrew Kelley
18ed87c695 ability to cast u8 slice to bigger slice 2016-05-08 00:59:21 -07:00
Andrew Kelley
aed96e3512 fix null literal outside function 2016-05-08 00:15:05 -07:00
Andrew Kelley
404defd99b add div_exact builtin fn
closes #149
2016-05-07 20:53:16 -07:00
Andrew Kelley
9d29674711 ability to cast slice to u8 slice 2016-05-07 18:45:28 -07:00
Andrew Kelley
9e0165147e generic args available to member functions
See #22
2016-05-07 17:27:57 -07:00
Andrew Kelley
2ed72022ce support generic data structures
See #22
2016-05-07 17:00:58 -07:00
Andrew Kelley
8c79438f6b better array concatenation semantics
closes #87
2016-05-07 10:05:59 -07:00
Andrew Kelley
c098a8f522 add frame_address and return_address builtins 2016-05-06 23:10:14 -07:00
Andrew Kelley
271a37b418 implicit wrap widening cast on integer peer types
closes #46
2016-05-06 19:49:28 -07:00
Andrew Kelley
6131b37163 fix eval integer wrapping and add tests
See #46
2016-05-06 19:23:21 -07:00
Andrew Kelley
9db45ac362 add shl_with_overflow builtin function
See #46
2016-05-06 16:45:04 -07:00
Andrew Kelley
094336f07c add integer wrapping
see #46
2016-05-05 17:19:01 -07:00
Andrew Kelley
dedde0d790 add fence builtin function 2016-05-04 18:34:17 -07:00
Andrew Kelley
c95e497857 add cmpxchg builtin function 2016-05-04 18:19:49 -07:00
Andrew Kelley
66ed7a5eb5 beginnings of network standard library code 2016-05-03 20:48:53 -07:00
Andrew Kelley
7f589c0cab support maybe destructuring into a pointer variable 2016-05-03 15:06:34 -07:00
Andrew Kelley
d908afe105 add array multiplication operator 2016-04-28 18:03:44 -07:00
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