Josh Wolfe
2082588201
fix short circuit expressions
2015-12-12 17:33:45 -07:00
Josh Wolfe
64dd0b8d95
fix a + b + c and similar
...
fix || and &&
closes #17
2015-12-12 17:07:43 -07:00
Andrew Kelley
ac630d354d
std: print_str no longer requires length argument
...
add explicit casting support from array to string
2015-12-12 02:05:08 -07:00
Andrew Kelley
a10277bd94
prepare codebase for struct and string support
...
parsing code for structs, strings, and c string literals
partial semantic analyzing code for structs, strings, and c string literals
2015-12-12 00:10:37 -07:00
Andrew Kelley
d697404f64
hello world working without libc
2015-12-11 03:55:26 -07:00
Andrew Kelley
15ba5bc54e
provide std.zig and add it to import paths
2015-12-10 17:42:47 -07:00
Andrew Kelley
0dbee2300e
add inline assembly support
2015-12-10 15:34:38 -07:00
Andrew Kelley
dfda85e870
ability to call external variadic functions
2015-12-09 01:03:04 -07:00
Andrew Kelley
358d699fa9
add test for arrays
2015-12-08 15:46:36 -07:00
Andrew Kelley
e8550814c5
support assigning to arrays
2015-12-08 15:31:43 -07:00
Andrew Kelley
75efc31329
add array access syntax
2015-12-08 14:15:34 -07:00
Josh Wolfe
94e61287e7
let is now a statement, not an expression
2015-12-06 23:49:20 -07:00
Josh Wolfe
66e3aa0910
initialize mutable variables to zero
2015-12-06 23:33:10 -07:00
Andrew Kelley
3c3be10a60
add mutable local variables
2015-12-06 23:09:46 -07:00
Andrew Kelley
daa3b6bfa3
add unused label error
2015-12-05 21:08:20 -07:00
Andrew Kelley
f49e857b9b
run_tests supports --reverse arg
2015-12-04 23:04:49 -07:00
Andrew Kelley
c7615c1a80
error for extern function with void parameter
2015-12-04 14:33:57 -07:00
Josh Wolfe
174e58a05f
test for void parameters
2015-12-03 14:33:13 -07:00
Josh Wolfe
137fe99258
test for separate scopes not colliding
2015-12-03 13:26:49 -07:00
Josh Wolfe
09a78d6235
can't declare unreachable variables
2015-12-03 12:38:28 -07:00
Josh Wolfe
90565a5109
correkt spelling error
2015-12-03 12:25:27 -07:00
Josh Wolfe
22fccdbb0d
tests for bool stuff
2015-12-03 12:19:28 -07:00
Josh Wolfe
0c2cc9d2cf
tests for local variables
2015-12-03 11:06:05 -07:00
Andrew Kelley
f8ca6c70c7
add labels and goto
2015-12-03 00:47:35 -07:00
Andrew Kelley
e94681b961
add test for undeclared identifier error
2015-12-02 00:59:58 -07:00
Andrew Kelley
370de7386c
fix parameter access and thus shared library example
2015-12-02 00:53:57 -07:00
Andrew Kelley
08a2311efd
support if conditionals
2015-12-01 21:19:38 -07:00
Josh Wolfe
1ed926c321
implicit void statements and all tests pass with type checking
2015-12-01 15:54:46 -07:00
Josh Wolfe
c6a9ab107b
string literals have type *const u8
2015-12-01 14:41:03 -07:00
Andrew Kelley
dfb6682089
add test for bad import
2015-12-01 02:29:21 -07:00
Andrew Kelley
58e375d0a1
support multiple files
2015-12-01 02:08:58 -07:00
Andrew Kelley
29f24e3c50
add --color cli arg to override tty detection
2015-12-01 01:06:10 -07:00
Andrew Kelley
257cf09472
colored error messages that tell the source file
2015-12-01 00:50:11 -07:00
Andrew Kelley
55b8472374
refactor code to prepare for multiple files
...
verbose compiler output is now behind --verbose flag
2015-11-30 20:00:39 -07:00
Andrew Kelley
020f854f6f
add bad version string test case
2015-11-30 02:14:54 -07:00
Andrew Kelley
cb4773ce29
add root export declaration which is overridable by command line options
2015-11-27 21:24:47 -07:00
Andrew Kelley
4cc95174a7
add tests for compile errors
2015-11-27 18:55:06 -07:00
Andrew Kelley
4068897b6b
rename standalone.cpp to run_tests.cpp
2015-11-27 17:11:03 -07:00
Andrew Kelley
024052b448
add pub and export visibility modifiers and optimization
2015-11-27 15:46:06 -07:00
Andrew Kelley
9ca9a2c554
allow empty function and return with no expression
2015-11-27 10:52:31 -07:00
Andrew Kelley
821907317e
support C-style comments, plus nesting
2015-11-27 00:40:26 -07:00
Andrew Kelley
4060ae93fb
call ld with correct -dynamic-linker argument
...
It looks like Debian/Ubuntu are doing it correctly.
See https://sourceware.org/glibc/wiki/ABIList
NixOS has a clang patch which disables adding the -dynamic-linker
argument to ld in order to ensure "purity" - that is - that all paths
are in /nix/store/*.
See 6b1651928e/pkgs/development/compilers/llvm/3.7/clang/purity.patch
So, I changed the environment variable to ZIG_NATIVE_DYNAMIC_LINKER and allow
it to be set to blank. And it only matters when building for the native target,
since you might want to build for other targets without modifying your
environment.
closes #1
2015-11-26 23:43:29 -07:00
Andrew Kelley
763ce1c485
add tests
2015-11-26 01:29:52 -07:00
Andrew Kelley
09f68c7c33
support linker directives
...
now you can depend on libc in zig language instead of it being
hardcoded in the compiler.
2015-11-24 23:44:41 -07:00
Andrew Kelley
fefbee166d
hello world example working
2015-11-24 13:51:36 -07:00
Andrew Kelley
925c805d4b
add unreachable expression
...
now creating .o file from hello.zig correctly
2015-11-24 13:37:14 -07:00
Andrew Kelley
c2e5d50027
write object file and fix void return type
2015-11-24 13:00:38 -07:00
Andrew Kelley
4bbc074dd7
hello world IR code looks good
2015-11-24 02:43:45 -07:00
Andrew Kelley
7d22a89eec
partial hello world codegen
2015-11-24 00:35:28 -07:00
Andrew Kelley
174baa49bd
progress toward more complex parser gen
2015-11-04 17:15:46 -07:00
Andrew Kelley
303823b6b8
building part of the hello world AST
2015-11-02 03:39:36 -07:00
Andrew Kelley
34f8d80eac
tokenizing hello.zig
2015-11-01 22:21:33 -07:00
Andrew Kelley
1d554f3161
input output
2015-08-05 15:46:40 -07:00