Commit Graph

254 Commits (master)

Author SHA1 Message Date
Andrew Kelley 5c988cc722 readme: update macos installation instructions 2018-01-03 14:16:20 -05:00
Andrew Kelley 6bfaf262d5 Merge branch 'master' into llvm6 2017-12-26 21:44:08 -05:00
Andrew Kelley 6fece14cfb self-hosted: build against zig_llvm and embedded LLD
Now the self-hosted compiler re-uses the same C++ code for interfacing
with LLVM as the C++ code.
It also links against the same LLD library files.
2017-12-26 19:44:08 -05:00
Andrew Kelley fe66046283 Merge remote-tracking branch 'origin/master' into llvm6 2017-12-23 12:00:25 -05:00
Andrew Kelley 39c7bd24e4 port most of main.cpp to self hosted compiler 2017-12-23 00:57:56 -05:00
Andrew Kelley 94ec2190f8 update to llvm master 2017-11-02 21:54:24 -04:00
Andrew Kelley 3c3af4b332 fix docs link 2017-10-17 16:05:46 -04:00
Andrew Kelley a27c0dd591 remove unsupported targets from readme
See #438
2017-10-17 14:15:50 -04:00
Andrew Kelley 8d3eaab871 implement std.os.ChildProcess for windows 2017-10-14 15:32:18 -04:00
Andrew Kelley aa78827db2 add module flag to emit CodeView for COFF object files
see #516
2017-10-10 18:04:02 -04:00
Andrew Kelley 08ee69dac3 implement os.path.dirname for windows 2017-10-08 21:43:43 -04:00
Andrew Kelley 968ff38cad better support table 2017-10-08 21:42:59 -04:00
Andrew Kelley 5c4504e005 disable /W4 on MSVC 2017-09-30 14:00:27 -04:00
Andrew Kelley c03a764147 README: we support x86_64 macos 2017-09-27 21:03:44 -04:00
Andrew Kelley 79400bfdfd fix docs 2017-09-25 15:04:52 -04:00
Andrew Kelley 10fa51a085 README: adds for contributors we want 2017-09-21 15:39:25 -04:00
Andrew Kelley 8cb6694752 README: macos instructions: suggest running tests 2017-09-18 10:51:12 -04:00
Andrew Kelley 365cb130da README: macos instructions: simplify 2017-09-18 10:50:27 -04:00
Andrew Kelley 67e608382a add macos instructions to readme 2017-09-18 10:47:37 -04:00
Andrew Kelley 9dfaf3166d README: add notepad++ syntax highlighting project
closes #442
2017-09-07 17:31:26 -04:00
Andrew Kelley 234030c37a update build to look for llvm 5.0 2017-08-26 00:34:40 -04:00
Andrew Kelley a0223e513f add zig-compiler-completions to Related Projects 2017-08-25 20:14:33 -04:00
Andrew Kelley f248ef5f3f move zen of zig to a sub command 2017-08-20 04:25:42 -04:00
Andrew Kelley 8e19bdfc79 zen update 2017-08-20 03:24:28 -04:00
Andrew Kelley caaeab9882 add setEvalBranchQuota builtin function 2017-08-19 17:10:29 -04:00
Andrew Kelley dea90e20e6 fix tokenization error pointing to wrong character
closes #401
2017-08-14 13:28:42 -04:00
Andrew Kelley 9ca798bc75 zen update 2017-08-08 15:49:12 -04:00
Andrew Kelley 221e5b188c README: add the zen of zig 2017-08-07 19:11:55 -04:00
Marc Tiehuis 27e4893ee5 Add Visual Studio Code extension link 2017-07-15 21:36:47 +12:00
Andrew Kelley e64f0971fc add appveyor integration testing 2017-06-03 12:47:23 -04:00
Andrew Kelley 304cfb7122 move docs to ziglang.org 2017-05-08 00:13:54 -04:00
Andrew Kelley b7579f5f7d update README 2017-05-07 14:12:38 -04:00
Andrew Kelley 1691074b4b add no-elim-base-pointer to __zig_fail function
fixes missing frame for unwrapping an error

closes #345
2017-04-27 18:40:17 -04:00
Andrew Kelley 4cc2ea1421 update travis badge to new url 2017-04-25 01:26:37 -04:00
Andrew Kelley a5c509c94f readme update 2017-04-24 17:53:00 -04:00
Andrew Kelley 05198e0321 readme update 2017-04-24 17:04:52 -04:00
Andrew Kelley d72fb2abad update README 2017-04-24 16:17:28 -04:00
Andrew Kelley 3a137c6ff0 add Travis CI integration 2017-04-21 13:27:11 -04:00
Andrew Kelley 8654bc1810 delete test_artifacts directory when tests complete
* add std.os.deleteTree
 * add std.os.deleteDir
 * add std.os.page_size
 * add std.os API for iterating over directories
 * refactor duplication in build.zig
 * update documentation on how to run tests
