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