Commit Graph

12877 Commits

Author SHA1 Message Date
syscall0 eea8b10463 Call DllMain entry point if declared 2019-11-24 14:46:22 -05:00
schroffl 6109e49c5b Fix FixedSizeFifo buffer type
Update the `.buf` property to be a slice of the type that is given as a parameter.
2019-11-24 14:42:56 -05:00
Vexu 20f5f56986 uncomment event.fs.watch 2019-11-24 17:42:20 +02:00
Vexu ab534cc9f1 update event.fs to use global event loop 2019-11-24 17:39:08 +02:00
MCRusher d49e0a7b90 Added initCapacity, capacity, and 2 tests.
Added Buffer.initCapcity() to buffer to allow preallocation of a block of memory to reduce future allocations. Uses the added ArrayList.initCapacity() function to achieve this.

Added Buffer.capacity() to track current usable allocation size, not counting null byte, and returning 0 if empty or created with Buffer.initNull()

Added a test for initCapacity() that shows that no further allocation is performed for an append of size smaller than or equal to capacity when initCapacity is used.

Added a test for initSize(), since it did not exist already.

Also added a comment to better explain the difference between initSize() and initCapacity()

note: forgot in the first commit but thanks to mikdusan for helping me brainstorm, through the process, and for drawing up a draft diff which I tweaked.
2019-11-23 23:08:33 -05:00
MCRusher 10e6cde083 Added initCapacity and relevant test
Added ArrayList.initCapcity() as a way to preallocate a block of memory to reduce future allocations.

Added a test "std.ArrayList.initCapacity" that ensures initCapacity adds no elements and increases capacity by at least the requested amount
2019-11-23 22:54:33 -05:00
Andrew Kelley 00878a15d7 zig fmt: support sentinel-terminated pointer syntax 2019-11-23 22:21:25 -05:00
Andrew Kelley f25182f46d structs can have fields with type var
behavior tests passing now
2019-11-23 17:51:37 -05:00
Vexu 89310dad56 Merge branch 'master' into modernize-stage2 2019-11-23 23:01:28 +02:00
Vexu b9ef36094c re-enable stage2 tests 2019-11-23 22:57:34 +02:00
Vexu 6c64f079fa add workaround to child_process.zig 2019-11-23 22:06:51 +02:00
Vexu 7fa59565d3 fix small regressions in std.event 2019-11-23 14:01:00 -05:00
Andrew Kelley 7597735bad update the stage1 implementation to the new proposal
See #3731
2019-11-23 04:45:35 -05:00
Vexu 4e6c1b676b add cast to not hit #2561 2019-11-21 23:21:51 -05:00
Vexu 0e8a53514e add missing error set to ChildProsess.SpawnError 2019-11-21 23:21:14 -05:00
Andrew Kelley fd6020c4e2 update tests, better error messages, update self-hosted tokenizer 2019-11-21 20:43:41 -05:00
Andrew Kelley cf2fe2536e better error message when null termination does not match 2019-11-21 20:43:41 -05:00
Andrew Kelley 47f06be369 string literals are now null terminated
this also deletes C string literals from the language, and then makes
the std lib changes and compiler changes necessary to get the behavior
tests and std lib tests passing again.
2019-11-21 20:43:41 -05:00
Andrew Kelley 21f344b3b9 add null terminated pointers and arrays to self-hosted
as well as `@typeInfo` and `@Type`
2019-11-21 20:43:41 -05:00
Andrew Kelley 1aa978f32e implement null terminated pointers 2019-11-21 20:43:41 -05:00
Andrew Kelley cd5f4de2a6 std: remove O_LARGEFILE from OS bits when the OS does not define it 2019-11-21 20:34:55 -05:00
Benjamin Feng 0f0d01a037 Replace magic numbers with named constants 2019-11-21 18:41:02 -06:00
Andrew Kelley bf1cbebea1 improve std.fs.selfExePath and related functions on Windows 2019-11-21 18:51:12 -05:00
Andrew Kelley cd37c1a377 add std.fs.Dir.openRead
This is progress towards file system APIs that encourage avoiding
Time Of Check, Time Of Use bugs.
2019-11-21 17:07:29 -05:00
Andrew Kelley 874b34a30f self-hosted tokenizer handles \r in string literals 2019-11-20 21:03:17 -05:00
Andrew Kelley ed619245e9 remove dead code shebang support from self-hosted tokenizer 2019-11-20 20:18:19 -05:00
Benjamin Feng d27721f58c Add .enable_wasmtime build flag 2019-11-20 12:06:21 -06:00
Benjamin Feng 218f9ff34e Work around WASI's nonexistent @returnAddress() 2019-11-19 20:55:55 -06:00
Benjamin Feng b88bb93af3 WASI isatty 2019-11-19 20:17:00 -06:00
Benjamin Feng 14e9c7d1f2 WASI clock functions 2019-11-19 19:44:19 -06:00
Benjamin Feng c3d93cd9f2 WASI time_t / timespec 2019-11-19 16:12:26 -06:00
Benjamin Feng 747529e96b Use wasm_allocator 2019-11-19 00:31:40 -06:00
Johan Bolmsjö ad77e93415 std.testing.expectEqual: show differing pointer values
Show differing pointer values when comparing pointers instead of the
content they point to.