2017-04-20 02:26:36 -04:00
Andrew Kelley a6bd3d8ca2 move emacs/vim files to separate repos 2017-04-13 05:27:59 -04:00
Andrew Kelley 3ca027ca82 first pass at zig build system
* `zig build --export [obj|lib|exe]` changed to `zig build_obj`,
   `zig build_lib` and `zig build_exe` respectively.
 * `--name` parameter is optional when it can be inferred from the
   root source filename. closes #207
 * `zig build` now looks for `build.zig` which interacts with
   `std.build.Builder` to describe the targets, and then the zig
   build system prints TODO: build these targets. See #204
 * add `@bitcast` which is mainly used for pointer reinterpret
   casting and make explicit casting not do pointer reinterpretation.
   Closes #290
 * fix debug info for byval parameters
 * sort command line help options
 * `std.debug.panic` supports format string printing
 * add `std.mem.IncrementingAllocator`
 * fix const ptr to a variable with data changing at runtime.
   closes #289
2017-03-31 05:55:41 -04:00
Andrew Kelley cd31f875a6 update to llvm 4.0 2017-03-10 02:29:01 -05:00
Andrew Kelley c36b0fec8e README: more robust suggested configuration command
thanks to jabb from IRC
2017-02-24 16:10:11 -05:00
Andrew Kelley 12049aa43b zig logo in readme 2017-02-09 12:51:23 -05:00
Andrew Kelley eb00aa21f5 readme update 2017-01-31 13:26:53 -05:00
Andrew Kelley 0c22358cc1 IR: generating a switch statement 2016-11-24 02:44:03 -05:00
Andrew Kelley f2a5fe443c README: clarify build vs runtime dependencies 2016-09-05 16:36:21 -04:00
Andrew Kelley e8e2d84689 Merge branch 'llvm-3.9' 2016-09-05 16:19:20 -04:00
Wink Saville 92cebdb926 Fix email address of Email list 2016-09-05 12:03:32 -07:00
Wink Saville 5068716a9a Add Email list 2016-09-05 10:44:48 -07:00
Andrew Kelley 4e7effd3d3 port to llvm 3.9 2016-09-04 18:30:40 -07:00
Andrew Kelley 6ae6b5f5b5 add compile_err builtin 2016-05-14 18:54:37 -07:00
Andrew Kelley 65e0e85685 update README with website 2016-05-13 11:38:14 -07:00
Andrew Kelley b68aee4f34 we have generics now 2016-05-13 10:59:43 -07:00
Andrew Kelley 037283c3b3 build: link against libLLVM.so if available
readme: better instructions for finding native libc headers
2016-04-30 17:17:59 -07:00
Andrew Kelley da406cb112 build: add test coverage target 2016-04-23 09:57:38 -07:00
Andrew Kelley c899368a90 update readme 2016-04-14 11:36:35 -07:00
Andrew Kelley 1688ccb3dd update README 2016-04-14 11:34:46 -07:00
Andrew Kelley fddfc314d6 update readme 2016-04-09 17:39:12 -07:00
Andrew Kelley 5bae9ba086 README: update dependencies 2016-03-08 19:15:46 -07:00
Andrew Kelley fecbc91a6b update readme 2016-02-15 15:51:10 -07:00
Andrew Kelley c8376af92d add @ctz, @clz and compiler_rt implementation 2016-02-13 12:50:13 -07:00
Andrew Kelley 9bf9be9937 fix build on GCC 2016-02-12 14:07:12 -07:00
Andrew Kelley b988017547 add link to intro in readme
closes #119
2016-02-09 22:31:49 -07:00
Andrew Kelley 0c7f33456e minor readme rewording 2016-02-09 19:26:15 -07:00
Andrew Kelley 430d0dfcb2 support static linking against libc 2016-02-08 00:50:51 -07:00
Andrew Kelley 5f0a9a569e another planned feature complete 2016-02-05 00:13:37 -07:00
Andrew Kelley 7af59c76e4 build: fix libc path finding 2016-02-02 15:04:14 -07:00
Andrew Kelley c1b5518a65 roadmap item acheived enough to put in README 2016-01-31 23:40:56 -07:00
Andrew Kelley a09b505558 null pointer optimization for ?&T
this is necessary for the parseh change where all
pointers from .h files are maybe pointers.
2016-01-28 14:04:22 -07:00
Andrew Kelley 0278468479 upgrade to the libclang C++ API
c_import creates a tmp .h file and parses it with libclang,
reporting any errors found.

See #88
2016-01-27 00:01:49 -07:00
Andrew Kelley ac085a869d docs: update deps to llvm and clang 3.7.1 2016-01-26 18:11:18 -07:00
Andrew Kelley bc89614996 update README 2016-01-26 01:39:45 -07:00
Andrew Kelley a3e288ab5b implement compile time string concatenation
See #76
2016-01-25 21:56:29 -07:00
Andrew Kelley deb3586884 implement %% prefix operator
See #23

