Andrew Kelley
83a59c4d07
fix evaluating generic functions in wrong context
2016-04-13 12:28:07 -07:00
Andrew Kelley
aa89fd3b3e
eval: ability to eval more things
2016-04-12 09:35:33 -07:00
Andrew Kelley
fa605485ea
eval: support more node types
2016-04-12 09:35:33 -07:00
Andrew Kelley
0683bd8bf6
fix crash when casting undefined to slice
...
also fix crash having to do with runtime allocated stack memory
2016-04-10 12:04:25 -07:00
Andrew Kelley
707131e37b
goto: jumping out of scope runs defers
...
see #44
2016-04-09 17:26:04 -07:00
Andrew Kelley
7eb6af1d3e
add @breakpoint()
2016-04-09 16:52:52 -07:00
Andrew Kelley
21eca6478f
re-introduce goto
...
see #44
2016-04-09 16:41:17 -07:00
Andrew Kelley
7026bed462
fix debug symbols regression after llvm 3.8.0
2016-04-09 14:21:55 -07:00
Andrew Kelley
7a05e18efb
implement @err_name builtin function
2016-04-09 08:55:53 -07:00
Andrew Kelley
491e3cb5c5
fix crash when passing empty string to function
2016-04-08 17:09:07 -07:00
Andrew Kelley
5dbc21b511
update cat example, refactor std
...
partial implementation of @err_name
2016-04-08 16:21:30 -07:00
Andrew Kelley
67152f7294
support simple generic functions
2016-04-06 12:58:54 -07:00
Andrew Kelley
76e1541803
update to llvm 3.8.0
2016-03-08 18:56:14 -07:00
Andrew Kelley
5df091fea9
c_void is provided outside of C imports
2016-03-01 15:26:41 -07:00
Andrew Kelley
f1d338194e
rewrite how importing works
...
* Introduce the concept of packages. Closes #3
* Add support for error notes.
* Introduce `@import` and `@c_import` builtin functions and
remove the `import` and `c_import` top level declarations.
* Introduce the `use` top level declaration.
* Add `--check-unused` parameter to perform semantic
analysis and codegen on all top level declarations, not
just exported ones and ones referenced by exported ones.
* Delete the root export node and add `--library` argument.
2016-03-01 03:13:40 -07:00
Andrew Kelley
58c13aa949
rename 'environ' to 'env_type'
...
environ appears to clash with another symbol in mingw land
2016-02-16 20:03:41 -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
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
5771bd805e
respect link order in source code
2016-02-13 23:03:16 -07:00
Andrew Kelley
c8376af92d
add @ctz, @clz and compiler_rt implementation
2016-02-13 12:50:13 -07:00
Andrew Kelley
4e3f6de027
c integer size takes into account architecture and OS
2016-02-12 12:07:11 -07:00
Andrew Kelley
0c1ce21f7d
add @compile_var("environ")
2016-02-12 01:23:06 -07:00
Andrew Kelley
2dc4ac0e21
add @compile_var("os") and @compile_var("arch")
2016-02-11 18:33:04 -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
1ff2edf67e
add "targets" command to list architectures, oses, abis
2016-02-10 15:41:50 -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
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
42fe4e3cc8
remove ptr field access of arrays
...
use &array[0] instead
2016-02-07 15:43:19 -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
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
4208435f66
add nonnull to functions with pointer return type
2016-02-05 14:58:18 -07:00
Andrew Kelley
2ee80858b4
codegen: use gen_index for nonnull attribute
...
also put nonnull on sret params
closes #82
2016-02-05 14:48:23 -07:00
realazthat
54fbe7560e
Added code for generating nonnull attributes
2016-02-05 16:29:26 -05:00
Andrew Kelley
663a1d0cd5
switch trap in debug mode when no prong found
2016-02-04 17:43:57 -07:00
Andrew Kelley
093e0d1bb0
support variable in switch expression prongs
...
See #43
2016-02-04 17:21:08 -07:00
Andrew Kelley
a4cba900e5
no namespace required when switching on enum
...
See #43
2016-02-04 16:09:06 -07:00
Andrew Kelley
fcbeaddbb2
codegen: fix switch expressions for enums with payloads
2016-02-04 15:26:27 -07:00
Andrew Kelley
b87d0abefe
fix debug info for bool type
2016-02-04 14:02:37 -07:00
Andrew Kelley
25e74cb385
ability to explicitly cast bool to int
2016-02-04 12:59:06 -07:00
Andrew Kelley
32642ac9cb
for loop supports break and continue
...
See #51
2016-02-04 02:49:12 -07:00
Andrew Kelley
fdadab40c6
implement constant values for enums with payload
2016-02-04 02:11:50 -07:00