It's confusing for a test to say "expected S{.x = 1}, found S{.x = 1}"
as illustrated below when it was the pointers that differed.

There seems to be different rules for when a pointer is dereferenced by
the printing routine depending on its type. I don't fully grok this but
it's also illustrated below.

    const std = @import("std");

    const S = struct { x: u32 };

    // before: ...expected S{ .x = 1 }, found S{ .x = 1 }
    // after:  ...expected S@7ffcd20b7798, found S@7ffcd20b7790
    test "compare_ptr_to_struct" {
        var a = S{.x = 1};
        var b = S{.x = 1};
        std.testing.expectEqual(&a, &b);
    }

    // before: ...expected u32@7fff316ba31c, found u32@7fff316ba318
    // after:  ...expected u32@7ffecec622dc, found u32@7ffecec622d8
    test "compare_ptr_to_scalar" {
        var a: u32 = 1;
        var b: u32 = 1;
        std.testing.expectEqual(&a, &b);
    }
2019-11-19 06:22:34 +00:00
dbandstra b3539b40a6 add std.math.tau constant (equivalent to 2 * pi) 2019-11-19 06:20:20 +00:00
frmdstryr aa4e92f3b3 Make StreamServer return address of accecpted client 2019-11-19 01:06:04 +00:00
Andrew Kelley 4dd3f42972 Merge pull request #3695 from daurnimator/towards-afd
Windows definitions
2019-11-17 23:17:48 +00:00
Andrew Kelley 57b8614a5a Merge pull request #3697 from Vexu/container-docs
Implement container level doc comments
2019-11-17 22:31:12 +00:00
Andrew Kelley 8e3370367b Merge pull request #3705 from daurnimator/fix-std.valgrind
std: fix outdated valgrind module
2019-11-17 22:29:17 +00:00
Vexu 6cddf9d723 properly parse anon literal in array 2019-11-17 22:24:21 +00:00
daurnimator d870a68e68 std: add a couple of tests to valgrind module 2019-11-17 14:16:09 +11:00
daurnimator 7d582d0a00 std: fix missing @ptrToInt in valgrind.memcheck 2019-11-17 14:14:57 +11:00
daurnimator 41c72bb54c std: fix use of old syntax in std.valgrind.memcheck 2019-11-17 14:14:57 +11:00
daurnimator cc76494c42 std: use enum literals in valgrind module 2019-11-17 14:14:57 +11:00
daurnimator 4a3bb557f1 std: fix outdated valgrind module 2019-11-17 14:14:57 +11:00
Vexu 977b613881 add container doc comments to generated docs 2019-11-15 15:17:59 +02:00
daurnimator 431eeb5e20 std: add pieces for WSAIoctl on windows 2019-11-15 10:31:52 +11:00
daurnimator 3b8afe31a0 std: add NtDeviceIoControlFile definition for windows 2019-11-15 10:31:51 +11:00
daurnimator 6469900e79 std: add WSAStartup and WSACleanup for windows 2019-11-15 10:31:47 +11:00
Vexu b92f42d1f4 implemented container doc comments in stage 2 2019-11-14 16:25:06 +02:00
daurnimator 4cf535a01b std: add WSASocketW for windows 2019-11-14 17:09:22 +11:00