Andrew Kelley
e78b1b810f
self-hosted: basic IR pass2
2018-07-13 21:56:38 -04:00
Bas van den Berg
fe98a2da70
Add a copyBackwards to fix the broken insert methods for ArrayList.
2018-07-13 23:01:21 +02:00
Bas van den Berg
a1cafa650d
Improve ArrayList insert unit tests.
2018-07-13 22:35:34 +02:00
Andrew Kelley
ac096c2949
zig fmt
2018-07-12 19:24:32 -04:00
Andrew Kelley
687bd92f9c
self-hosted: generate zig IR for simple function
...
no tests for this yet. I think the quickest path to testing will be
creating the .o files and linking with libc, executing, and then
comparing output.
2018-07-12 15:12:44 -04:00
Andrew Kelley
30c4add85a
std.event.Future: workaround in tests for llvm coro memory
...
See #1194
2018-07-11 20:17:47 -04:00
Andrew Kelley
9751a0ae04
std.atomic: use spinlocks
...
the lock-free data structures all had ABA problems and
std.atomic.Stack had a possibility to load an unmapped memory address.
2018-07-11 19:38:01 -04:00
Andrew Kelley
9bdcd2a495
add std.event.Future
...
This is like a promise, but it's for multiple getters, and
uses an event loop.
2018-07-11 16:00:06 -04:00
Andrew Kelley
3f30897fdc
add compile error for disallowed types in extern structs
...
closes #1218
2018-07-11 14:08:56 -04:00
Marc Tiehuis
9b054e73f6
Add generic comparator generator functions for sorting
...
- Copy-by-value instead of pointer where appropriate
- Clean up old zig fmt issues
2018-07-11 18:44:30 +12:00
Andrew Kelley
574e31f0a0
self-hosted: first passing test
...
* introduce std.atomic.Int
* add src-self-hosted/test.zig which is tested by the main test suite
- it fully utilizes the multithreaded async/await event loop so the
tests should Go Fast
* `stage2/bin/zig build-obj test.zig` is able to spit out an error if 2 exported
functions collide
* ability for `zig test` to accept `--object` and `--assembly`
arguments
* std.build: TestStep supports addLibPath and addObjectFile
2018-07-10 20:18:43 -04:00
Andrew Kelley
8fba0a6ae8
introduce std.event.Group for making parallel async calls
2018-07-10 15:17:01 -04:00
Andrew Kelley
cfaebb20d8
Merge remote-tracking branch 'origin/master' into llvm7
2018-07-10 14:03:03 -04:00
Andrew Kelley
0ce6934e26
allow var args calls to async functions
2018-07-10 11:44:47 -04:00
Andrew Kelley
b5cfbfd84e
fix regression from b6eb4048
2018-07-09 23:41:28 -04:00
Andrew Kelley
1b82a9defc
enable basic event loop test
2018-07-09 22:41:16 -04:00
Andrew Kelley
b6eb404831
organize std.event into directories
2018-07-09 22:22:44 -04:00
Andrew Kelley
ccef60a640
Merge pull request #1198 from ziglang/m-n-threading
...
M:N threading
2018-07-09 22:06:47 -04:00
Andrew Kelley
c89aac85c4
better workaround for guaranteeing memory in coroutine frame
...
See #1194
2018-07-09 21:21:59 -04:00
wilsonk
a2834d48b9
Update throughput_test.zig. ( #1211 )
2018-07-09 17:21:20 -04:00
Andrew Kelley
1a1534ecb5
fix regression on macos
2018-07-09 17:16:06 -04:00
Andrew Kelley
3f4d0ecd7e
Merge remote-tracking branch 'origin/master' into m-n-threading
2018-07-09 17:14:42 -04:00
Andrew Kelley
9462852433
std.event.Loop multithreading for windows using IOCP
2018-07-09 16:49:46 -04:00
Andrew Kelley
caa0085057
implement std.os.cpuCount for windows
2018-07-09 13:19:11 -04:00
Andrew Kelley
05f1ea33d2
ZIG_DEBUG_COLOR=1 overrides tty detection for runtime stack traces
2018-07-09 12:12:37 -04:00
Andrew Kelley
42ba06133a
std.Hashmap - don't use catch unreachable in tests
2018-07-09 10:44:06 -04:00
Andrew Kelley
a0c564d762
zig fmt
2018-07-09 01:23:47 -04:00
Andrew Kelley
3ba451778f
fix regressions on linux
2018-07-09 01:22:36 -04:00
Marc Tiehuis
82e9190d09
Update zig.parser benchmark program
2018-07-09 17:14:04 +12:00
Andrew Kelley
04d3da4bd1
std.os.cpuCount implementation for macos
2018-07-09 01:08:33 -04:00
Andrew Kelley
50d70d5f49
tests passing with kqueue on macos
2018-07-08 02:46:10 -04:00
Josh Wolfe
410b4d9bdf
builder.addBuildOption
2018-07-08 00:00:05 -04:00
Andrew Kelley
ced3aae3b2
cleaner output from zig build when there are compile errors
2018-07-07 20:31:50 -04:00
Andrew Kelley
c15a6fa9d0
add std.os.cpuCount and have std.event.Loop use it for thread pool size
2018-07-07 01:23:18 -04:00
Andrew Kelley
57f36c4201
std.event.Loop: use EPOLLONESHOT to save 1 syscall
...
when a thread pool worker accepts a coroutine to resume
2018-07-07 00:32:19 -04:00
Andrew Kelley
eb326e1553
M:N threading
...
* add std.atomic.QueueMpsc.isEmpty
* make std.debug.global_allocator thread-safe
* std.event.Loop: now you have to choose between
- initSingleThreaded
- initMultiThreaded
* std.event.Loop multiplexes coroutines onto kernel threads
* Remove std.event.Loop.stop. Instead the event loop run() function
returns once there are no pending coroutines.
* fix crash in ir.cpp for calling methods under some conditions
* small progress self-hosted compiler, analyzing top level declarations
* Introduce std.event.Lock for synchronizing coroutines
* introduce std.event.Locked(T) for data that only 1 coroutine should
modify at once.
* make the self hosted compiler use multi threaded event loop
* make std.heap.DirectAllocator thread-safe
See #174
TODO:
* call sched_getaffinity instead of hard coding thread pool size 4
* support for Windows and MacOS
* #1194
* #1197
2018-07-07 00:32:19 -04:00
Andrew Kelley
b5d07297de
Merge remote-tracking branch 'origin/master' into llvm7
2018-07-04 20:43:49 -04:00
Jimmi HC
28821b5f31
Fixed last commit compiler error
2018-07-04 11:35:29 +02:00
Jimmi HC
4f32b86142
Allow allocation of any 0 sized type (not just void)
2018-07-04 11:29:02 +02:00
Marc Tiehuis
1eda86e1ad
Clean up outstanding compiler_rt todos
2018-07-03 13:22:12 +12:00
Andrew Kelley
6e1425e312
Merge remote-tracking branch 'origin/master' into llvm7
2018-07-02 20:00:13 -04:00
Andrew Kelley
bd282d6cca
Merge pull request #1176 from bnoordhuis/f16-std
...
improve std.math f16 support
2018-07-02 16:03:25 -04:00
Andrew Kelley
96a6bc57d2
modify std.event.Loop to work for windows and macos
2018-07-02 14:38:11 -04:00
Andrew Kelley
a3f55aaf34
add event loop Channel abstraction
...
This is akin to channels in Go, except:
* implemented in userland
* they are lock-free and thread-safe
* they integrate with the userland event loop
The self hosted compiler is changed to use a channel for events,
and made to stay alive, watching files and performing builds when
things change, however the main.zig file exits after 1 build.
Note that nothing is actually built yet, it just parses the input
and then declares that the build succeeded.
Next items to do:
* add windows and macos support for std.event.Loop
* improve the event loop stop() operation
* make the event loop multiplex coroutines onto kernel threads
* watch source file for updates, and provide AST diffs
(at least list the top level declaration changes)
* top level declaration analysis
2018-07-02 14:38:11 -04:00
Marc Tiehuis
887c97742f
Alignment fix and allow rudimentary f128 float printing
2018-06-30 21:58:59 +12:00
Marc Tiehuis
9f48b2ab48
compiler_rt: Remove wrapping add/sub operators where unneeded
...
Closes #495 .
2018-06-30 21:58:59 +12:00
Marc Tiehuis
814a34f263
compiler_rt: Add floattitf/floattidf/floattisf
2018-06-30 21:58:59 +12:00
Marc Tiehuis
e19fc4a0a3
compiler_rt: Add missing exports
2018-06-30 21:58:59 +12:00
Marc Tiehuis
cb7bdc2da1
compiler_rt: Add floatuntitf
2018-06-30 21:58:59 +12:00
Marc Tiehuis
61ebfe6603
compiler_rt: Add floatunditf and floatunsitf
2018-06-30 21:58:59 +12:00
Marc Tiehuis
c32b2e45ef
compiler_rt: Add floatuntisf
2018-06-30 21:58:59 +12:00
Marc Tiehuis
379950f81d
compiler_rt: Add trunc f128 narrowing functions
2018-06-30 21:58:59 +12:00
Ben Noordhuis
30cfc0ab2c
test std.math f16 sqrt support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
be36179064
add std.math f16 signbit support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
ca444e6191
add std.math f16 copysign support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
d293f1a0ed
add std.math f16 floor support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
1abc925292
add std.math f16 fabs support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
f36b095b5f
add std.math f16 isnormal support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
30b75ae353
add std.math f16 isfinite support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
a36d7b6131
add std.math f16 inf support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
27b02413dc
add std.math f16 nan support
...
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis
61df5bc142
add std.math f16 constants
...
refs #1122
2018-06-30 01:58:17 +02:00
Andrew Kelley
0874a5ba77
std.atomic.queue - document limitation and add MPSC queue
2018-06-29 14:45:42 -04:00
tgschultz
3e94347e61
Fix up some std.rand syntax #1161 ( #1162 )
...
* Fix old syntax in rand
Ziggurat somehow did not get updated to latest syntax
* Fix broken float casts
f32 float casts somehow not updated to latest syntax
2018-06-27 12:30:15 -04:00
Ben Noordhuis
fd75e73ee9
add f16 type
...
Add support for half-precision floating point operations.
Introduce `__extendhfsf2` and `__truncsfhf2` in std/special/compiler_rt.
Add `__gnu_h2f_ieee` and `__gnu_f2h_ieee` as aliases that are used in
Windows builds.
The logic in std/special/compiler_rt/extendXfYf2.zig has been reworked
and can now operate on 16 bits floating point types.
`extendXfYf2()` and `truncXfYf2()` are marked `inline` to work around
a not entirely understood stack alignment issue on Windows when calling
the f16 versions of the builtins.
closes #1122
2018-06-27 16:20:04 +02:00
Andrew Kelley
3290e72833
std.zig.ast: fix incorrect impl of FnProto.firstToken
...
closes #1151
2018-06-25 11:54:10 -04:00
Andrew Kelley
5f38d6e2e9
add casting docs, __extenddftf2, and __extendsftf2
2018-06-21 14:44:35 -04:00
Marc Tiehuis
f50c0c664f
Add float repr bit extraction functions
2018-06-21 01:45:12 -04:00
Andrew Kelley
85f928f8bf
remove std.mem.Allocator.construct and other fixups
2018-06-20 17:33:29 -04:00
Andrew Kelley
e891f9cd9d
zig fmt
2018-06-20 17:16:27 -04:00
kristopher tate
6bd8610063
std.mem.Allocator.construct: improve formatting;
2018-06-21 01:40:25 +09:00
kristopher tate
4b46af4810
std.mem.Allocator.construct: remove deprecation warning;
2018-06-21 01:39:48 +09:00
kristopher tate
71db8df548
std: update stdlib to match updated allocator create signature; ref #733
2018-06-21 00:40:21 +09:00
kristopher tate
457c0f0a7e
std.mem: remove allocator create in favor of construct; ref #733
2018-06-21 00:39:19 +09:00
Andrew Kelley
c7804277bf
`@floatToInt` now has safety-checked undefined behavior
...
when the integer part does not fit in the destination integer type
* Also fix incorrect safety triggered for integer casting an
`i32` to a `u7`. closes #1138
* adds compiler-rt function: `__floatuntidf`
2018-06-19 16:06:10 -04:00
Andrew Kelley
a3ddd0826b
remove enum to/from int casting syntax; add `@enumToInt`/`@intToEnum`
...
see #1061
2018-06-19 03:50:38 -04:00
Andrew Kelley
626b73e8be
remove error to/from int casting syntax; add `@errorToInt`/`@intToError`
...
See #1061
2018-06-18 18:48:29 -04:00
Andrew Kelley
a430853a48
standard library fixes
2018-06-18 17:43:01 -04:00
Andrew Kelley
1aafbae5be
remove []u8 casting syntax. add `@bytesToSlice` and `@sliceToBytes`
...
See #1061
2018-06-18 17:25:29 -04:00
Andrew Kelley
c757984879
Merge remote-tracking branch 'origin/master' into llvm7
2018-06-18 14:51:23 -04:00
Andrew Kelley
4210f1f6a0
remove bool to int syntax. add @boolToInt
...
add missing docs
See #1061
2018-06-18 03:07:16 -04:00
Andrew Kelley
906ed059ce
update std.DynLib to use @intCast
2018-06-18 00:52:55 -04:00
Andrew Kelley
7912061226
remove integer and float casting syntax
...
* add `@intCast`
* add `@floatCast`
* add `@floatToInt`
* add `@intToFloat`
See #1061
2018-06-17 02:57:07 -04:00
Andrew Kelley
06a26f0965
std.Complex: use better arg passing convention and fix a TODO
2018-06-16 21:32:53 -04:00
Andrew Kelley
751518787a
Merge pull request #1109 from ziglang/pass-by-non-copying-value
...
allow passing by non-copying value
2018-06-16 21:13:10 -04:00
Andrew Kelley
3ee4d23ebd
posix read can return error.IsDir
2018-06-16 19:54:16 -04:00
Andrew Kelley
e311cd562b
don't automatically take pointer when passing by non-copying value
...
this commit does not have all tests passing
2018-06-16 19:37:00 -04:00
Sahnvour
f47655eb6d
pointer reform: missed change in windows specific code.
2018-06-16 23:47:51 +02:00
Andrew Kelley
65d04cbeb4
std.DynLib: open the fd with CLOEXEC
2018-06-16 17:27:45 -04:00
Andrew Kelley
48de57d824
add basic std lib code for loading dynamic libraries
...
this is going to only work for very basic libraries;
I plan to slowly add more features over time to support more
complicated libraries
2018-06-16 17:01:23 -04:00
Andrew Kelley
32dd98b19f
Merge remote-tracking branch 'origin/master' into llvm7
2018-06-14 18:27:59 -04:00
Andrew Kelley
cdf1e366f9
fix build on windows, broken by previous commit
2018-06-14 16:36:07 -04:00
Andrew Kelley
6943cefebf
std.os.path.dirname: return null instead of empty slice
...
for when there is no directory component. Makes it harder
to write bugs.
closes #1017
2018-06-14 16:15:32 -04:00
Andrew Kelley
2219cc0612
Merge pull request #1105 from ziglang/i128-compiler-rt
...
Add i128 compiler-rt div/mul support
2018-06-14 10:59:38 -04:00
Marc Tiehuis
a369d69c51
Add windows x86_64 i128 abi workaround
2018-06-14 21:18:36 +12:00
Andrew Kelley
fc87f6e417
fix race condition bug in test harness of std.atomic
2018-06-13 11:57:57 -04:00
Andrew Kelley
e1f56c9af6
std.zig.ast: add test for iterate
...
closes #1101
2018-06-13 11:48:06 -04:00
Marc Tiehuis
9110140514
Add i128 compiler-rt div/mul support
2018-06-13 22:25:04 +12:00
Andrew Kelley
fdd9cf0928
better debugging for CI failures of std.atomic
2018-06-12 15:14:32 -04:00
Andrew Kelley
7580e39b38
zig fmt
2018-06-12 02:18:11 -04:00
Andrew Kelley
3dd9af9948
implement std.os.Dir for windows
...
improve std.os.File.access so that it does not depend on shlwapi.dll
closes #1084
2018-06-12 01:57:09 -04:00
tgschultz
854f90aa30
Added C string support to fmt by using "{s}". The format string requirement is for saftey. ( #1092 )
2018-06-10 12:57:21 -04:00
Marc Tiehuis
dc8bda7e02
Add arbitrary-precision integer to std
...
A few notes on the implementation:
- Any unsigned power of two integer type less than 64 bits in size is supported
as a Limb type.
- The algorithms used are kept simple for the moment. More complicated
algorithms are generally only more useful as integer sizes increase a
lot and I don't expect our current usage to be used for this purpose
just yet.
- All branches (practically) have been covered by tests.
See 986a2b3243/bench
for rough performance comparison numbers.
Closes #364 .
2018-06-10 18:24:34 +12:00
Andrew Kelley
0a95b0f1ff
std.zig: update syntax for orelse keyword
2018-06-10 01:18:31 -04:00
Andrew Kelley
77678b2cbc
breaking syntax change: orelse keyword instead of ?? ( #1096 )
...
use the `zig-fmt-optional-default` branch to have zig fmt
automatically do the changes.
closes #1023
2018-06-10 01:13:51 -04:00
Andrew Kelley
ec1b6f6673
breaking syntax change: ??x to x.? ( #1095 )
...
See #1023
This also renames Nullable/Maybe to Optional
2018-06-09 23:42:14 -04:00
marleck55
7a9635555b
std/fmt: Use lowercase k for kilo in base 1000 ( #1090 )
2018-06-09 12:05:58 -04:00
Andrew Kelley
fc6446702e
clean up std.ArrayList
...
* add `std.debug.assertError`
* `std.ArrayList` update everything to follow `self` convention
* rename `std.ArrayList.set` to `std.ArrayList.setOrError`
* add `std.ArrayList.set` which asserts
Before 1.0.0 we might remove some of this API, because you can use
`toSlice()` for everything, but it's ok to add these functions as
an experiment before then.
2018-06-09 12:03:11 -04:00
Arthur Elliott
e0092ee4a5
add set function to arraylist
...
so you can set a value without growing the underlying buffer,
with range safety checks
2018-06-09 11:42:41 -04:00
isaachier
1a9d2f3aae
Fix error handling in Buffer::fromOwnedSlice ( #1082 )
2018-06-08 19:24:48 -04:00
Marc Tiehuis
ffb089a9f5
Fix json parser comma after empty object case
2018-06-08 17:43:13 +12:00
Andrew Kelley
b11c5d8f82
fix std.os.windows.PathFileExists specified in the wrong DLL ( #1066 )
...
closes #1054
2018-06-06 15:36:47 -04:00
isaachier
4fc601895b
Fix const-ness of buffer in replaceContents method ( #1065 )
2018-06-06 14:09:47 -04:00
Marc Tiehuis
e7f141b376
Add json.TokenStream ( #1062 )
...
This hides some of the low-level parsing details from the
StreamingParser. These don't need to be known when parsing a complete
slice at once (which is we can usually do).
Also, remove `Json` from Parser names. The namespace `json` is sufficient.
2018-06-06 11:24:36 -04:00
Marc Tiehuis
212449bc23
Fix Log2Int type construction
...
The following case for example, would previously fail:
const a = u24(1) << Log2Int(u24)(22);
2018-06-06 22:41:55 +12:00
Andrew Kelley
d3693dca73
Pointer Reform: update @typeInfo
...
* add assertion for trying to do @typeInfo on global error set
* remove TypeInfo.Slice
* add TypeInfo.Pointer.Size with possible values
- One
- Many
- Slice
See #770
2018-06-06 00:39:39 -04:00
Andrew Kelley
bd13e757e7
disable deref syntax for unknown length pointers
...
See #770
2018-06-05 23:26:43 -04:00
Andrew Kelley
652f4bdf62
disallow unknown-length pointer to opaque
...
This also means that translate-c has to detect when a pointer to
opaque is happening, and use `*` instead of `[*]`.
See #1059
2018-06-05 18:03:21 -04:00
Andrew Kelley
7dd18294b7
Merge remote-tracking branch 'origin/master' into llvm7
2018-06-05 10:29:54 -04:00
Jimmi HC
02cb220faf
Renamed "(int/float literal)" to "comptime_int/float"
2018-06-05 11:14:43 +02:00
Andrew Kelley
e53b683bd3
Pointer Reform: proper slicing and indexing ( #1053 )
...
* enable slicing for single-item ptr to arrays
* disable slicing for other single-item pointers
* enable indexing for single-item ptr to arrays
* disable indexing for other single-item pointers
see #770
closes #386
2018-06-04 22:11:14 -04:00
Andrew Kelley
d21a1922eb
support `zig fmt: off` and `zig fmt: on` between top level decls
...
closes #1030
closes #1033
2018-06-04 12:15:02 -04:00
Andrew Kelley
11e7e03139
Merge branch 'zig-custom-format' of https://github.com/tgschultz/zig into tgschultz-zig-custom-format
...
I removed the code that checks for type signature and type.
A function named `format` is enough for zig to give it a try.
2018-06-04 11:06:55 -04:00
Andrew Kelley
58ce79f935
Merge remote-tracking branch 'origin/master' into llvm7
2018-06-04 02:58:55 -04:00
Andrew Kelley
96164ce613
disallow single-item pointer indexing
...
add pointer arithmetic for unknown length pointer
2018-06-04 01:39:57 -04:00
Andrew Kelley
f06bce5dda
introduce [*] for unknown length pointers
...
See #770
Currently it does not have any different behavior than `*`
but it is now recommended to use `[*]` for unknown length
pointers to be future-proof.
Instead of [ * ] being separate tokens as the proposal
suggested, this commit implements `[*]` as a single token.
2018-06-02 04:04:23 -04:00
Andrew Kelley
7b386ea242
fix build file template
...
See #1035
2018-06-01 21:51:54 -04:00
Arthur Elliott
08693411d2
fix typo ( #1034 )
2018-06-01 12:23:07 -04:00
Andrew Kelley
e29d12d821
fix incorrect address-of syntax on windows
2018-06-01 01:29:34 -04:00
Andrew Kelley
5f38a01ede
run zig fmt
2018-06-01 01:22:35 -04:00
Andrew Kelley
4d13ab07de
std.zig: update to new pointer syntax
2018-06-01 01:19:26 -04:00
Andrew Kelley
2f614c42fe
ir: rip out special logic for using addr-of instruction for types
...
See #588
2018-05-31 18:23:39 -04:00
Andrew Kelley
fcbb7426fa
use * for pointer type instead of &
...
See #770
To help automatically translate code, see the
zig-fmt-pointer-reform-2 branch.
This will convert all & into *. Due to the syntax
ambiguity (which is why we are making this change),
even address-of & will turn into *, so you'll have
to manually fix thes instances. You will be guaranteed
to get compile errors for them - expected 'type', found 'foo'
2018-05-31 17:28:07 -04:00
Andrew Kelley
a05acaf9fd
Add --color CLI option to zig fmt
...
It doesn't actually do terminal color yet because we need to add
cross platform terminal color abstractions. But it toggles between
the single line error reporting and the multiline error reporting.
See #1026
2018-05-30 18:26:09 -04:00
Andrew Kelley
ea58f4a5a9
run zig fmt on the codebase
2018-05-30 16:09:11 -04:00
Andrew Kelley
b082cd4580
zig fmt: field access does not cause spaces for slicing
...
See #1003
2018-05-30 16:08:40 -04:00
Andrew Kelley
84b1842026
zig fmt: space after fn in fn prototypes
...
See #1003
2018-05-30 15:50:01 -04:00
Andrew Kelley
93b51b0e40
spaces around slice operator if operands are infix
...
See #1003
2018-05-30 15:33:58 -04:00
Andrew Kelley
2c96f19fd3
std.zig.render returns bool of whether anything changed
...
zig fmt only renames files and prints to stdout for files which changed
2018-05-30 14:58:27 -04:00
tgschultz
940a854448
Fix MacOS CI Timer test failing...?
2018-05-30 13:38:41 -05:00
tgschultz
fb001f5e90
Fixed character handling
2018-05-30 12:18:24 -05:00
tgschultz
8938c16f38
Formatting
2018-05-30 10:41:48 -05:00
tgschultz
4e1d0a59fa
Minor typo
2018-05-30 10:24:27 -05:00
tgschultz
8fc52a94f4
Added custom formatter support, refactored fmt.format
2018-05-30 10:18:11 -05:00
Andrew Kelley
b0eebfa560
fix syntax of std/json_test.zig
...
See #663
2018-05-29 18:10:36 -04:00
Andrew Kelley
d172e3f3bb
fix AtomicFile for relative paths
...
closes #1017
2018-05-29 17:38:50 -04:00
Andrew Kelley
0c16cd2d0e
run zig fmt on the codebase
...
See #1003
2018-05-29 04:23:38 -04:00
Andrew Kelley
cdf30c31ea
zig fmt: fix implementation of firstToken() for fn call
2018-05-29 03:47:27 -04:00
Andrew Kelley
cd325e408e
zig fmt: fix extra space after comma before multi line string
2018-05-29 03:33:03 -04:00
Andrew Kelley
cb042c8343
Merge remote-tracking branch 'origin/master' into llvm7
2018-05-29 03:22:52 -04:00
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