Andrew Kelley
eda6898c5b
zig fmt: handle if and while indentation better
2018-05-29 03:15:12 -04:00
Andrew Kelley
530d175422
zig fmt: fix spacing when moving doc comment on var decls
2018-05-28 23:41:09 -04:00
Andrew Kelley
0d1b47362c
zig fmt: if-else with comment before else
2018-05-28 22:41:05 -04:00
Andrew Kelley
77ec81b035
zig fmt: respect line breaks in if-else
2018-05-28 22:22:01 -04:00
Andrew Kelley
71badebd08
zig fmt: respect line breaks after infix operators
2018-05-28 21:28:32 -04:00
Andrew Kelley
354ab1c5c8
zig fmt: render fn decl with trailing comma 1 line per param
2018-05-28 21:18:41 -04:00
Andrew Kelley
530da36352
zig fmt: fix enum decl with no trailing comma
...
See #1003
2018-05-28 17:43:17 -04:00
Andrew Kelley
6c1fda3f99
zig fmt: fix switch body indent
2018-05-28 17:09:55 -04:00
Andrew Kelley
fd13a75785
zig fmt: allow same line struct literal with no trailing comma
...
See #1003
2018-05-28 17:00:04 -04:00
Andrew Kelley
122a74724c
zig fmt: use simple newlines rather than empty comments to hint
...
now the first row of an array literal is the hint to zig fmt
for how long each row should be.
See #1003
2018-05-28 16:23:33 -04:00
Andrew Kelley
3fed10883b
zig fmt: array literals with no trailing comma all on one line
2018-05-26 23:25:04 -04:00
Andrew Kelley
afdfbc0367
zig fmt: delete empty comments that do nothing
2018-05-26 23:25:04 -04:00
Andrew Kelley
b184ae5ca5
run zig fmt on some of the codebase
...
See #1003
2018-05-26 23:00:29 -04:00
Andrew Kelley
118d41ef83
zig fmt: support array literal row size hint
...
See #1003
2018-05-26 22:59:46 -04:00
Andrew Kelley
349365d9a4
zig fmt: better multiline string formatting
2018-05-26 19:32:28 -04:00
Andrew Kelley
cabf7fa93b
zig fmt: fn calls with trailing comma with params on new lines
2018-05-26 18:44:10 -04:00
Andrew Kelley
b8d4e05361
zig fmt: handle empty block with comment inside
2018-05-26 18:29:14 -04:00
Andrew Kelley
7e900d28be
zig fmt: no space on switch range operator
2018-05-26 18:10:06 -04:00
Andrew Kelley
0bef1f9824
zig fmt: fix rendering of struct with no trailing comma on last field
2018-05-26 16:43:33 -04:00
Andrew Kelley
0ab888c639
zig fmt: parse extra comma in asm expressions
2018-05-26 16:37:55 -04:00
Andrew Kelley
85ca611af1
zig fmt: put nested struct inits on newlines
...
See #1003
2018-05-26 15:37:47 -04:00
Andrew Kelley
7fa97b752e
add strict float mode to some math functions
...
fixes a test failure for acosh32
2018-05-26 14:57:53 -04:00
Andrew Kelley
4405897cbd
zig fmt: support trailing comma on switch case items
2018-05-25 20:34:53 -04:00
Andrew Kelley
a630d3e851
zig fmt: fix rendering of align keyword of slice type
2018-05-25 02:19:53 -04:00
Andrew Kelley
56cb7f1740
update json_test to be compliant with zig source encoding
...
See #663
2018-05-25 02:08:43 -04:00
Andrew Kelley
3f302f8411
handle more cases of inserting trailing commas
2018-05-25 01:52:59 -04:00
Andrew Kelley
000c01a36a
zig fmt: handle missing trailing comma in array literals
2018-05-25 01:45:14 -04:00
Andrew Kelley
dfc3e11748
zig fmt: fix handling of comments at top of file
2018-05-25 01:03:15 -04:00
Andrew Kelley
e6afea99a9
zig fmt: support aligned ptr with bit fields
2018-05-25 00:38:07 -04:00
Andrew Kelley
b74dda34b6
std.zig.tokenizer: support hex escape in char literals
2018-05-24 21:51:58 -04:00
Andrew Kelley
43085417be
update github.com/zig-lang to github.com/ziglang
2018-05-24 21:27:44 -04:00
Andrew Kelley
54e887ed9e
std.zig.tokenizer: fix tokenization of hex floats
2018-05-24 01:16:07 -04:00
Andrew Kelley
b132a17a74
std.zig.parse ignores comments
...
std.zig.render handles comments by looking at nearby tokens
2018-05-24 00:35:53 -04:00
Marc Tiehuis
4f4afe186d
Make JsonParser public
2018-05-22 15:34:17 +12:00
Marc Tiehuis
698c52e796
Make StreamingJsonParser public
2018-05-22 15:32:17 +12:00
Andrew Kelley
bfbe26734d
zig fmt: add pointer deref syntax
2018-05-20 14:50:27 -04:00
Andrew Kelley
c38b165db4
all tests passing with postfix deref syntax
2018-05-17 23:21:44 -04:00
Andrew Kelley
99fc2bd4dd
Merge remote-tracking branch 'origin/master' into pointer-reform
2018-05-17 00:56:35 -04:00
Andrew Kelley
b73307befb
more std lib to postfix deref with zig fmt
2018-05-17 00:56:14 -04:00
Andrew Kelley
942d384831
fix std.SegmentedList.Iterator.set
2018-05-17 00:52:36 -04:00
Andrew Kelley
b48d354600
zig fmt: fix comment after if before another if
2018-05-17 00:44:55 -04:00
Andrew Kelley
37c6afa5b4
zig fmt: line comment between if block and else keyword
2018-05-17 00:31:47 -04:00
Andrew Kelley
9ea0e4ca68
zig fmt: same line comments after tokens in expression
2018-05-17 00:16:32 -04:00
Andrew Kelley
4a3d689550
std.fmt: use SI prefixes for printing bytes
...
closes #1015
2018-05-16 18:22:39 -04:00
Andrew Kelley
288fc3a8d3
convert more std lib files to postfix pointer deref
2018-05-16 00:43:28 -04:00
Andrew Kelley
ee5f9ffad0
zig fmt: add comma on last switch prong
2018-05-16 00:27:18 -04:00
Andrew Kelley
5cfabdd493
Merge remote-tracking branch 'origin/master' into pointer-reform
2018-05-16 00:02:26 -04:00
Andrew Kelley
492a214d4c
std.fmt.format: support {B} for human readable bytes
2018-05-15 22:11:03 -04:00
Andrew Kelley
04bca58a3a
zig fmt: preserve same line doc comments on var decls
2018-05-15 00:33:34 -04:00
Andrew Kelley
abcd418451
std.zig.parse cleanup
2018-05-13 14:20:01 -04:00
Andrew Kelley
86a352c45b
Merge branch 'master' into pointer-reform
2018-05-13 13:38:03 -04:00
Andrew Kelley
548ddd1f0c
fix AST dumping code in self hosted compiler
2018-05-12 23:57:15 -04:00
Andrew Kelley
7cdc9d98c7
refactor std.zig.render to be recursive
...
See #1006
2018-05-12 23:06:54 -04:00
Andrew Kelley
911cbf57cd
recursive render top level decl
2018-05-12 19:03:39 -04:00
Andrew Kelley
4277762b74
fix windows build system
...
broken by 6e821078f6
2018-05-11 23:04:41 -04:00
Andrew Kelley
6e821078f6
update std.Buffer API
...
* remove Buffer.appendFormat
* remove Buffer.appendByte
* remove Buffer.appendByteNTimes
Added test to demo what to use instead of the above functions
2018-05-11 14:08:16 -04:00
Andrew Kelley
4787127cf6
partial conversion to post-fix pointer deref using zig fmt
2018-05-10 00:29:49 -04:00
Andrew Kelley
6928badd85
Merge branch 'master' into pointer-reform
2018-05-09 23:43:07 -04:00
Andrew Kelley
4438c5e09b
Merge branch 'rework-parser'
2018-05-09 22:17:47 -04:00
Andrew Kelley
774b6ffe1e
fix parser performance regression
2018-05-09 21:17:05 -04:00
Andrew Kelley
403e5239e3
all tests passing again
2018-05-09 21:15:34 -04:00
Andrew Kelley
670c9f9b74
add benchmark for measuring parser performance
2018-05-08 16:23:08 -04:00
Andrew Kelley
ca27ce3bee
std.zig.parser supports same-line comments on any token
2018-05-07 23:54:35 -04:00
Andrew Kelley
0cb65b266a
separate std.zig.parse and std.zig.render
2018-05-07 22:07:50 -04:00
Andrew Kelley
69ef6ae0f9
rework std.zig.parser
2018-05-07 21:57:44 -04:00
Andrew Kelley
dc23350847
add std.SegmentedList.Iterator.prev
2018-05-07 16:50:33 -04:00
Andrew Kelley
3b7aa80892
add std.SegmentedList.Iterator
2018-05-07 16:50:33 -04:00
Andrew Kelley
2f633452bb
std.SegmentedList: cleaner separation of capacity functions
2018-05-07 10:34:38 -04:00
Andrew Kelley
78ba3b8485
Merge pull request #992 from zig-lang/segmented-list
...
Segmented list implementation
2018-05-07 09:54:30 -04:00
Andrew Kelley
81007d0a4b
SegmentedList: fixups from review comments
2018-05-07 09:53:52 -04:00
Andrew Kelley
7fdbaeca72
zig fmt: same-line comment after non-block if expression
2018-05-07 01:05:06 -04:00
Andrew Kelley
41e1cd185b
std.SegmentedList implementation
2018-05-07 01:04:43 -04:00
Andrew Kelley
4d6d2f1cd2
zig fmt: same-line comment after non-block if expression
2018-05-04 18:35:43 -04:00
Jimmi Holst Christensen
87c0060e81
Made container methods that can be const, const
2018-05-04 23:48:14 +02:00
Andrew Kelley
0fc8885a8d
zig fmt: switch with empty body
2018-05-04 16:49:51 -04:00
Andrew Kelley
eef21df94f
zig fmt: same-line comment on comptime expression
2018-05-04 16:46:35 -04:00
Andrew Kelley
8721eb68fc
zig fmt: fix tokenization of float literal with exponent
2018-05-04 14:34:32 -04:00
Marc Tiehuis
ef3111be23
Use allocator backed array for json value decoder
2018-05-04 17:56:20 +12:00
Marc Tiehuis
f17472635e
Fix review comments for json decoder
2018-05-04 17:56:20 +12:00
Marc Tiehuis
0afc6a9886
Add json decoder
...
- streaming json decoder
- dynamic tree/value decoder
2018-05-04 17:56:20 +12:00
Andrew Kelley
33fa87a9d8
Merge pull request #981 from BraedonWooding/ArrayIteratorUnifiedSyntax
...
ArrayList iterator, unifying API of HashMap and its derivatives
2018-05-03 23:15:17 -04:00
Braedon
e907c5cab9
Unified API
2018-05-03 23:54:33 +10:00
Andrew Kelley
02c1b9df3b
fix compiler-rt tests accidentally running std tests
...
also reduce the aggressiveness of std.atomic.stack
and std.atomic.queue fuzz testing. appveyor has 1 core
and 10,000 iterations is too much for 6 threads to
thrash over
2018-05-02 21:34:34 -04:00
Andrew Kelley
c186cd187e
std.atomic - use AtomicOrder.SeqCst for everything
...
also use less memory for the tests
2018-05-02 20:19:26 -04:00
Andrew Kelley
86a428a4a5
windows threading: add missing call to CloseHandle
2018-05-02 10:03:58 -04:00
Andrew Kelley
ac4d55dec1
behavior tests passing with new pointer deref syntax
2018-05-01 01:53:04 -04:00
Andrew Kelley
3a8dc4e90d
zig fmt: line comments in struct initializer
2018-05-01 01:30:53 -04:00
Andrew Kelley
a35b366eb6
[breaking] delete ptr deref prefix op
...
start using zig-fmt-pointer-reform branch build of zig fmt
to fix code to use the new syntax
all of test/cases/* are processed, but there are more left
to be done - all the std lib used by the behavior tests
2018-04-30 20:35:54 -04:00
Andrew Kelley
7c822869fe
zig fmt: only some docs have doc comments
2018-04-30 20:25:54 -04:00
Andrew Kelley
61a726c290
zig fmt: comments in field decls
2018-04-30 19:27:14 -04:00
Andrew Kelley
4cc1008c2d
zig fmt: error set decls
2018-04-30 19:16:46 -04:00
Andrew Kelley
3e61c45f89
zig fmt: consistent spacing for container inits
2018-04-30 18:49:05 -04:00
Andrew Kelley
eed49a2104
zig fmt: aggregate type init with only 1 field
2018-04-30 18:30:47 -04:00
Andrew Kelley
1d06915f27
zig fmt: support union(enum(tag)) and enum init values
2018-04-30 18:20:27 -04:00
Andrew Kelley
7dc8d433ab
zig fmt: support labeled suspend
2018-04-30 17:30:57 -04:00
Andrew Kelley
37d3ef2835
zig fmt: support promise->T
2018-04-30 16:16:58 -04:00
Andrew Kelley
47680cc0d8
zig fmt: better multiline string handling
2018-04-30 15:10:55 -04:00
Andrew Kelley
e14db23661
run zig fmt on std/os/index.zig
2018-04-30 01:03:38 -04:00
Andrew Kelley
54987c3d8f
std.zig.tokenizer: 3 slashes is doc comment, 4 is line comment
2018-04-30 00:56:59 -04:00
Andrew Kelley
0bf7ebcfea
std.zig.tokenizer: fix handling of line comment / doc comment
2018-04-30 00:52:09 -04:00
Andrew Kelley
fd2cd38bdb
zig fmt: support line comments and doc comments
...
line comments can go anywhere a list of something is allowed
2018-04-30 00:19:55 -04:00
Andrew Kelley
39befc35a8
update comment in std/os/index.zig
2018-04-29 22:31:42 -04:00
Andrew Kelley
4e23fb7f06
zig fmt: comments before error set decl
2018-04-29 22:12:17 -04:00
Andrew Kelley
f04015c080
zig fmt: comments before switch prong
2018-04-29 21:47:54 -04:00
Andrew Kelley
a912c7d75f
zig fmt: same-line comment after switch prong
2018-04-29 21:27:44 -04:00
Andrew Kelley
c53209a8a8
zig fmt: comments before var decl in struct
2018-04-29 19:55:57 -04:00
Andrew Kelley
3235eb03f9
zig fmt: preserve same line comment after struct field
2018-04-29 19:23:19 -04:00
Andrew Kelley
3fa0bed985
zig fmt: array literal with 1 item on 1 line
2018-04-29 18:22:39 -04:00
Josh Wolfe
9543c0a7cc
use explicit error sets for utf8Decode functions
...
and run unicode tests at comptime also
2018-04-29 18:07:18 -04:00
Andrew Kelley
c03b9010db
zig fmt: preserve same-line comment after statement
2018-04-29 17:37:15 -04:00
Josh Wolfe
2387292f20
move some checks around in utf8Encode logic to be more zig idiomatic
2018-04-29 17:28:11 -04:00
Josh Wolfe
8c567d84f1
Merge pull request #954 from BraedonWooding/patch-2
...
Utf8 Encoding from Codepoint to Bytes
2018-04-29 16:57:29 -04:00
Andrew Kelley
ad4ee47d9f
zig fmt: preserve comments before global variables
2018-04-29 16:24:12 -04:00
Andrew Kelley
a0e9f1e0c3
fix bootstrap_lib for windows, take 2
2018-04-29 15:51:23 -04:00
Andrew Kelley
5e5eceb0de
fix bootstrap_lib for windows
2018-04-29 15:50:56 -04:00
Andrew Kelley
b7095912c7
zig fmt: respect comments before statements
2018-04-29 15:48:53 -04:00
Andrew Kelley
f37e79e720
Merge pull request #963 from zig-lang/atomic-stack-and-queue
...
Atomic stack and queue
2018-04-29 12:29:40 -04:00
Andrew Kelley
c76b0a845f
fix std threads for linux
2018-04-29 02:56:59 -04:00
Andrew Kelley
b21bcbd775
fix std threads for macos
2018-04-29 02:52:04 -04:00
Andrew Kelley
6376d96824
support kernel threads for windows
...
* remove std.os.spawnThreadAllocator - windows does not support
an explicit stack, so using an allocator for a thread stack
space does not work.
* std.os.spawnThread - instead of accepting a stack argument, the
implementation will directly allocate using OS-specific APIs.
2018-04-29 02:40:22 -04:00
Andrew Kelley
bf8e419d2b
linux uses pthreads when linking against libc
2018-04-29 00:40:04 -04:00
Andrew Kelley
abf90eaa67
enable atomic queue and stack tests for macos
2018-04-29 00:09:32 -04:00
Andrew Kelley
a425420993
make pthreads threads work on darwin
...
darwin pthreads adds a restriction that the stack start and end
must be page aligned
2018-04-29 00:07:32 -04:00
Andrew Kelley
998e25a01e
pthread support working
2018-04-28 23:47:39 -04:00
Andrew Kelley
a344cb03bc
*WIP* use pthreads when linking libc
2018-04-28 23:30:13 -04:00
Andrew Kelley
ec2a81a081
fix compiler-rt ABI for x86_64 windows
2018-04-28 22:03:07 -04:00
Andrew Kelley
a10351b439
disable atomic stack and queue tests for non-linux
2018-04-28 18:19:00 -04:00
Andrew Kelley
5d6e44b3f2
add tests for std.atomic Queue and Stack
2018-04-28 18:00:51 -04:00
Andrew Kelley
96ecb40259
add fuzz tests for std.atomic.Stack
2018-04-28 17:53:06 -04:00
Andrew Kelley
4ac36d094c
add std.atomic.Stack and std.atomic.Queue
2018-04-28 16:11:32 -04:00
Braedon
07af6559d8
Changed to use shifting and masking
2018-04-25 16:26:57 +10:00
Braedon
f6cbe9a9cc
Utf8 Encode
2018-04-25 14:59:03 +10:00
Andrew Kelley
7270f35c93
Merge remote-tracking branch 'origin/master' into float-printing
2018-04-24 23:47:37 -04:00
Andrew Kelley
27cbb44993
Merge pull request #949 from zig-lang/complex-math
...
Add initial complex-number support
2018-04-24 21:24:08 -04:00
Andrew Kelley
84391af7b8
convert NOTE to TODO so we catch it later
...
See #363
For Complex as a builtin type, see discussion in #949
2018-04-24 21:23:03 -04:00
Andrew Kelley
1d998d5dce
clean up complex math tests
2018-04-24 21:14:12 -04:00
Andrew Kelley
13076d5f22
std.mem: add more slice manipulation functions
...
* add std.mem.trimLeft
* add std.mem.trimRight
* add std.mem.trimRight
* add std.mem.lastIndexOfScalar
* add std.mem.lastIndexOfAny
* add std.mem.lastIndexOf
* add std.mem.endsWith
closes #944
Thanks Braedon Wooding for the original PR
2018-04-24 20:53:36 -04:00
Marc Tiehuis
0501e066b5
crypto throughput test now uses os.time module
2018-04-24 23:54:27 +12:00
Marc Tiehuis
d5e99cc05e
Add initial complex-number support
...
- Library type instead of builtin
- All C complex functions implemented
Partial WIP: Needs more tests for edge cases.
2018-04-24 19:18:31 +12:00
Marc Tiehuis
e5175d432e
Fix release float printing errors
...
Fixes #564 .
Fixes #669 .
Fixes #928 .
2018-04-23 17:22:51 +12:00
Marc Tiehuis
d8ba1bc120
Improve fmt float-printing
...
- Fix errors printing very small numbers
- Add explicit scientific output mode
- Add rounding based on a specific precision for both decimal/exp
modes.
- Test and confirm exp/decimal against libc for all f32 values. Various
changes to better match libc.
2018-04-23 17:22:51 +12:00
Andrew Kelley
371a3ad4bd
Merge branch 'tgschultz-std.os.time'
2018-04-22 18:13:57 -04:00
Andrew Kelley
7af6ed3f20
add alignment docs
2018-04-22 18:13:53 -04:00
Andrew Kelley
21767144fc
linux: support VDSO for clock_gettime
...
also fix a compiler crash when using cmpxchg with nullable pointer
2018-04-22 18:11:50 -04:00
Andrew Kelley
da2af9c613
fixups
2018-04-22 13:36:26 -04:00
Andrew Kelley
0dcadc61b4
Merge branch 'std.os.time' of https://github.com/tgschultz/zig into tgschultz-std.os.time
2018-04-22 13:24:25 -04:00
Andrew Kelley
98b88bb52f
add alignment docs
2018-04-22 12:52:28 -04:00
Andrew Kelley
3010668390
Merge pull request #939 from tgschultz/large-alignment-directalloc
...
DirectAllocator alignments > os.page_size on posix
2018-04-22 12:49:13 -04:00
tgschultz
a1083b019c
Added DirectAllocator support for alignments > os.page_size on posix systems
2018-04-21 20:41:49 -05:00
Andrew Kelley
1098545e47
std.zig.parser: remove unused field
2018-04-21 02:10:22 -04:00
Harry Eakins
eef4bbb65f
Changed all MB to MiB
2018-04-21 11:06:10 +12:00
Harry Eakins
b229aff34a
Readability improvements and bug-fix to std/crypto/throughput_test.zig
2018-04-21 11:06:10 +12:00
Andrew Kelley
6e57243a79
zig fmt: preserve comments in front of test blocks
...
* refactor std.zig.parser
* fix compiler crashing for some compile errors
* take advantage of @field in std.zig.ast
* move ast.NodeFoo to ast.Node.Foo
* comment preservation is more explicit
See #911
2018-04-20 02:15:09 -04:00
tgschultz
ca4053ba49
Use std.os.errorUnexpectedPosix if timer initialization encounters unexpected error
2018-04-19 14:53:58 -05:00
tgschultz
89eade0548
Style cleanups, u64 casts, Timer.start returns error instead of unreachable on unexpected errno.
2018-04-19 10:01:41 -05:00
tgschultz
3c9b6f8cd5
Fixed another incorrect comment
2018-04-18 19:57:47 -05:00
tgschultz
fdebe38fa3
Added notes regarding CLOCK_MONOTONIC_RAW and made it easy to change our mind in the future.
...
Updated std.os imported tests' block with lazy declaration workaround and added time.zig.
Corrected some incorrect comments.
2018-04-18 19:48:19 -05:00
tgschultz
5c83d271a3
Fixed incorrect sign on epoch.clr
2018-04-18 18:50:28 -05:00
tgschultz
7cfe328a16
fixed typos.
2018-04-18 17:43:35 -05:00
tgschultz
bf9cf28322
Fixed compiler errors around darwin code.
2018-04-18 15:46:50 -05:00
tgschultz
8b66dd8c7d
Added unstaged changes.
2018-04-18 13:55:42 -05:00
tgschultz
c90f936eef
Added timestamp, high-perf. timer functions.
2018-04-18 13:52:25 -05:00
Marc Tiehuis
c7cb5c31e5
Add exp/norm distributed random float generation
2018-04-16 20:06:50 +12:00
Andrew Kelley
caefaf781e
std.debug: dumpStackTrace & friends use DirectAllocator
...
this has the downside of failing to print a stack trace
when the system is out of memory (maybe we could add a
FallbackAllocator which tries DirectAllocator and falls
back on the 200KB preallocated buffer).
but for the more common use case when the system is not
out of memory, but the debug info cannot fit in
std.debug.global_allocator, now stack traces will work.
this is the case for the self hosted compiler.
2018-04-16 03:17:15 -04:00
Alexandros Naskos
253ecd5c11
Added ReleaseSmall mode
2018-04-16 03:26:10 +03:00
Andrew Kelley
b9360640ce
add @atomicLoad builtin
...
See #174
2018-04-15 18:12:00 -04:00
Andrew Kelley
859b10d8bf
std.math.ln and std.math.exp use float strict mode
...
closes #920
2018-04-15 15:22:27 -04:00
Andrew Kelley
b5459eb987
add @sqrt built-in function
...
See #767
2018-04-15 13:26:58 -04:00
Andrew Kelley
b7af9edb8a
add std.os.createThread
...
this adds kernel thread support to the standard library for
linux.
See #174
2018-04-14 02:24:05 -04:00
Andrea Orru
06614b3fa0
Merge branch 'master' into zen_stdlib
2018-04-13 11:11:21 -07:00
Andrea Orru
d2c672ab0c
FIXME note
2018-04-13 11:10:36 -07:00
Andrew Kelley
4662fd4d92
Merge pull request #919 from zig-lang/self-hosted-parser-refactor
...
Self-hosted parser refactor
2018-04-13 11:17:09 -04:00
Andrew Kelley
30c5f3c441
Merge pull request #915 from zig-lang/self-hosted-cli
...
Revise self-hosted command line interface
2018-04-13 11:16:06 -04:00
Marc Tiehuis
fe9489ad63
Fix windows access check
2018-04-13 22:50:57 +12:00
Marc Tiehuis
03bec631bd
Replace File.exists with File.access
2018-04-13 21:27:09 +12:00
Jimmi Holst Christensen
a498993fd1
Merged with master
2018-04-13 10:40:37 +02:00
Jimmi Holst Christensen
44c53c9979
std.zig.parser: Refactor round 2
...
* More work on ensuring that each state only eat one token
* VarDecl parsing now constructs its node
* Handling all fn parsing in the same case
* Using eatToken instead of getNextToken where possible
* All tokenIdTo* now takes @TagType(Token.Id)
* Added a createToCtxLiteral function
2018-04-13 10:15:12 +02:00
Andrea Orru
c5f088e52c
Pass up to 5 arguments in Zen IPC
2018-04-12 22:24:57 -07:00
Andrew Kelley
0f652b4d80
zig fmt: switch cases on new lines
...
See #911
2018-04-12 21:56:12 -04:00
Andrew Kelley
9e701e951b
zig fmt includes trailing commas
...
See #911
2018-04-12 21:40:15 -04:00
Andrew Kelley
d4572d1140
zig fmt: container init fields each on own line
...
See #911
2018-04-12 21:23:18 -04:00
Jimmi Holst Christensen
fad54e62bb
std.zig.ast: Fixed build failures
2018-04-12 18:56:58 +02:00
Jimmi Holst Christensen
d35a6655e0
std.zig.parser: Refactored `commaOrEnd` to `expectCommaOrEnd`
...
* Now it returns end when found, or null if comma was found.
* State should now be appended outside the function
2018-04-12 18:13:09 +02:00
Andrew Kelley
29e0e4088e
Merge remote-tracking branch 'origin/master' into self-hosted-cli
2018-04-12 11:20:38 -04:00
Andrew Kelley
c43f77f109
fix invalid implicit cast on macos
2018-04-12 10:38:32 -04:00
Jimmi Holst Christensen
206c0b8bdb
std.zig.parser: Refactor, round 1:
...
* Removed the Optional state
* We now have an OptionalCtx instead of DestPtr
* OptionalCtx simulated return, instead of reverting states
* OptionalCtx is a lot less hacky, but is still a small footgun
* Trying to avoid consuming more than one token per state
* This is required, because of comments
* The C++ compiler allows comments between all tokens
* We therefor have to consume comment tokens between each state
* Reordered states so they are grouped in some logical fasion
2018-04-12 16:08:23 +02:00
Marc Tiehuis
803f0a295b
Revise self-hosted command line interface
...
Commands are now separated more precisely from one another. Arguments
are parsed mostly using a custom argument parser instead of manually.
This should be on parity feature-wise with the previous main.zig but
adds a few extra code-paths as well that were not yet implemented.
Subcommands are much more prominent and consistent. The first argument
is always a sub-command and then all following arguments refer to that
command. Different commands display there own usage messages and options
based on what they can do instead of a one-for-all usage message that
was only applicable for the build commands previously.
The `cc` command is added and is intended for driving a c compiler. See #490 .
This is currently a wrapper over the system cc and assumes that it
exists, but it should suffice as a starting point.
2018-04-12 22:28:47 +12:00
Jimmi Holst Christensen
0d8646d262
std.zig.parser now parses alignment of functions
...
Related #909
This allows it to parse `std/special/compiler_rt/index.zig`
2018-04-12 08:46:26 +02:00
Andrea Orru
70f2bb03fd
outb syscall
2018-04-11 23:11:26 -07:00
Jimmi Holst Christensen
5b584e06e3
std.zig.parser special cased error in return.
...
Related #909
This allows parsing of `std/special/build_runner.zig`
2018-04-11 20:56:05 +02:00
Jimmi Holst Christensen
a7f77d7c6a
std.zig.parser: requireSemiColon now matches the C++ behavior
...
Related #909
Allowes parsing of `std/os/child_process.zig`
2018-04-11 15:26:00 +02:00
Jimmi Holst Christensen
df4c575525
std.zig.parser now parses inline fn proto
...
Related #909
Allows parsing of `std/os/zen.zig`.
2018-04-11 15:17:51 +02:00
Jimmi Holst Christensen
fe7146277d
std.zig.parser now accept both string and multiline string for strings
...
Related #909
Allows it to parse `std/special/compiler_rt/aullrem.zig`,
`std/special/compiler_rt/aulldiv.zig` and `std/math/x86_64/sqrt.zig`
2018-04-11 14:43:53 +02:00
Jimmi Holst Christensen
28ea364e5e
std.zig.parser now handle `try`'s precedence correctly
...
This allows parsing of `std/zig/parser.zig`. Related: #909
2018-04-11 13:56:39 +02:00
Jimmi Holst Christensen
841ac0f4e1
std.zig.parser now allows assignment expr in switch cases.
...
This makes `std/os/index.zig` parse
related: #909
2018-04-11 13:46:35 +02:00
Jimmi Holst Christensen
4b0556ebd4
std.zig.parser can now parse `std/heap.zig`:
...
related: #909
* Struct fields can now be pub
* Parsing of double deref now works
* Block expressions now have the right precedence
2018-04-11 13:38:06 +02:00
Jimmi Holst Christensen
6fb5ab1b52
std.zig.parser: Redid parsing of error set delc
...
related: #909
2018-04-11 13:05:42 +02:00
Jimmi Holst Christensen
5f3ec023cd
std.zig.parser: Fixed parsing of field access rhs
...
related: #909
2018-04-11 12:53:01 +02:00
Jimmi Holst Christensen
281c17f6ae
std.zig.parser:
...
* Renamed eatToken to expectToken
* A new eatToken fn, which only eats the token, if the id match
* Inlined initNode, as it is not suppose to be used outside createNode
2018-04-11 12:05:10 +02:00
Jimmi Holst Christensen
dae287524d
std.zig: Major refactor
...
* There now exists a few function to allocate all nodes in parser.zig
* ast.zig now have a table of Ids and their corrisponding type
2018-04-11 10:37:04 +02:00
Andrea Orru
135a335ce1
Merge branch 'master' into zen_stdlib
2018-04-11 00:33:19 -07:00
Andrea Orru
b01c5a95c4
Update zen library
2018-04-11 00:31:32 -07:00
Andrew Kelley
58c6424d4f
simplify and fix BufMap logic
2018-04-11 00:32:42 -04:00
Andrew Kelley
19e0ed5d3e
Merge branch 'fix879' of https://github.com/bnoordhuis/zig into bnoordhuis-fix879
2018-04-10 23:37:08 -04:00
Andrew Kelley
2ec1cec92d
add more linux syscalls and constants
...
Based on #904 by tgshultz
2018-04-10 23:29:24 -04:00
Josh Wolfe
405a2390f0
zig fmt while-else with no blocks
2018-04-10 22:44:55 -04:00
Andrew Kelley
f6c77746d6
add memmove to builtin.o
...
related: #514
2018-04-10 22:24:01 -04:00
Andrew Kelley
27e881c2d7
fix another undefined deref
...
see 0ba85ea6ff
2018-04-10 21:58:04 -04:00
Josh Wolfe
b553b7ab83
Merge branch 'master' into self-hosted-parser
2018-04-10 21:46:13 -04:00
Jimmi Holst Christensen
0ba85ea6ff
std.zig.parser fixed segfault when parsing cc for fn decl
2018-04-10 17:46:17 +02:00
Jimmi Holst Christensen
c6aa637146
std.zig.parser: removed dublicate "zig fmt: coroutines" test
2018-04-10 16:33:43 +02:00
Jimmi Holst Christensen
b9cccce26d
std.zig.ast: fixed none compiling code
2018-04-10 15:56:37 +02:00
Jimmi Holst Christensen
db9a9f3a6c
std.zig.parser now parses the `var` type
...
* I parse it as a type in all contexts. This is not how the
C++ compiler does it, but I think typechecking should catch this
2018-04-10 15:16:31 +02:00
Jimmi Holst Christensen
aa09e7b639
std.zig.tokinizer now treats string identifiers as identifiers
2018-04-10 15:01:21 +02:00
Jimmi Holst Christensen
3b80e66507
std.zig.parser now parses toplevel use
2018-04-10 14:52:47 +02:00
Jimmi Holst Christensen
db0812d4b7
std.zig.parser: changed block exprs from primary expr to expr
2018-04-10 14:22:01 +02:00
Jimmi Holst Christensen
706e0d739e
std.zig.parser readded all tests
...
* Ops!
2018-04-10 13:49:52 +02:00
Jimmi Holst Christensen
1b81e406f0
std.zig: fixed compiler errors
2018-04-10 13:43:20 +02:00
Jimmi Holst Christensen
34af38e09b
std.zig.tokinizer: fixed failing tests
2018-04-10 11:35:41 +02:00
Jimmi Holst Christensen
f85b9f2bf3
std.zig.parser now parses coroutine code
2018-04-10 11:25:58 +02:00
Jimmi Holst Christensen
5cd69ee6a4
std.zig.parser changed assign expr to only be allowed in some contexts
...
* Only allowed in while continue expr and statement expr
2018-04-10 09:37:29 +02:00
Jimmi Holst Christensen
2c7996f400
std.zig.parser can now render asm expressions
2018-04-10 09:27:11 +02:00
Andrew Kelley
4545be360a
fix std.io.readline to work on windows
...
closes #882
2018-04-09 21:14:55 -04:00
Jimmi Holst Christensen
a09bb408a2
std.zig.parser now parses asm expressions
...
* We cannot render asm expressions yet
2018-04-09 15:40:16 +02:00
Jimmi Holst Christensen
aa552633cc
std.zig.parser now parses fn types
2018-04-09 14:02:03 +02:00
Jimmi Holst Christensen
7d32c9521f
std.zig.parser now parses comptime
2018-04-09 13:24:47 +02:00
Jimmi Holst Christensen
d04346d2ac
ast.zig.parser now parses defer statements
2018-04-09 13:07:46 +02:00
Jimmi Holst Christensen
c19f5a2356
std.zig.parser now parses if statements
2018-04-09 12:51:18 +02:00
Jimmi Holst Christensen
7dd55a8007
std.zig.parser now parses for loops
2018-04-09 11:48:25 +02:00
Jimmi Holst Christensen
e24409ebe0
std.zig.parser unified code for rendering and parsing semicolon in statements
2018-04-09 11:17:57 +02:00
Jimmi Holst Christensen
e260c8ca63
std.zig.parser now parses while loops and labeled break and continue
2018-04-09 11:11:18 +02:00
Andrew Kelley
e85a10e9f5
async tcp server proof of concept
2018-04-09 00:52:45 -04:00
Andrew Kelley
cbda0fa78c
basic tcp server working when used with netcat
2018-04-08 20:08:40 -04:00
Andrew Kelley
8f4ad95777
update what std tests to run
2018-04-08 18:30:54 -04:00
Andrew Kelley
b85ef656ca
running into the llvm corosplit error again
2018-04-08 18:30:54 -04:00
Andrew Kelley
0d22a00f6f
*WIP* async/await TCP server
2018-04-08 18:26:24 -04:00
Jimmi Holst Christensen
e4d0b46c0c
std.zig.parser WIP generalizing parsing of payloads
...
* Note, it doesn't work :)
2018-04-08 17:05:08 +02:00
Jimmi Holst Christensen
bdff5bfa3e
std.zig.parser now parses switch
2018-04-07 01:38:38 +02:00
Jimmi Holst Christensen
820de1716b
std.zig.parser now parses labeled blocks.
...
* There is also some code for switch range parsing
2018-04-06 15:37:49 +02:00
Marc Tiehuis
c34ce2cbc6
Add common hash/checksum functions
...
- SipHash64, SipHash128
- Crc32 (fast + small variants)
- Adler32
- Fnv1a (32, 64 and 128 bit variants)
2018-04-06 23:10:54 +12:00
Jimmi Holst Christensen
f667744d44
std.zig.parser Fixed:
...
* Parsing of the optional expression in contrl flow expr
* Rendering of catch expressions
2018-04-06 09:36:11 +02:00
Jimmi Holst Christensen
e45de607d6
std.zig.parser: Initializers are now parsed and fmt correctly
2018-04-06 08:56:28 +02:00
Ben Noordhuis
9e8519b7a2
fix use-after-free in BufMap.set()
...
closes #879
2018-04-05 23:32:49 +02:00
Jimmi Holst Christensen
779247ba11
std.zig Major Refactor
...
* parser now parses expression like the C++ compiler does
* This makes initializers work
* Added control flow expression (only return is parsed)
* Added catch parsing (It doesn't quite work)
* The parse can now specify states as optional.
* The parse will roll back on error if states are optional
* This can be overriden by State.Required
2018-04-04 23:36:55 +02:00
Marc Tiehuis
8938429ea1
Add Hmac function ( #890 )
2018-04-04 10:31:10 -04:00
Jimmi Holst Christensen
744416ce0c
std.zig.parser should now parse operators with precedence.
...
* This haven't been tested yet
2018-04-04 14:58:51 +02:00
Marc Tiehuis
f68c2e0a14
Fix off-by-one error in all crypto functions
2018-04-04 21:32:23 +12:00
Jimmi Holst Christensen
ca0085c46d
std.zig.parser now parses error set declarations
2018-04-04 10:54:48 +02:00
Jimmi Holst Christensen
020724cfa0
std.zig.tokenizer Tokens now don't contain a line and column field.
...
* Instead, this information is optained by asking the tokenizer.
* getTokenLocation takes a start_index, so relative loc can be optained
2018-04-04 10:27:38 +02:00
Jimmi Holst Christensen
09cf823619
std.zig.parser now parses container decls
2018-04-04 09:57:37 +02:00
Andrew Kelley
abd389209b
fix up logic for macos std.os.deleteTree
2018-04-04 00:08:10 -04:00
Andrew Kelley
e1e536e03d
Merge branch 'wip-macos-dirent' of https://github.com/hellerve/zig into hellerve-wip-macos-dirent
2018-04-03 23:33:18 -04:00
Andrew Kelley
9dfd1a7c8a
remove more signal handling stuff from std.os.ChildProcess
...
439621e44a
failed to remove
everything. this finishes the job
2018-04-03 18:26:49 -04:00
Jimmi Holst Christensen
ec611bf8b4
std.zig.parser now parses regular enums, unions and struct
...
* Still missing packed, and extern
2018-04-03 20:00:02 +02:00
Jimmi Holst Christensen
d602f12df8
std.zig.ast Added ContainerDecl
2018-04-03 15:59:14 +02:00
Jimmi Holst Christensen
4fae452684
std.zig.parser Refactored top level decl parsing
...
* Now, the arraylist from the root node is passed through the states.
* This allows us to reuse the code for enums, unions and structs
2018-04-03 15:33:22 +02:00
Jimmi Holst Christensen
40f35e997a
std.zig.parser moved container initializer tests down
2018-04-03 15:17:26 +02:00
Jimmi Holst Christensen
9d69e94bba
std.zig.parser now parses grouped expressions
...
* I also moved some tests down, as they fail in ways I can't fix yet
2018-04-03 15:16:32 +02:00
Jimmi Holst Christensen
5c82ed2ea9
std.zig.parser now parses initializers... Or, it would, if it worked
2018-04-03 14:53:27 +02:00
Jimmi Holst Christensen
0b9247fb63
std.zig.parser Refactor:
...
* Slice/Array access is now not parsed in the expr contruction loop
* State.ExprListItemOrEnd now takes a token id for the end token
2018-04-03 14:20:34 +02:00
Jimmi Holst Christensen
b424cd75ab
std.zig.parser refactored call, slice and array access to be suffix op
2018-04-03 12:33:06 +02:00
Jimmi Holst Christensen
22e38ffb54
std.zig.tokenizer fixed tokens having wrong column and line
2018-04-03 11:18:18 +02:00
Jimmi Holst Christensen
a2330d0ea3
std.zig.parser now parses slice and array types
2018-04-03 10:54:19 +02:00
Andrew Kelley
4eb68987d8
std.io.readLine function
...
this provides a better input for guess number example.
see #882
2018-04-02 11:34:31 -04:00
Jimmi Holst Christensen
b9093185f7
std.zig.parser now parses slicing and array access
2018-04-01 22:02:51 +02:00
Jimmi Holst Christensen
df09c01f7f
std.zig.parser now parses error, this and unreachable
2018-03-31 22:48:12 +02:00
Jimmi Holst Christensen
aabf7cf57e
std.zig.parser now parses null and bool literals
2018-03-31 22:10:49 +02:00
Jimmi Holst Christensen
975dc5a390
std.zig.parser now parses char literals
2018-03-31 21:28:40 +02:00
Jimmi Holst Christensen
4d8f9e2295
std.zig.parser now parses multi line strings
2018-03-31 21:04:54 +02:00
Raul Leal
eb6ff796c1
Fix undeclared identifier error in readUntilDelimiterBuffer and incorrect number of parameters in readUntilDelimiterAlloc ( #877 )
2018-03-31 12:21:19 -04:00
Jimmi Holst Christensen
4793c3397e
std.zig.parser now handles lib name for extern var and fn
2018-03-31 17:46:29 +02:00
Jimmi Holst Christensen
cda3509353
Added test cases to cover all of zigs syntax
2018-03-31 15:39:51 +02:00
Jimmi Holst Christensen
26e56f2fab
Each test now have it's own test name
2018-03-31 14:18:09 +02:00
Jimmi Holst Christensen
596f4b6002
Fixed review commented code
2018-03-31 14:00:49 +02:00
Jimmi Holst Christensen
5118caf5ab
Added a lot of test cases
2018-03-31 00:53:00 +02:00
Jimmi Holst Christensen
24071c6803
std.zig.parser parses all prefix operators
2018-03-30 21:45:42 +02:00
Jimmi Holst Christensen
1dfa927a67
std.zig.parser now treats call expr as a suffix operator
2018-03-30 20:47:09 +02:00
Jimmi Holst Christensen
edca173997
std.zig.parser now parses call expr
2018-03-29 23:40:46 +02:00
Jimmi Holst Christensen
8ada030971
Fixed self hosted compiler compiler error from prev commit
2018-03-29 22:37:54 +02:00
Jimmi Holst Christensen
530f795769
std.zig.parser now supports all infix operators
2018-03-29 22:31:17 +02:00
Andrew Kelley
b80398b355
Merge pull request #867 from zig-lang/rand-overhaul
...
Rewrite Rand functions
2018-03-29 14:14:35 -04:00
Andrew Kelley
ccadcbc715
fix examples and rename std.rand.Rand to std.rand.Random
2018-03-29 12:33:29 -04:00
Marc Tiehuis
0fd0f6fd1f
Rewrite Rand functions
...
We now use a generic Rand structure which abstracts the core functions
from the backing engine.
The old Mersenne Twister engine is removed and replaced instead with
three alternatives:
- Pcg32
- Xoroshiro128+
- Isaac64
These should provide sufficient coverage for most purposes, including a
CSPRNG using Isaac64. Consumers of the library that do not care about
the actual engine implementation should use DefaultPrng and DefaultCsprng.
2018-03-30 01:50:58 +13:00
Jimmi Holst Christensen
9df2a6a502
std.zig.parser can now parse top level test declarations
2018-03-29 13:43:17 +02:00
hellerve
7e951e5043
st/os: address @andrewrk concerns
2018-03-29 10:23:44 +02:00
Andrew Kelley
f5b43ada46
std/os: getting dir entries works on OS X
2018-03-28 12:06:48 +02:00
Andrew Kelley
5b00dee0c2
std.math.cast handles signed integers
2018-03-27 15:20:07 -04:00
Andrew Kelley
0b7b3190fd
fix bitrotted code in unexpected error tracing
2018-03-27 10:44:13 -04:00
Andrew Kelley
2cff31937f
std.os.linux exposes syscall functions and syscall numbers
2018-03-24 15:57:36 -04:00
Marc Tiehuis
7350181a4a
Fix os.File.mode function
2018-03-23 22:41:08 +13:00
Marc Tiehuis
53588f4f12
Add missing pub specifier to atan2
2018-03-22 19:18:51 +13:00
Andrew Kelley
66fec3a3d7
Merge pull request #851 from zig-lang/zen_stdlib
...
Zen specific hacks
2018-03-20 16:16:08 -04:00
Andrea Orru
43cdfa275a
Zen specific hacks
2018-03-20 16:09:30 -04:00
Andrew Kelley
71b4ee931e
Merge pull request #849 from zig-lang/zen_stdlib
...
Updates to the Zen standard library
2018-03-20 11:47:19 -04:00
Andrea Orru
0082ed0ef1
Public SplitIterator
2018-03-20 11:40:33 -04:00
Andrea Orru
935f10502f
Message type, Undefined mailbox, read syscall, more constructors
2018-03-18 14:45:23 -04:00
Marc Tiehuis
bea9e9c7f8
Add addIncludeDir to TestStep + fix build template
...
Closes #794 .
2018-03-17 18:15:35 -04:00
Andrea Orru
df3d2115b5
Service -> Server
2018-03-16 20:27:13 -07:00
Andrea Orru
81941f9161
Add Thread option for Mailboxes
2018-03-16 01:41:45 -07:00
Andrea Orru
4c16deed3e
Some POSIX stuff, including a primitive write
2018-03-15 17:57:56 -07:00
Andrea Orru
681c62941e
subscribeIRQ support
2018-03-15 04:28:45 -07:00
Andrea Orru
9b7e4b535c
More precise naming
2018-03-15 02:22:03 -07:00
Andrea Orru
4fcf01adc5
IPC structure updates
2018-03-14 22:07:17 -07:00
Andrew Kelley
bcce77700f
some return types disqualify comptime fn call caching
...
closes #828
2018-03-12 12:56:25 -04:00
Andrea Orru
d0621391bc
zen-specific: main -> _start
2018-03-10 16:59:28 -08:00
Andrea Orru
152b408934
Simplify intrusive linked list test
2018-03-10 12:20:29 -08:00
Andrew Kelley
3b3649b86f
refactor stack trace code to remove global state
2018-03-10 01:38:40 -05:00
Andrew Kelley
60b2031831
improvements to stack traces
...
* @panic generates an error return trace
* printing an error return trace no longer interferes with
normal stack traces.
* instead of ignore_frame_count, we look at the return address
when you call panic, and that's the first stack trace function
makes stack traces much cleaner - the error return trace
flows gracefully into the stack trace
2018-03-10 01:38:40 -05:00
Andrew Kelley
61a02d9d1e
omit pad zeroes in debug stack traces
2018-03-10 01:38:40 -05:00
Andrea Orru
f25c1c6858
Fixed syntax errors in linux-i386 syscalls
2018-03-09 22:25:21 -08:00
Andrea Orru
70c3008a00
Added 6 parameters syscalls for zen
2018-03-09 22:24:52 -08:00
Marc Tiehuis
7a893691c0
Unroll Sha3 inner loop
...
Issue #699 since fixed. Nearly a x3 perf improvement.
Using --release-fast.
Sha3_256 (before): 96 Mb/s
Sha3_256 (after): 267 Mb/s
Sha3_512 (before): 53 Mb/s
Sha3_512 (after): 142 Mb/s
No real gains from unrolling other initialization loops in crypto
functions so have been left as is.
2018-03-10 10:00:07 +13:00
Andrew Kelley
6db9be8900
don't memoize comptime functions if they can mutate state via parameters
...
closes #639
2018-03-09 14:20:44 -05:00
Andrew Kelley
b57cb04afc
Merge remote-tracking branch 'origin/master' into llvm6
2018-03-08 10:59:24 -05:00
Andrew Kelley
07e47c058c
ptrCast builtin now gives an error for removing const qualifier
...
closes #384
2018-03-06 16:37:03 -05:00
Andrew Kelley
c3807dfb34
remove value judgement from std lib API docs
...
documentation should be purely technical, and not contain opinions about
how easy or hard something is.
2018-03-06 10:41:07 -05:00
Andrew Kelley
d34d36619e
Merge pull request #814 from jacobdufault/utf8-view
...
Make Utf8View public, add comments, and make iterator lowercase.
2018-03-06 01:42:04 -05:00
Jacob Dufault
8fd7e9115c
Make Utf8View public, add comments, and make iterator lowercase.
2018-03-05 21:42:01 -08:00
Andrew Kelley
56645c1701
std.debug.dwarf supports line number version 4
...
fixes stack traces for llvm6 generated zig programs
2018-03-02 16:26:22 -05:00
Andrew Kelley
a217c764db
Merge remote-tracking branch 'origin/master' into llvm6
2018-03-01 22:25:15 -05:00
Andrew Kelley
de5c0c9f40
Merge remote-tracking branch 'origin/master' into async
2018-03-01 20:47:35 -05:00
Andrew Kelley
807a5e94e9
add atomicrmw builtin function
2018-02-28 21:19:51 -05:00
Andrew Kelley
439621e44a
remove signal hanlding stuff from std.os.ChildProcess
2018-02-27 11:14:14 -05:00
Andrew Kelley
4ac6c4d6bf
workaround llvm coro transformations
...
by making alloc and free functions be parameters to async
functions instead of using getelementptr in the DynAlloc block
See #727
2018-02-26 21:14:15 -05:00
Marc Tiehuis
08d595b472
Add utf8 string view
2018-02-24 11:32:01 -07:00
Andrew Kelley
9cfd7dea19
Merge remote-tracking branch 'origin/master' into llvm6
2018-02-23 12:56:41 -05:00
Andrew Kelley
40dbcd09da
fix type_is_codegen_pointer being used incorrectly
...
The names of these functions should probably change, but at least
the semantics are correct now:
* type_is_codegen_pointer - the type is either a fn, ptr, or promise
* get_codegen_ptr_type -
- ?&T and &T returns &T
- ?promise and promise returns promise
- ?fn()void and fn()void returns fn()void
- otherwise returns nullptr
2018-02-23 12:49:21 -05:00
Ben Noordhuis
0845cbe277
name types inside functions after variable
...
Before this commit:
fn f() []const u8 {
const S = struct {};
return @typeName(S); // "f()", unexpected.
}
And now:
fn f() []const u8 {
const S = struct {};
return @typeName(S); // "S", expected.
}
Fixes #675 .
2018-02-22 19:54:02 +01:00
Andrew Kelley
623466762e
clean up mach-o stack trace code
2018-02-21 02:00:33 -05:00
Andrew Kelley
a06f3c74fd
parse async fn definitions
...
See #727
2018-02-20 00:31:52 -05:00
Andrew Kelley
3d58d7232a
parse async fn calls and cancel expressions
2018-02-20 00:05:38 -05:00
Ben Noordhuis
2b35615ffb
fix memory leak in std.debug.openSelfDebugInfo()
2018-02-19 23:11:11 +01:00
Ben Noordhuis
ab48934e9c
add support for stack traces on macosx
...
Add basic address->symbol resolution support. Uses symtab data from the
MachO image, not external dSYM data; that's left as a future exercise.
The net effect is that we can now map addresses to function names but
not much more. File names and line number data will have to wait until
a future pull request.
Partially fixes #434 .
2018-02-19 23:11:11 +01:00
Andrew Kelley
bde15cf080
improve std lib linux epoll API
2018-02-17 17:53:07 -05:00
Andrew Kelley
72ca2b214d
ability to slice an undefined pointer at compile time if the len is 0
2018-02-16 15:22:29 -05:00
Andrew Kelley
5f5880979e
zig fmt supports simple line comments
2018-02-15 12:30:29 -05:00
Andrew Kelley
ca597e2bfb
std.zig.parser understands try. zig fmt respects a double line break.
2018-02-14 23:00:53 -05:00
Andrew Kelley
629f134d38
std.zig.parser understands inferred return type and error inference
2018-02-14 15:50:40 -05:00
Andrew Kelley
e8d81c5acf
fix build broken by previous commit
2018-02-14 13:55:06 -05:00
Andrew Kelley
d790670f4c
self hosted parser: support string literals
2018-02-14 13:43:05 -05:00
Andrew Kelley
1a53c648ed
self hosted parser supports builtin fn call with no args
2018-02-14 09:45:10 -05:00
Andrew Kelley
e7ab2bc553
Merge remote-tracking branch 'origin/master' into llvm6
2018-02-13 11:53:20 -05:00
Andrew Kelley
c721354b73
correct doc comment in self hosted parser
2018-02-13 11:17:26 -05:00
Andrew Kelley
2dcff95bd2
self hosted: add tokenizer test fix eof handling
2018-02-13 10:28:55 -05:00
Andrew Kelley
dfbb8254ca
fix self hosted tokenizer handling of EOF
2018-02-12 21:26:15 -05:00
Andrew Kelley
7903a758a4
Merge remote-tracking branch 'origin/master' into llvm6
2018-02-12 17:00:02 -05:00
Andrew Kelley
b4e44c4e80
self hosted parser tests every combination of memory allocation failure
2018-02-12 13:31:50 -05:00
Andrew Kelley
491d818f17
Merge remote-tracking branch 'origin/master' into llvm6
2018-02-12 10:48:02 -05:00
Andrew Kelley
ec0846a00f
std.heap.ArenaAllocator: fix incorrectly activating safety check
2018-02-12 03:21:18 -05:00
Andrew Kelley
227ead54be
back to malloc instead of aligned_alloc for c_allocator
...
it seems that a 7 years old standard is still too new for the
libc variants that are ubiquitous
(tests failing on macos for not providing C11 ABI)
2018-02-12 03:15:12 -05:00
Andrew Kelley
4a4ea92cf3
remove std.heap.IncrementingAllocator
...
Use std.heap.FixedBufferAllocator combined with
std.heap.DirectAllocator instead.
std.mem.FixedBufferAllocator is moved to std.heap.FixedBufferAllocator
2018-02-12 02:44:31 -05:00
Andrew Kelley
445b03384a
introduce std.heap.ArenaAllocator and std.heap.DirectAllocator
...
* DirectAllocator does the underlying syscall for every allocation.
* ArenaAllocator takes another allocator as an argument and
allocates bytes up front, falling back to DirectAllocator with
increasingly large allocation sizes, to avoid calling it too often.
Then the entire arena can be freed at once.
The self hosted parser is updated to take advantage of ArenaAllocator
for the AST that it returns. This significantly reduces the complexity
of cleanup code.
docgen and build runner are updated to use the combination of
ArenaAllocator and DirectAllocator instead of IncrementingAllocator,
which is now deprecated in favor of FixedBufferAllocator combined
with DirectAllocator.
The C allocator calls aligned_alloc instead of malloc, in order to
respect the alignment parameter.
Added asserts in Allocator to ensure that implementors of the
interface return slices of the correct size.
Fixed a bug in Allocator when you call realloc to grow the allocation.
2018-02-12 02:14:44 -05:00
Andrew Kelley
ef6260b3a7
Merge remote-tracking branch 'origin/master' into llvm6
2018-02-11 23:49:20 -05:00
Andrew Kelley
e743b30bbf
std: refactor posixOpen to be friendlier to error return traces
2018-02-11 05:26:51 -05:00
Andrew Kelley
46aa416c48
std.os and std.io API update
...
* move std.io.File to std.os.File
* add `zig fmt` to self hosted compiler
* introduce std.io.BufferedAtomicFile API
* introduce std.os.AtomicFile API
* add `std.os.default_file_mode`
* change FileMode on posix from being a usize to a u32
* add std.os.File.mode to return mode of an open file
* std.os.copyFile copies the mode from the source file instead of
using the default file mode for the dest file
* move `std.os.line_sep` to `std.cstr.line_sep`
2018-02-10 21:02:24 -05:00
Andrew Kelley
8c31eaf2a8
std zig tokenizer: don't require 3 newlines at the end of the source
2018-02-10 14:52:39 -05:00
Andrew Kelley
a2bd9f8912
std lib: modify allocator idiom
...
Before we accepted a nullable allocator for some stuff like
opening files. Now we require an allocator.
Use the mem.FixedBufferAllocator pattern if a bound on the amount
to allocate is known.
This also establishes the pattern that usually an allocator is the
first argument to a function (possibly after "self").
fix docs for std.cstr.addNullByte
self hosted compiler:
* only build docs when explicitly asked to
* clean up main
* stub out zig fmt
2018-02-09 18:27:50 -05:00
Andrew Kelley
e7bf8f3f04
fix compiler crash switching on global error with no else
2018-02-09 13:49:58 -05:00
Andrew Kelley
1fb308ceee
self hosted compiler: move tokenization and parsing to std lib
2018-02-09 13:08:02 -05:00
Andrew Kelley
32c988a2d7
fix build runner on windows
2018-02-09 00:24:23 -05:00
Andrew Kelley
8fc6e31567
std: fix return type of std.c.write
2018-02-08 20:46:12 -05:00
Andrew Kelley
f9be970375
Merge remote-tracking branch 'origin/master' into error-sets
2018-02-08 20:45:26 -05:00
Marc Tiehuis
1c236b0766
Add ArrayList functions ( #755 )
...
at - Get the item at the n-th index.
insert - Insert and item into the middle of the list, resizing and copying
existing elements if needed.
insertSlice - Insert a slice into the middle of the list, resizing and
copying existing elements if needed.
2018-02-08 11:22:31 -05:00
Andrew Kelley
0d5ff6f462
error sets - most tests passing
2018-02-08 02:08:45 -05:00
Ben Noordhuis
dd20f558f0
implement openSelfExe() on darwin ( #753 )
2018-02-07 18:14:32 -05:00
Jeff Fowler
c88e6e8aee
improve behavior of `zig build` ( #754 )
...
See #748
2018-02-07 17:45:20 -05:00
Andrew Kelley
aa043a6339
Merge remote-tracking branch 'origin/master' into llvm6
2018-02-07 17:27:30 -05:00
Ben Noordhuis
79ad1d9610
format struct pointers as "<typename>@<address>" ( #752 )
2018-02-07 16:18:48 -05:00
Andrew Kelley
f99b8b006f
error sets - fix most std lib compile errors
2018-02-05 18:09:13 -05:00
Andrew Kelley
6940212ecb
error sets: fix peer resolution of error unions
2018-02-05 17:42:13 -05:00
Andrew Kelley
917e6fe370
handle linux returning EINVAL for large writes
...
See #743
2018-02-05 13:21:08 -05:00
Andrew Kelley
40e4e42a66
handle linux returning EINVAL for large reads
...
see #743
2018-02-05 12:48:29 -05:00
Andrew Kelley
44d8d654a0
fix test failure, organize code, add new compile error
2018-02-05 09:26:39 -05:00
Andrew Kelley
b7bc259093
make OutStream and InStream take an error set param
2018-02-05 07:38:24 -05:00
Andrew Kelley
893f1088df
error sets - peer resolution for error unions
2018-02-05 01:49:14 -05:00
Andrew Kelley
31abef172a
fix accidentally linking against kernel32 on non windows
2018-02-04 22:13:21 -05:00
Ben Noordhuis
73ee434c8c
Use /dev/urandom and sysctl(RANDOM_UUID) on Linux.
...
Add fallback paths for when the getrandom(2) system call is not
available. Try /dev/urandom first and sysctl(RANDOM_UUID) second.
The sysctl issues a warning in the system logs with some kernels but
that seems like an acceptable tradeoff for the fallback of a fallback.
2018-02-04 18:58:36 +01:00
Andrew Kelley
61718742f7
*WIP* error sets - std lib test compile but try to link against windows
2018-02-03 14:42:20 -05:00
Andrew Kelley
ef5e7bb469
*WIP* error sets - an inferred error set can end up being the global one
2018-02-03 14:06:37 -05:00
Andrew Kelley
abf5ae6897
*WIP* error sets - support fns called at comptime
2018-02-03 11:51:29 -05:00
Andrew Kelley
b8f59e14cd
*WIP* error sets - correctly resolve inferred error sets
2018-02-02 18:13:32 -05:00
Andrew Kelley
39d5f44863
*WI* error sets - basic support working
2018-02-02 14:26:14 -05:00
Andrew Kelley
406496ca33
*WIP* error sets - allow peer type resolution to create new error set
2018-02-01 23:32:09 -05:00
Andrew Kelley
13b36d458f
*WIP* error sets - fix implicit cast
2018-02-01 10:23:25 -05:00
Andrew Kelley
5f518dbeb9
*WIP* error sets converting std lib
2018-01-31 22:48:40 -05:00
Andrew Kelley
5161d70620
*WIP* error sets
2018-01-31 01:51:31 -05:00
Andrea Orru
7eea20bc50
Add IntrusiveLinkedList to index.zig
2018-01-29 21:02:57 -08:00
Andrew Kelley
96c9a9bdb3
Merge remote-tracking branch 'origin/master' into llvm6
2018-01-29 13:26:09 -05:00
Andrew Kelley
2b5e0b66a2
std: fix fn return syntax for zen os
2018-01-29 10:57:27 -05:00
Andrew Kelley
47be64af5a
Merge remote-tracking branch 'origin/master' into llvm6
2018-01-25 11:51:41 -05:00
Andrew Kelley
3671582c15
syntax: functions require return type. remove `->`
...
The purpose of this is:
* Only one way to do things
* Changing a function with void return type to return a possible
error becomes a 1 character change, subtly encouraging
people to use errors.
See #632
Here are some imperfect sed commands for performing this update:
remove arrow:
```
sed -i 's/\(\bfn\b.*\)-> /\1/g' $(find . -name "*.zig")
```
add void:
```
sed -i 's/\(\bfn\b.*\))\s*{/\1) void {/g' $(find ../ -name "*.zig")
```
Some cleanup may be necessary, but this should do the bulk of the work.
2018-01-25 04:10:11 -05:00
Andrew Kelley
e5bc5873d7
rename "debug safety" to "runtime safety"
...
closes #437
2018-01-25 01:46:12 -05:00
Andrew Kelley
b3a6faf13e
replace %defer with errdefer
...
See #632
now we have 1 less sigil
2018-01-23 23:08:09 -05:00
Andrew Kelley
cf39819478
add new kind of test: generating .h files. and more
...
* docgen supports obj_err code kind for demonstrating
errors without explicit test cases
* add documentation for `extern enum`. See #367
* remove coldcc keyword and add @setIsCold. See #661
* add compile errors for non-extern struct, enum, unions
in function signatures
* add .h file generation for extern struct, enum, unions
2018-01-22 22:24:07 -05:00
Marc Tiehuis
a7e10565fc
Fix build template to match build runner changes
...
Api changed in 7b57454cc1
.
2018-01-20 13:32:49 +13:00
Jimmi Holst Christensen
d8469e3c7c
usize might be same size as LARGE_INTEGER. If that's the case, then we don't want to compare pos to @maxValue(usize).
2018-01-19 22:08:44 +01:00
Jimmi Holst Christensen
a1a69f24c8
We now make a more correct conversion from windows LARGE_INTEGER type to usize
2018-01-19 22:05:56 +01:00
Jimmi Holst Christensen
61497893d3
Removed bitcast from usize to isize in seekTo
2018-01-19 21:57:13 +01:00
Jimmi Holst Christensen
8be606ec80
Now using the right unexpectedError in seekForward
2018-01-19 21:51:10 +01:00
Jimmi Holst Christensen
a76023bcd8
Removed PLARGE_INTEGER
2018-01-19 21:49:16 +01:00
Jimmi Holst Christensen
90714a3831
Implemented windows versions of seekTo and getPos
2018-01-19 21:30:57 +01:00
Andrew Kelley
48cd808185
Merge remote-tracking branch 'origin/master' into llvm6
2018-01-17 13:11:21 -05:00
Marc Tiehuis
7a3fd89d25
Add Sha3 hashing functions
...
These are on the slower side and could be improved. No performance optimizations
yet have been done.
```
Cpu: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
```
-- Sha3-256
```
Zig --release-fast
93 Mb/s
Zig --release-safe
99 Mb/s
Zig
4 Mb/s
```
-- Sha3-512
```
Zig --release-fast
49 Mb/s
Zig --release-safe
54 Mb/s
Zig
2 Mb/s
```
Interestingly, release-safe is producing slightly better code than
release-fast.
2018-01-17 21:19:45 +13:00
Marc Tiehuis
dfd5363494
Add throughput test program
...
Blake performance numbers for reference:
```
Cpu: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
```
-- Blake2s
```
Zig --release-fast
485 Mb/s
Zig --release-safe
377 Mb/s
Zig
11 Mb/s
```
-- Blake2b
```
Zig --release-fast
616 Mb/s
Zig --release-safe
573 Mb/s
Zig
18 Mb/s
```
2018-01-17 21:19:45 +13:00
Marc Tiehuis
7af53d0826
Fix crypto exports
2018-01-17 21:19:45 +13:00
Andrew Kelley
1eda7e0fde
docgen: support executing exe code examples
...
See #465
2018-01-17 01:50:35 -05:00
Andrew Kelley
5aefabe045
docgen: validate See Also sections
...
See #465
2018-01-17 00:22:53 -05:00
Andrew Kelley
2774fe8a1b
docgen auto generates table of contents
...
See #465
2018-01-17 00:22:53 -05:00
Josh Wolfe
24c2ff5cae
Revert "Buffer.toSliceCopy"
...
This reverts commit c58f5a4742
.
2018-01-16 13:45:34 -07:00
Josh Wolfe
c58f5a4742
Buffer.toSliceCopy
2018-01-16 13:28:53 -07:00
Andrew Kelley
b897e98d30
Merge remote-tracking branch 'origin/master' into llvm6
2018-01-16 12:26:04 -05:00
Marc Tiehuis
73b4f09845
Add crypto internal test functions
2018-01-17 00:20:20 +13:00
Marc Tiehuis
66a24c9c00
Merge branch 'master' into blake2
2018-01-17 00:20:06 +13:00
Marc Tiehuis
fa7b33549e
Change crypto functions to fill a buffer
...
- Rename blake2x -> blake2
- Fix blake2s truncated tests
2018-01-17 00:17:48 +13:00
Andrew Kelley
5a4968484b
Merge branch 'wip-err-ret-trace'
2018-01-15 16:28:30 -05:00
Andrew Kelley
6ec9933fd8
fix getting debug info twice in default panic handler
2018-01-15 16:26:13 -05:00
Marc Tiehuis
4cf86b4a94
Add Blake2X hash functions
...
The truncated output variants currently are dependent on a more complete
bigint implementation in the compiler.
2018-01-15 23:14:13 +13:00
Andrew Kelley
c9ac607bd3
add builtin.have_error_return_tracing
2018-01-15 00:14:14 -05:00
Andrew Kelley
7b57454cc1
clean up error return tracing
...
* error return tracing is disabled in release-fast mode
* add @errorReturnTrace
* zig build API changes build return type from `void` to `%void`
* allow `void`, `noreturn`, and `u8` from main. closes #535
2018-01-15 00:01:02 -05:00
Andrew Kelley
793f031c4c
remove 32-bit windows from supported targets list
...
we still want to support it, but there are too many bugs
to claim that we support it right now.
See #537
2018-01-14 15:17:07 -05:00
Andrew Kelley
971a6fc531
fix duplicate stack trace code
2018-01-14 10:19:21 -05:00
Marc Tiehuis
9be9f1ad20
Disable win32 tests for Sha2 + correct lengths
2018-01-14 09:58:30 +13:00
Marc Tiehuis
1f3ed5cf27
Change indexing variable types for crypto functions
2018-01-13 22:44:58 +13:00
Marc Tiehuis
2659ac01be
Add Sha2 functions
...
We take the fastest time measurement taken across multiple runs. Tested
across multiple compiler flags and the best chosen.
```
Cpu: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
Gcc: 7.2.1 20171224
Clang: 5.0.1
Zig: 0.1.1.304f6f1d
```
See https://www.nayuki.io/page/fast-sha2-hashes-in-x86-assembly .
```
Gcc -O2
219 Mb/s
Clang -O2
213 Mb/s
Zig --release-fast
284 Mb/s
Zig --release-safe
211 Mb/s
Zig
6 Mb/s
```
```
Gcc -O2
350 Mb/s
Clang -O2
354 Mb/s
Zig --release-fast
426 Mb/s
Zig --release-safe
300 Mb/s
Zig
11 Mb/s
```
2018-01-13 22:37:47 +13:00
Marc Tiehuis
51fdbf7f8c
Add Md5 and Sha1 hash functions
...
Some performance comparisons to C.
We take the fastest time measurement taken across multiple runs.
The block hashing functions use the same md5/sha1 methods.
```
Cpu: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
Gcc: 7.2.1 20171224
Clang: 5.0.1
Zig: 0.1.1.304f6f1d
```
See https://www.nayuki.io/page/fast-md5-hash-implementation-in-x86-assembly :
```
gcc -O2
661 Mb/s
clang -O2
490 Mb/s
zig --release-fast and zig --release-safe
570 Mb/s
zig
50 Mb/s
```
See https://www.nayuki.io/page/fast-sha1-hash-implementation-in-x86-assembly :
```
gcc -O2
588 Mb/s
clang -O2
563 Mb/s
zig --release-fast and zig --release-safe
610 Mb/s
zig
21 Mb/s
```
In short, zig provides pretty useful tools for writing this sort of
code. We are in the lead against clang (which uses the same LLVM
backend) with us being slower only against md5 with GCC.
2018-01-13 14:40:21 +13:00
Marc Tiehuis
304f6f1d01
Add integer rotation functions
2018-01-13 13:23:12 +13:00
Andrew Kelley
32ea6f54e5
*WIP* proof of concept error return traces
2018-01-12 02:12:11 -05:00
Andrew Kelley
eb3726c502
Merge branch 'master' into llvm6
2018-01-11 22:26:55 -05:00
Marc Tiehuis
899e36489d
Fix endian swap parameters
2018-01-11 19:50:08 +13:00
Andrew Kelley
891c93c118
Merge pull request #681 from zig-lang/hw-math
...
Add hw sqrt for x86_64
2018-01-10 10:22:40 -05:00
Marc Tiehuis
24cd99160c
Add hw sqrt for x86_64
2018-01-10 19:53:36 +13:00
Andrea Orru
19343db593
Intrusive linked lists
2018-01-10 00:33:07 -05:00
Andrew Kelley
d1d3dbc7b5
Merge branch 'master' into llvm6
2018-01-09 09:56:24 -05:00
Andrew Kelley
3c094116aa
remove %% prefix operator
...
See #632
closes #545
closes #510
this makes #651 higher priority
2018-01-09 00:51:51 -05:00
Andrea Orru
98a95cc698
exit, createThread for zen
2018-01-08 12:16:23 -05:00
Andrew Kelley
5a8d87f504
Merge branch 'master' into llvm6
2018-01-08 10:34:45 -05:00
Andrew Kelley
632d143bff
replace `a %% b` with `a catch b`
...
See #632
better fits the convention of using keywords for control flow
2018-01-07 17:28:20 -05:00
Andrew Kelley
66717db735
replace `%return` with `try`
...
See #632
better fits the convention of using keywords for control flow
2018-01-07 16:53:13 -05:00
Andrea Orru
3182857224
Adding zen support
2018-01-07 04:43:08 -05:00
Andrea Orru
ad438cfd40
Merge branch 'master' of github.com:zig-lang/zig
2018-01-06 23:13:51 -05:00
Andrea Orru
e932919e68
Darwin -> MacOSX, added Zen. See #438
2018-01-06 23:10:53 -05:00
Jimmi Holst Christensen
e91136d61f
Fixed the call to mem.readInt in endian.swap
2018-01-07 00:24:35 +01:00
Jimmi Holst Christensen
6f85c860c6
Fixed the call to mem.readInt in Rand.scalar
2018-01-07 00:24:17 +01:00
Andrew Kelley
38658a597b
Merge branch 'master' into llvm6
2018-01-06 02:59:17 -05:00
Andrew Kelley
dde7cc52d2
fix exp1m implementation
...
in the llvm6 branch with assertions on, it failed the test
this fixes it
2018-01-06 02:58:45 -05:00
Andrew Kelley
5d9a8cbe1a
Merge remote-tracking branch 'origin/master' into llvm6
2018-01-05 13:46:21 -05:00
Andrew Kelley
79d50d9933
appveyor: enable verbose link for self hosted compiler
2018-01-04 23:43:46 -05:00
Andrew Kelley
7e65fe7ac3
fix test regressions on windows from previous commit
2018-01-04 16:36:59 -05:00
Andrew Kelley
d008e209e7
self-hosted compiler works on macos
2018-01-04 15:30:22 -05:00
Andrew Kelley
e1c03d9e8e
self-hosted compiler works on windows
...
* better error message for realpath failing
* fix bug in std.io.readFileAllocExtra incorrectly returning
error.EndOfStream
* implement std.os.selfExePath and std.os.selfExeDirPath for windows
2018-01-04 13:48:45 -05:00