Commit Graph

1090 Commits (1b4bae6d69937043add14c0dac357c1a1b05f037)

Author SHA1 Message Date
Andrew Kelley 85ca611af1 zig fmt: put nested struct inits on newlines
See #1003
2018-05-26 15:37:47 -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
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