also make undefined constants use llvm undef value
2016-01-25 15:45:05 -07:00
Andrew Kelley c0dc0ca6c9 update README 2016-01-25 15:22:52 -07:00
Andrew Kelley 4c50606b9d refactor std to use for loop 2016-01-18 07:16:17 -07:00
Andrew Kelley 74b1665586 more readme formatting 2016-01-15 17:18:03 -07:00
Andrew Kelley 39c1348862 fix readme formatting 2016-01-15 17:15:42 -07:00
Andrew Kelley 8d60ffe314 solve the mystery of undefined reference error
big surprise, C++ is to blame
2016-01-15 17:12:26 -07:00
Andrew Kelley 5f9ecb8566 instead of 'as' to cast, call type as function 2016-01-14 02:52:33 -07:00
Andrew Kelley cb46d0b5b0 fix not adding builtin functions code 2016-01-11 20:44:10 -07:00
Andrew Kelley e1f498212c fix codegen for implicit maybe wrap 2016-01-08 02:52:27 -07:00
Andrew Kelley fcacc85b4e cleanup readme 2016-01-04 04:44:32 -07:00
Andrew Kelley 1f8e3871ee parse if maybe expression 2015-12-26 15:05:27 -07:00
Andrew Kelley 423ee0689b add implicit casting support 2015-12-15 17:11:57 -07:00
Andrew Kelley fe94ca8d10 readme: provide bash to get c dir 2015-12-15 13:06:42 -07:00
Andrew Kelley 1b1453293e readme: add note about discovering libc path 2015-12-15 13:02:02 -07:00
Andrew Kelley f5a3281877 when linking with libc use the C runtime library 2015-12-15 12:44:42 -07:00
Andrew Kelley 4c16eaa640 readme: update current status 2015-12-11 04:37:23 -07:00
Andrew Kelley f740268ab7 move roadmap to github issues 2015-12-11 04:25:10 -07:00
Andrew Kelley 0dbee2300e add inline assembly support 2015-12-10 15:34:38 -07:00
Andrew Kelley 3e8a98fa61 add language reference documentation 2015-12-09 15:20:31 -07:00
Andrew Kelley 367ea908bd readme: update int types 2015-12-09 12:32:26 -07:00
Andrew Kelley 7b181b51ad parseh: cleanup types 2015-12-09 01:23:58 -07:00
Josh Wolfe 6a48c007a6 fix typo 2015-12-09 01:08:18 -07:00
Andrew Kelley dfda85e870 ability to call external variadic functions 2015-12-09 01:03:04 -07:00
Andrew Kelley 75efc31329 add array access syntax 2015-12-08 14:15:34 -07:00
Andrew Kelley 5dfe4d6387 codegen: do all the allocas at beginning of function
fixes debugging
2015-12-07 23:40:58 -07:00
Andrew Kelley b66fb607bf add debugging info for array type 2015-12-07 20:07:46 -07:00
Josh Wolfe f6eecfe5f4 getting started on array types 2015-12-07 08:29:19 -07:00
Josh Wolfe 94e61287e7 let is now a statement, not an expression 2015-12-06 23:49:20 -07:00
Andrew Kelley dfb48a2c6b update README 2015-12-06 22:12:49 -07:00
Andrew Kelley c6fff3b2c0 update README 2015-12-06 21:55:28 -07:00
Andrew Kelley daa3b6bfa3 add unused label error 2015-12-05 21:08:20 -07:00
Andrew Kelley c7615c1a80 error for extern function with void parameter 2015-12-04 14:33:57 -07:00
Andrew Kelley cd6283e8c4 parseh: fix wrong fn parameters in some cases 2015-12-04 11:45:11 -07:00
Andrew Kelley 5144c4fa37 exporting .h file supports void 2015-12-03 17:30:44 -07:00
Andrew Kelley a398afa7cc more C header interoperability 2015-12-03 17:06:33 -07:00
Josh Wolfe f1aaf1353e add bool literals 2015-12-03 12:15:07 -07:00
Andrew Kelley f8ca6c70c7 add labels and goto 2015-12-03 00:47:35 -07:00
Josh Wolfe c89f77dd8e parsing variable declaration 2015-12-02 16:33:06 -07:00
Andrew Kelley 08a2311efd support if conditionals 2015-12-01 21:19:38 -07:00
Josh Wolfe 1ed926c321 implicit void statements and all tests pass with type checking 2015-12-01 15:54:46 -07:00
Andrew Kelley 58e375d0a1 support multiple files 2015-12-01 02:08:58 -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
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 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 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 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 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 763ce1c485 add tests 2015-11-26 01:29:52 -07:00
Josh Wolfe e579011a6e inline AstNodeStatement 2015-11-25 15:45:10 -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 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 baf5167171 fix not using subtarget features 2015-11-24 15:01:37 -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 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 1b24f4c73c parsing hello.zig example with recursive descent
that was easy
2015-11-23 21:30:12 -07:00
Andrew Kelley 5b663ddbb2 grammar doesn't need the option() construct 2015-11-23 19:19:38 -07:00
Andrew Kelley 72be61fc0a generated parser understands tuples 2015-11-06 22:11:47 -07:00
Andrew Kelley 174baa49bd progress toward more complex parser gen 2015-11-04 17:15:46 -07:00
Andrew Kelley 7cfceeca2d parser generator beginnings 2015-11-03 22:39:35 -07:00
Andrew Kelley 303823b6b8 building part of the hello world AST 2015-11-02 03:39:36 -07:00