Commit Graph

375 Commits (363606d87b3f45c7f62969f85062e2a7b1b4b5dc)

Author SHA1 Message Date
Andrew Kelley 25a89e7a36 IR: compile time function evaluation 2016-12-04 23:52:43 -05:00
Andrew Kelley eb5693d91f IR: function call porting progress
also implemented container init
generics is still todo
2016-11-28 02:40:01 -05:00
Andrew Kelley a52ede6494 IR: support goto and labels 2016-11-26 23:16:38 -05:00
Andrew Kelley 84f7805029 IR: support import builtin function 2016-11-26 20:52:22 -05:00
Andrew Kelley 4619b5de06 IR: support inline switch 2016-11-26 15:38:07 -05:00
Andrew Kelley 697c768730 IR: support switch with range 2016-11-26 04:03:39 -05:00
Andrew Kelley 0c22358cc1 IR: generating a switch statement 2016-11-24 02:44:03 -05:00
Andrew Kelley a2257e4b81 IR: implement setFnVisible builtin 2016-11-21 15:36:25 -05:00
Andrew Kelley bf7cde62c5 IR: support setDebugSafety builtin function 2016-11-18 20:57:27 -05:00
Andrew Kelley c8333d0cc9 add concept of inline for, inline while, inline var 2016-11-03 14:13:57 -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 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 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 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 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 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 e397ea43c0 tests: correct test name 2016-09-19 20:19:02 -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 3f05fdc8e8 tests: use a more robust path to self_hosted.zig
closes #184
2016-09-14 03:10:56 -04:00
Andrew Kelley f1761632da darwin compat fixups
- delete commented out code
 - delete redundant check for missing
   mmacosx-version-min/maxdir
 - add TODO comment in std library
 - rename 'os' to 'self' in io.zig
 - `openSelfExe` aborts on darwin instead of compile error
 - only allow warnings on the one parseh test that has
   `#include <stdint.h>`.
2016-09-14 02:47:16 -04:00
alter cf9b21c09f MacOSX compatibility
- Implemented some syscall for MacOSX
- tested on : El Capitan 10.11 x86_64
- make self hosted test run on macosx
- modified run_test so it does not fail when parseh throws
  warnings (most of them are related to buildin types from
  gcc that arent defined in header files and unions)
- making -mmacosx-version-min and -mios-version-min works like
  gcc (command line paramers have precedence over enviroment variables)
2016-09-14 02:46:02 -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 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 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
Andrew Kelley 9193a3cdad stronger static eval recursive test 2016-08-30 16:06:02 -07:00
Andrew Kelley 6e6d138c2f add ability to explicitly cast enum with no payload to int 2016-08-29 22:14:10 -07:00
Andrew Kelley 651dc31247 implement null as a literal type 2016-08-29 22:14:09 -07:00
Andrew Kelley 1f7ec741fa implement `?return` expression 2016-08-29 22:14:09 -07:00
Andrew Kelley 0fbb9e09ea fix crash when calling method on slice 2016-08-16 23:24:33 -07:00
Andrew Kelley a2ac06dcd5 std: replace print_u64/i64 with printInt 2016-08-16 22:59:32 -07:00
Andrew Kelley 37d167f6e0 std: conform to style guidelines 2016-08-16 22:42:50 -07:00
Andrew Kelley 2ed949a6ae add zeroes value 2016-08-08 20:43:38 -07:00
Andrew Kelley 0d5ecc4312 ability to have a return type of 'type' 2016-08-07 20:08:37 -07:00
Andrew Kelley 275410dc33 implement multiline C string syntax 2016-08-04 23:10:24 -07:00
Andrew Kelley d0b11af2bd new multiline string syntax
This patch also moves a bunch of the parser code into the tokenizer.

Closes #162.
2016-08-04 22:52:38 -07:00
Andrew Kelley 1fa0cabf9d remove multiline comments
closes #161
2016-07-27 23:26:12 -07:00
Andrew Kelley 8552d7fd19 explicit wrapping integer operations
instead of wrapping integer types

closes #159
2016-07-27 23:08:27 -07:00
Andrew Kelley 06c4b35eb1 std: improve rand implementation and API 2016-07-26 23:51:58 -07:00
Andrew Kelley bc81ddfea6 unsigned integers for sizes of things
Closes #62.
2016-07-26 20:40:11 -07:00
Andrew Kelley 78d4fb20c4 inline parameters
This replaces the current generic syntax for functions and replaces
it with the concept of inline parameters.

This paves the way for the "all structs anonymous" proposal.

Closes #151.
2016-07-25 22:55:15 -07:00