Commit Graph

172 Commits

Author SHA1 Message Date
Josh Wolfe
30442ed893 merge conflicts 2015-11-29 14:52:49 -07:00
Josh Wolfe
9a014b52cc flatten expression ast to hide operator precedence 2015-11-29 14:46:05 -07:00
Andrew Kelley
c1d77f2a23 function call names are expressions 2015-11-29 14:39:11 -07:00
Andrew Kelley
918e7641fc rename unary expression to prefix op expression 2015-11-29 14:00:34 -07:00
Andrew Kelley
a7555c58d9 add unary expression 2015-11-29 13:37:55 -07:00
Andrew Kelley
4466a4533c parser: add missing static 2015-11-29 12:00:34 -07:00
Andrew Kelley
855d51840d remove LLVMZigTargetMachineEmitToFile
The llvm C API provided function is adequate.
2015-11-29 11:12:40 -07:00
Andrew Kelley
e5d1f0eea5 parse and codegen for math expressions 2015-11-29 02:43:05 -07:00
Andrew Kelley
f6529341a2 ability to export .o file 2015-11-27 22:13:39 -07:00
Andrew Kelley
03f9922734 remove unnecessary codegen llvm initialization 2015-11-27 21:49:04 -07:00
Andrew Kelley
c810a0b381 more vim doc files 2015-11-27 21:48:58 -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
3a1defa67b figure out integers
After researching int_least8_t, int_fast8_t, and friends,
it seems that rust's idea of only having fixed integer
types is the way to go.
2015-11-27 17:07:23 -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
Josh Wolfe
bd5cb3e50e add hook for environment variable ZIG_DEBIAN_HACK. see #1. 2015-11-26 14:42:46 -07:00
Josh Wolfe
00a7936c9f more readable integer constant 2015-11-26 02:48:06 -07:00
Andrew Kelley
763ce1c485 add tests 2015-11-26 01:29:52 -07:00
Andrew Kelley
893e152dab no errors during codegen
also, fix function calling and allow forward declarations
2015-11-25 18:17:35 -07:00
Andrew Kelley
6f460de02d parser: force ast printer to be correct 2015-11-25 16:57:34 -07:00
Josh Wolfe
311fd67083 inline AstNodeStatementExpression 2015-11-25 16:43:16 -07:00
Andrew Kelley
22421447fb fix the remaining TODOs in the source 2015-11-25 16:36:03 -07:00
Josh Wolfe
e48717e091 clean up noreturn stuff 2015-11-25 15:58:32 -07:00
Andrew Kelley
86a0ae8699 assert(false) -> zig_unreachable() 2015-11-25 15:48:57 -07:00
Josh Wolfe
e579011a6e inline AstNodeStatement 2015-11-25 15:45:10 -07:00
Andrew Kelley
079ed9e356 parser: more AST printing code for debug purposes 2015-11-25 15:40:05 -07:00
Andrew Kelley
a600df073a fix invalid memory write 2015-11-25 15:17:19 -07:00
Josh Wolfe
0b59afec56 fix typo 2015-11-25 12:19:10 -07:00
Andrew Kelley
c3458543c9 build: fix findllvm script 2015-11-25 11:37:43 -07:00
Andrew Kelley
a1771c76c3 build: improve findllvm script 2015-11-25 11:23:25 -07:00
Andrew Kelley
4fe366dfa6 cleanup 2015-11-24 23:56:35 -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
afac1a0123 simple vim syntax highlighting 2015-11-24 23:44:08 -07:00
Andrew Kelley
505317a12f debug/release mode 2015-11-24 22:32:26 -07:00
Andrew Kelley
cda10f0577 only \n and ' ' are valid whitespace characters 2015-11-24 20:37:53 -07:00
Andrew Kelley
c7f4cadbc7 debug symbols implemented; debugging with gdb works 2015-11-24 19:54:38 -07:00
Andrew Kelley
ca836191e1 debug information for functions 2015-11-24 19:07:33 -07:00
Andrew Kelley
baf5167171 fix not using subtarget features 2015-11-24 15:01:37 -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
e112818e25 codegen: fix param type of const strings 2015-11-24 03:06:10 -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
3b4a2afb65 semantic analysis checks for multiple definitions of functions 2015-11-23 22:47:25 -07:00
Andrew Kelley
a22bc8d20a more detailed AST inspection 2015-11-23 21:45:10 -07:00