Andrew Kelley
0e92b44043
prepend underscore to non exported functions
...
to prevent symbol collisions
2016-02-16 17:06:19 -07:00
Andrew Kelley
77ffb5075b
update bootstrap to work for macos too
...
* Directives can have arbitrary expressions as parameters
* Fix switch statement not generating code sometimes
* Rename "main" fn in bootstrap.zig to "zig_user_main" to
avoid name collisions
* codegen: fix badref when unreachable is last thing in an
expression
* support #condition directive on exported functions
2016-02-16 16:41:56 -07:00
Andrew Kelley
91101f08c2
linking on darwin: provide builtins and -arch
2016-02-15 21:59:20 -07:00
Andrew Kelley
4c30216d1c
add missing system library to darwin linker job
2016-02-15 21:23:03 -07:00
Andrew Kelley
984e7d6cc7
first pass at linking on macos
2016-02-15 20:56:52 -07:00
Andrew Kelley
f580c7fa43
handle libc include path and libc lib path differently
2016-02-15 16:52:37 -07:00
Andrew Kelley
c6bf9c6942
MacOS has the same int sizes as Linux
...
Source: https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/64bitPorting/transition/transition.html
2016-02-15 16:26:33 -07:00
Andrew Kelley
baf889c879
parseh: fix __cdecl causing a fn ptr to be double ptr
2016-02-14 16:14:30 -07:00
Andrew Kelley
87922bfae0
parseh: ZIG_PARSEH_CFLAGS -> ZIG_NATIVE_PARSEH_CFLAGS
2016-02-13 23:04:12 -07:00
Andrew Kelley
fb8700de6c
parseh: support attributed types
2016-02-13 23:03:59 -07:00
Andrew Kelley
5032854aec
parseh: more specific warning for different calling conventions
2016-02-13 23:03:39 -07:00
Andrew Kelley
5771bd805e
respect link order in source code
2016-02-13 23:03:16 -07:00
Andrew Kelley
1141e4f5b2
if any c imports fail, don't emit undefined identifier errors
2016-02-13 23:02:45 -07:00
Andrew Kelley
fe95a227c8
add windows C int sizes
2016-02-13 16:29:30 -07:00
Andrew Kelley
03b51a753a
a = b % c uses the types of b and c instead of a
2016-02-13 15:03:19 -07:00
Andrew Kelley
8d510c699a
parseh: fix branching on undefined memory
2016-02-13 13:25:55 -07:00
Andrew Kelley
c8376af92d
add @ctz, @clz and compiler_rt implementation
2016-02-13 12:50:13 -07:00
Andrew Kelley
a5aeb7381f
if statement children nodes know if they're compiled out
2016-02-12 16:00:50 -07:00
Andrew Kelley
b8a1cb299e
avoid codegening functions never called from conditional compilation
2016-02-12 15:51:12 -07:00
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
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
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
aa504275f0
don't create debug type for void arrays
2016-02-09 20:38:42 -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
Andrew Kelley
430d0dfcb2
support static linking against libc
2016-02-08 00:50:51 -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