Commit Graph

3800 Commits (bc3e99c5e5a5f054e57a7056a64ff08762d42e9f)

Author SHA1 Message Date
Josh Wolfe c6a9ab107b string literals have type *const u8 2015-12-01 14:41:03 -07:00
Josh Wolfe ab327344b6 merge conflicts 2015-12-01 10:44:30 -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 31cf43de54 analyze looks for root export decl only in the root source file 2015-11-30 23:06:29 -07:00
Josh Wolfe 9278dbedd5 Merge remote-tracking branch 'origin/master' into type-checking 2015-11-30 22:54:00 -07:00
Andrew Kelley cd68969115 closer to multiple files working 2015-11-30 22:53:37 -07:00
Josh Wolfe 18cfcfe44f fix ast printer names 2015-11-30 22:40:52 -07:00
Josh Wolfe 00f4c05784 merge conflicts 2015-11-30 22:12:21 -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
Josh Wolfe abbc395701 implement basics of type checking 2015-11-30 18:43:45 -07:00
Josh Wolfe ef482ece7c no more TypeId. use g->builtin_types. 2015-11-30 15:36:58 -07:00
Andrew Kelley b77c423f77 all LLVM C++ API contained to one file 2015-11-30 14:43:23 -07:00
Josh Wolfe f36255b670 Merge branch 'master' of github.com:andrewrk/zig 2015-11-30 14:13:04 -07:00
Josh Wolfe 757ebefd60 untangle analyze_node into a stricter call graph 2015-11-30 14:13:00 -07:00
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