Commit Graph

90 Commits (425c0ffa014fb950a4f9f90aa9a200fbc4d8e091)

Author SHA1 Message Date
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 7edef4f3fd add beginning of print stack trace function
introduce std.debug and move std.assert to std.debug.assert
add mem.copy
2016-05-17 13:32:43 -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 50310cf9df add 64 bit division test 2016-05-15 00:42:48 -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 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 0c32b0b4ad add list implementation to standard library 2016-05-08 01:34:00 -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 eb83111f02 add debug safety for division
See #149
2016-05-07 19:58:02 -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 01c46eef3a std: separate str and cstr 2016-05-07 10:52:52 -07:00
Andrew Kelley 8c79438f6b better array concatenation semantics
closes #87
2016-05-07 10:05:59 -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 0c96920172 add tests for integer wrapping
See #46
2016-05-06 15:02:02 -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 7f589c0cab support maybe destructuring into a pointer variable 2016-05-03 15:06:34 -07:00
Andrew Kelley 9ccd0ba961 implement string escapes 2016-05-01 14:53:48 -07:00
Andrew Kelley d908afe105 add array multiplication operator 2016-04-28 18:03: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 8ec109de3c ability to compare booleans 2016-04-26 11:39:31 -07:00
Andrew Kelley d0378057d1 support switching on error union type
closes #23
2016-04-25 21:51:04 -07:00
Andrew Kelley d1b65c6f46 fix ability to parse character literals 2016-04-24 16:36:05 -07:00
Andrew Kelley 8583fd7f9f add codegen for pointer comparison
see #145
2016-04-24 12:27:59 -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
Andrew Kelley 8187396f64 add syntax to allow symbols to have arbitrary strings as names 2016-04-22 15:24:18 -07:00
Andrew Kelley a380b803ac ability to use a struct with no fields 2016-04-21 09:47:41 -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 7a7f83033c add test for public enums
See #5
2016-04-19 17:20:23 -07:00
Andrew Kelley 4e37fb2fa2 implement constant initialization of enum values
see #5
2016-04-19 17:15:55 -07:00
Andrew Kelley f4c7e1bf49 rearrange standard library a bit 2016-04-18 16:42:56 -07:00
Andrew Kelley 832454f38b move 2 tests to self hosted land 2016-04-18 13:06:17 -07:00
Andrew Kelley 7f56e4ac16 move more tests to self-hosted land 2016-04-14 11:15:02 -07:00
Andrew Kelley fcedc35551 fix crash with generic function and implicit cast 2016-04-14 10:39:03 -07:00
Andrew Kelley 3f9632bb40 eval: support array literals 2016-04-13 10:13:49 -07:00
Andrew Kelley 3c27cb2527 more eval tests and fix eval call analyze code 2016-04-12 17:33:46 -07:00
Andrew Kelley be4df96e4b passing all tests 2016-04-12 13:30:52 -07:00