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
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
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
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
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