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 https://github.com/NixOS/nixpkgs/blob/6b1651928e943bdb0d69a20764fdaae294e92dc1/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 |
|
Andrew Kelley
|
1b24f4c73c
|
parsing hello.zig example with recursive descent
that was easy
|
2015-11-23 21:30:12 -07:00 |
|
Andrew Kelley
|
6b911f1e94
|
delete parser generator. let's try recursive descent
|
2015-11-23 19:21:52 -07:00 |
|
Andrew Kelley
|
5b663ddbb2
|
grammar doesn't need the option() construct
|
2015-11-23 19:19:38 -07:00 |
|
Andrew Kelley
|
4236b85c72
|
parser generator supports a simple OR
|
2015-11-07 04:50:48 -07:00 |
|
Andrew Kelley
|
ae0e9685c6
|
parser generator supports sub rules
|
2015-11-06 23:59:40 -07:00 |
|