Andrew Kelley
289bfa890b
fix c hello world example
2016-08-30 20:48:30 -07:00
Andrew Kelley
ed50bd1b65
progress toward stack trace printing
2016-08-17 20:11:04 -07:00
Andrew Kelley
37d167f6e0
std: conform to style guidelines
2016-08-16 22:42:50 -07:00
Andrew Kelley
06c4b35eb1
std: improve rand implementation and API
2016-07-26 23:51:58 -07:00
Andrew Kelley
78d4fb20c4
inline parameters
...
This replaces the current generic syntax for functions and replaces
it with the concept of inline parameters.
This paves the way for the "all structs anonymous" proposal.
Closes #151 .
2016-07-25 22:55:15 -07:00
Andrew Kelley
6a7f3c8df7
std: make parsing an unsigned number generic
2016-05-13 11:11:55 -07:00
Andrew Kelley
4961910e7f
cat example: fix not flushing stderr
2016-04-24 11:23:46 -07:00
Andrew Kelley
f4c7e1bf49
rearrange standard library a bit
2016-04-18 16:42:56 -07:00
Andrew Kelley
1688ccb3dd
update README
2016-04-14 11:34:46 -07:00
Andrew Kelley
fdf6a18461
fix cat example by flushing stdout at end
2016-04-09 14:40:09 -07:00
Andrew Kelley
5dbc21b511
update cat example, refactor std
...
partial implementation of @err_name
2016-04-08 16:21:30 -07:00
Andrew Kelley
f1d338194e
rewrite how importing works
...
* Introduce the concept of packages. Closes #3
* Add support for error notes.
* Introduce `@import` and `@c_import` builtin functions and
remove the `import` and `c_import` top level declarations.
* Introduce the `use` top level declaration.
* Add `--check-unused` parameter to perform semantic
analysis and codegen on all top level declarations, not
just exported ones and ones referenced by exported ones.
* Delete the root export node and add `--library` argument.
2016-03-01 03:13:40 -07:00
Andrew Kelley
d8f6388b63
if statements can be const expr evaluated
...
also introduce error for unnecessary if statement
but if the condition depends on a compile variable, then
the if statement is OK
2016-02-09 18:53:28 -07:00
Andrew Kelley
ea3bd58563
add link to tetris example
2016-02-07 22:40:58 -07:00
Andrew Kelley
4c8f26e9f6
std: remove auto flushing of stderr. use printf
2016-02-06 19:48:42 -07:00
Andrew Kelley
ec33e5a638
simple unconditional defer support
...
See #110
2016-02-06 01:00:29 -07:00
Andrew Kelley
bb4a532785
move os_get_random_bytes to os.zig
2016-02-04 01:00:54 -07:00
Andrew Kelley
97c61313da
c_import of stdio.h works for some functions
...
See #88
2016-01-27 23:23:02 -07:00
Andrew Kelley
e809baa866
remove bogus example code
2016-01-27 12:35:06 -07:00
Andrew Kelley
5afe473a86
different extern syntax and simplify parsing top level decls
2016-01-26 13:08:21 -07:00
Andrew Kelley
4e43973413
variable initializations are now mandatory
...
use `undefined` if you want uninitialized memory
2016-01-25 23:56:46 -07:00
Andrew Kelley
a37bb4a4da
add the C integer types
2016-01-25 23:21:13 -07:00
Andrew Kelley
1d68150242
compiler enforces checking for error
...
See #23
2016-01-25 20:27:57 -07:00
Andrew Kelley
50854226a6
syntax: back to -> for return type, no more =>
2016-01-25 17:08:18 -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
6db6609df8
implement %% operator
...
See #23
2016-01-25 13:53:40 -07:00
Andrew Kelley
bcb18338cd
update std lib to use error type and global variables
2016-01-24 22:53:00 -07:00
Andrew Kelley
f5cc7f65a3
fix parameter access of sret functions
2016-01-24 19:27:12 -07:00
Andrew Kelley
5c18826240
introduce the error keyword and type
...
See #23
2016-01-24 01:34:57 -07:00
Andrew Kelley
37aae53009
various small cleanups
2016-01-23 03:06:29 -07:00
Andrew Kelley
706f72f1b4
fix hang when returning from while loop
...
also fixes duplicate error message for function missing
return type.
also makes guess number game use %void for main return type.
closes #58
2016-01-23 02:46:24 -07:00
Andrew Kelley
c0ea9290c4
main returns %void
2016-01-23 02:14:01 -07:00
Andrew Kelley
5e212db29c
parsing error value decls and error value literals
...
and return with '?' or '%' prefix
2016-01-20 18:18:50 -07:00
Andrew Kelley
ad9759bc8e
basic support for switch expression
2016-01-20 02:12:24 -07:00
Andrew Kelley
ae2151a751
use signed integer for sizes of things
2016-01-18 21:13:14 -07:00
Andrew Kelley
92dccde2fd
revise plan for cat example
2016-01-18 19:32:27 -07:00
Andrew Kelley
826c7f06a3
fix cat example
2016-01-16 03:31:43 -07:00
Andrew Kelley
9e74b7e754
proposed cat example implementation
2016-01-16 03:10:15 -07:00
Andrew Kelley
5f7685336f
better main symbol prototype
...
closes #64
2016-01-16 00:07:34 -07:00
Andrew Kelley
dc162c7f83
rename "use" to "import"
2016-01-15 18:45:52 -07:00
Andrew Kelley
5f9ecb8566
instead of 'as' to cast, call type as function
2016-01-14 02:52:33 -07:00
Andrew Kelley
b28b7f63d1
all types are now expressions
...
See #22
2016-01-13 18:15:51 -07:00
Andrew Kelley
75d5786603
cleanup guess number example
2016-01-10 01:32:15 -07:00
Andrew Kelley
bdca82ea66
implement pub const
2016-01-09 00:37:48 -07:00
Andrew Kelley
2a8d6af7ba
fix guess number example. now it works
2016-01-08 04:08:42 -07:00
Andrew Kelley
0c84ecd19d
codegen: fix else if expression and maybe unwrap expr
2016-01-08 03:59:37 -07:00
Andrew Kelley
a3c97081ca
add ?? maybe unwrapping binary operator
...
add null literal
fix number literal / maybe interactions
2016-01-07 03:23:38 -07:00
Andrew Kelley
c75d40680f
while detects simple constant condition
2016-01-06 18:02:42 -07:00
Andrew Kelley
5e64c4d92f
support pub structs. move rand to std lib.
...
guess number example prints the answer now
2016-01-06 04:41:11 -07:00
Andrew Kelley
f1eafe4ebb
fix bug in RNG example
2016-01-06 03:53:30 -07:00
Andrew Kelley
9c775d2111
codegen: fix member function invocation
2016-01-06 02:05:45 -07:00
Andrew Kelley
3c43bc9208
support unknown size arrays
2016-01-06 01:28:58 -07:00
Andrew Kelley
4ef062b9c8
array syntax is [10]i32 instead of [i32; 10]
2016-01-05 22:47:47 -07:00
Andrew Kelley
e21a83dd74
update rand example
2016-01-05 17:02:26 -07:00
Andrew Kelley
4ce0fcb569
fix some errors in rand example
2016-01-05 06:50:06 -07:00
Andrew Kelley
3327b0488d
add #min_value() and #max_value()
2016-01-05 06:30:49 -07:00
Andrew Kelley
e1ff201d60
fix crash when struct field is invalid
2016-01-04 21:42:35 -07:00
Andrew Kelley
333a322127
multiple files example no longer use libc
2016-01-04 01:52:32 -07:00
Andrew Kelley
fa6e3eec46
add #typeof() compiler function
2016-01-03 18:17:50 -07:00
Andrew Kelley
b453345554
add rand example that doesn't yet work
2016-01-03 00:30:41 -07:00
Andrew Kelley
1abb4e59be
fix various bugs related to guess number example
2016-01-02 21:56:33 -07:00
Andrew Kelley
187d00ca83
ability to access pointers with array indexing syntax
...
closes #40
2016-01-02 19:47:36 -07:00
Andrew Kelley
968b85ad77
closer to guess number example working
2016-01-02 03:38:45 -07:00
Andrew Kelley
9a8851515b
basic maybe type working
2016-01-02 00:06:06 -07:00
Andrew Kelley
b3ac5c16ec
block expressions require parens
...
closes #39
2015-12-31 16:04:13 -07:00
Andrew Kelley
7ba99e9715
analyze if maybe var expressions
2015-12-26 15:43:40 -07:00
Andrew Kelley
1f8e3871ee
parse if maybe expression
2015-12-26 15:05:27 -07:00
Andrew Kelley
50357dad45
add struct value expression
2015-12-24 00:00:23 -07:00
Andrew Kelley
e21369a153
codegen: support byvalue struct assignment
2015-12-23 03:19:22 -07:00
Andrew Kelley
431170d981
codegen: fix struct pointer field access
2015-12-22 13:22:40 -07:00
Andrew Kelley
437e9b954d
add some brainstorming example zig code
2015-12-17 14:59:08 -07:00
Andrew Kelley
4d45d14b55
use realpath to avoid duplicate imports
2015-12-15 21:48:41 -07:00
Andrew Kelley
aa56f016f7
support addressof operator and struct pointer field access
2015-12-15 20:08:53 -07:00
Andrew Kelley
431d8f946f
implicit casting from constant size array to string
...
closes #36
2015-12-15 17:29:44 -07:00
Andrew Kelley
f5a3281877
when linking with libc use the C runtime library
2015-12-15 12:44:42 -07:00
Andrew Kelley
1f48b626a1
std: even more efficient inline assembly
2015-12-15 02:47:39 -07:00
Andrew Kelley
66ca916805
std: expose exit syscall
2015-12-15 00:07:51 -07:00
Andrew Kelley
3049410260
`const` and `var` instead of `let` and `let mut`
...
closes #34
2015-12-14 18:51:07 -07:00
Andrew Kelley
f17e20d5fe
instead of *mut and *const, & and &const
...
closes #33
2015-12-14 18:10:25 -07:00
Andrew Kelley
e411467e1d
add number literal type
...
it gets implicitly casted to whatever is needed.
closes #24
2015-12-14 02:46:37 -07:00
Andrew Kelley
bd77bc749a
structs are working
2015-12-12 22:55:29 -07:00
Andrew Kelley
38f12adbda
progress on struct support
2015-12-12 02:34:09 -07:00
Andrew Kelley
ac630d354d
std: print_str no longer requires length argument
...
add explicit casting support from array to string
2015-12-12 02:05:08 -07:00
Andrew Kelley
a10277bd94
prepare codebase for struct and string support
...
parsing code for structs, strings, and c string literals
partial semantic analyzing code for structs, strings, and c string literals
2015-12-12 00:10:37 -07:00
Andrew Kelley
f740268ab7
move roadmap to github issues
2015-12-11 04:25:10 -07:00
Andrew Kelley
d697404f64
hello world working without libc
2015-12-11 03:55:26 -07:00
Andrew Kelley
15ba5bc54e
provide std.zig and add it to import paths
2015-12-10 17:42:47 -07:00
Andrew Kelley
0dbee2300e
add inline assembly support
2015-12-10 15:34:38 -07:00
Andrew Kelley
dfda85e870
ability to call external variadic functions
2015-12-09 01:03:04 -07:00
Andrew Kelley
358d699fa9
add test for arrays
2015-12-08 15:46:36 -07:00
Andrew Kelley
e8550814c5
support assigning to arrays
2015-12-08 15:31:43 -07:00
Andrew Kelley
6e0c3dc173
array access support
2015-12-08 14:47:17 -07:00
Andrew Kelley
75efc31329
add array access syntax
2015-12-08 14:15:34 -07:00
Andrew Kelley
3c3be10a60
add mutable local variables
2015-12-06 23:09:46 -07:00
Andrew Kelley
5fd754c84a
fix hello world example
2015-12-06 22:01:05 -07:00
Andrew Kelley
a398afa7cc
more C header interoperability
2015-12-03 17:06:33 -07:00
Josh Wolfe
f4b9b03f54
fix codegen for void parameters
2015-12-03 14:29:19 -07:00
Josh Wolfe
f1aaf1353e
add bool literals
2015-12-03 12:15:07 -07:00
Josh Wolfe
6494cf208e
fix if-else type mismatch crash
2015-12-03 11:56:59 -07:00
Josh Wolfe
0c2cc9d2cf
tests for local variables
2015-12-03 11:06:05 -07:00