Commit Graph

4033 Commits (280187031a68c577e84c72add037271153d27c62)

Author SHA1 Message Date
Andrew Kelley 4ccb98bdce analyze no longer depends on llvm C++ API 2015-11-30 14:10:07 -07:00
Josh Wolfe 014711c57e rename variable 2015-11-30 09:38:31 -07:00
Josh Wolfe 9e0ff6faa2 factor analysis code out of codegen 2015-11-30 09:14:58 -07:00
Andrew Kelley 020f854f6f add bad version string test case 2015-11-30 02:14:54 -07:00
Andrew Kelley 8f0f318c39 add directive to specify root export version 2015-11-30 02:12:20 -07:00
Andrew Kelley ac0c5a3707 minor parser refactoring 2015-11-30 01:26:01 -07:00
Andrew Kelley 9b477230e0 ability to generate shared library and h file 2015-11-29 18:02:20 -07:00
Josh Wolfe f4721857ed inline PrimaryExpr ast node 2015-11-29 17:16:32 -07:00
Andrew Kelley 63d4e3ce1e add missing panic for shared library output 2015-11-29 15:10:06 -07:00
Josh Wolfe ceb2d44bfc merge arithmetic binary operator gen functions 2015-11-29 15:08:42 -07:00
Andrew Kelley a008a81eef codegen: fix wrong node type 2015-11-29 14:59:41 -07:00
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