Commit Graph

595 Commits (1d4c66b56beb7b2da6bafbab6871691641c8da0b)

Author SHA1 Message Date
Andrew Kelley 9bf9be9937 fix build on GCC 2016-02-12 14:07:12 -07:00
Andrew Kelley 4e3f6de027 c integer size takes into account architecture and OS 2016-02-12 12:07:11 -07:00
Andrew Kelley 7828456b30 std: delete malloc and free
later we'll add a full featured allocator instead of this
2016-02-12 02:23:22 -07:00
Andrew Kelley 592210a173 i386 support
closes #115

Thanks to Seo Sanghyeon for the port code.
2016-02-12 02:04:46 -07:00
Andrew Kelley 0c1ce21f7d add @compile_var("environ") 2016-02-12 01:23:06 -07:00
Andrew Kelley 51b2621e62 Merge pull request #126 from srgpqt/master
fix undefined LONG_LONG_MAX compilation error
2016-02-12 00:44:55 -07:00
Serge Paquet 633b01de23 fix undefined LONG_LONG_MAX compilation error 2016-02-11 22:13:54 -05:00
Andrew Kelley 2dc4ac0e21 add @compile_var("os") and @compile_var("arch") 2016-02-11 18:33:04 -07:00
Andrew Kelley 08eb19456b add compile error for missing enumeration value in switch 2016-02-11 16:15:08 -07:00
Andrew Kelley a180168871 fix division by 0 crashing compiler
closes #99
closes #124

thanks to Michael Patraw for submitting a patch for this.
2016-02-11 15:02:22 -07:00
Andrew Kelley 2bf6c28bc3 ability to cross compile
hello_libc.zig can produce a windows build
2016-02-11 01:33:27 -07:00
Andrew Kelley 54a8b6a110 cleanup target data organization 2016-02-10 16:58:15 -07:00
Andrew Kelley b642604691 targets command shows which ones are native 2016-02-10 16:35:07 -07:00
Andrew Kelley 1ff2edf67e add "targets" command to list architectures, oses, abis 2016-02-10 15:41:50 -07:00
Andrew Kelley b988017547 add link to intro in readme
closes #119
2016-02-09 22:31:49 -07:00
Andrew Kelley aa504275f0 don't create debug type for void arrays 2016-02-09 20:38:42 -07:00
Andrew Kelley 0c7f33456e minor readme rewording 2016-02-09 19:26:15 -07:00
Andrew Kelley d8f6388b63 if statements can be const expr evaluated
also introduce error for unnecessary if statement
but if the condition depends on a compile variable, then
the if statement is OK
2016-02-09 18:53:28 -07:00
Andrew Kelley f45c374664 fix -dynamic-linker arg to ld when not overridden 2016-02-09 16:55:23 -07:00
Andrew Kelley 5bdcdd1669 @const_eval returns poison value for type when it fails
resulting in fewer redundant error messages
2016-02-09 10:02:31 -07:00
Andrew Kelley 207862647c std: fix parse_u64 implementation and add test
also codegen implement comparision with pure errors
2016-02-09 09:51:25 -07:00
Andrew Kelley 1d92700d08 fix build with GCC 2016-02-09 08:46:55 -07:00
Andrew Kelley e18170ee0b support overriding the dynamic linker argument to ld 2016-02-08 22:11:09 -07:00
Josh Wolfe 62a689f7f5 fix some of the ubuntu build trouble 2016-02-08 14:34:51 -07:00
Andrew Kelley 430d0dfcb2 support static linking against libc 2016-02-08 00:50:51 -07:00
Andrew Kelley ea3bd58563 add link to tetris example 2016-02-07 22:40:58 -07:00
Andrew Kelley 96e7deadd4 parseh: tiny performance improvement 2016-02-07 19:07:41 -07:00
Andrew Kelley 87cdbb6c25 improve performance for get_fn_type 2016-02-07 18:32:19 -07:00
Andrew Kelley 6b3ce918db array.len generates a constant number literal expression 2016-02-07 15:52:52 -07:00
Andrew Kelley 42fe4e3cc8 remove ptr field access of arrays
use &array[0] instead
2016-02-07 15:43:19 -07:00
Andrew Kelley 36cf9f0c72 error for non const expr in array size outside fn 2016-02-07 15:16:36 -07:00
Andrew Kelley 26ea20d88f implement @const_eval
closes #73
2016-02-07 15:11:20 -07:00
Andrew Kelley 049e9e5819 add debug info for loop variables
closes #112
2016-02-07 12:58:09 -07:00
Andrew Kelley 94ed9f622a blocks with one statement pass constant expression eval 2016-02-07 12:38:51 -07:00
Andrew Kelley 694cfff23f fix a bogus call to bignum_normalize causing assertion failure 2016-02-07 03:49:25 -07:00
Andrew Kelley 7b00ed362c fix debug type of ptr and len fields of slices 2016-02-07 02:20:36 -07:00
Andrew Kelley 642b38a577 add debug info for slices
closes #47
2016-02-07 01:53:38 -07:00
Andrew Kelley 7f6b0ba6ea ability to explicitly cast maybe pointers to each other 2016-02-07 01:25:04 -07:00
Andrew Kelley 4174134108 unreachable return type can cast to any other return type 2016-02-07 00:23:05 -07:00
Andrew Kelley fc31096519 parseh: fix not properly demoting structs to typedefs 2016-02-07 00:18:24 -07:00
Andrew Kelley f19fa590e5 parseh understands simple string literal macros 2016-02-06 21:44:22 -07:00
Andrew Kelley 4c8f26e9f6 std: remove auto flushing of stderr. use printf 2016-02-06 19:48:42 -07:00
Andrew Kelley c7dc56f737 add test for ?? return and add const expr eval for ? prefix op 2016-02-06 19:35:33 -07:00
Andrew Kelley c4f5a00253 rhs of ?? and %% can be any expression 2016-02-06 19:28:11 -07:00
Andrew Kelley 73727bd1c5 parser recognizes %return in a prefix op expression
also defer only valid at statement level now

see #110
2016-02-06 19:16:01 -07:00
Andrew Kelley 65a03c5859 implement %defer and ?defer
see #110
2016-02-06 16:36:49 -07:00
Andrew Kelley 34a7e6fdb3 codegen: return respects unconditional defer
See #110
2016-02-06 01:18:39 -07:00
Andrew Kelley ec33e5a638 simple unconditional defer support
See #110
2016-02-06 01:00:29 -07:00
Andrew Kelley 6a2ede5a6e parsing code for defer and more
* disable goto and label support see #44
 * refactor the way block contexts work
2016-02-05 23:20:34 -07:00
Andrew Kelley 4339d55562 update for loop syntax
it matches more closely the %% binary operator syntax

See #51
2016-02-05 17:15:19 -07:00