zig/std
Andrew Kelley cf4bccf765
improvements targeted at improving async functions
* Reuse bytes of async function frames when non-async functions
   make `noasync` calls. This prevents explosive stack growth.
 * Zig now passes a stack size argument to the linker when linking ELF
   binaries. Linux ignores this value, but it is available as a program
   header called GNU_STACK. I prototyped some code that memory maps
   extra space to the stack using this program header, but there was
   still a problem when accessing stack memory very far down. Stack
   probing is needed or not working or something. I also prototyped
   using `@newStackCall` to call main and that does work around the
   issue but it also brings its own issues. That code is commented out
   for now in std/special/start.zig. I'm on a plane with no Internet,
   but I plan to consult with the musl community for advice when I get a
   chance.
 * Added `noasync` to a bunch of function calls in std.debug. It's very
   messy but it's a workaround that makes stack traces functional with
   evented I/O enabled. Eventually these will be cleaned up as the root
   bugs are found and fixed. Programs built in blocking mode are
   unaffected.
 * Lowered the default stack size of std.io.InStream (for the async
   version) to 1 MiB instead of 4. Until we figure out how to get
   choosing a stack size working (see 2nd bullet point above), 4 MiB
   tends to cause segfaults due to stack size running out, or usage of
   stack memory too far apart, or something like that.
 * Default thread stack size is bumped from 8 MiB to 16 to match the
   size we give for the main thread. It's planned to eventually remove
   this hard coded value and have Zig able to determine this value
   during semantic analysis, with call graph analysis and function
   pointer annotations and extern function annotations.
2019-09-12 01:40:58 -04:00
..
atomic heap: make one global instance of DirectAllocator 2019-06-22 14:10:53 -04:00
build
c fixups 2019-08-20 15:25:30 -04:00
crypto Update hash/crypto benchmark scripts 2019-08-21 20:34:12 +12:00
debug Fix off-by-one error in LEB128 parsing 2019-05-15 11:11:16 -04:00
event make the std lib support event-based I/O 2019-09-10 10:26:52 -04:00
fmt Fix addition direction, remove superfluous loop counter, add tests 2019-09-03 13:45:02 -04:00
fs Implement remaining requested changes 2019-09-04 16:23:25 +02:00
hash Adjust the stdlib to be 32bit compatible 2019-09-09 16:16:13 -04:00
heap fixups 2019-06-27 12:04:14 -04:00
http hash_map: adding a StringHashMap for convenience 2019-08-24 15:30:23 +02:00
io improvements targeted at improving async functions 2019-09-12 01:40:58 -04:00
json json tests do not need this prefix anymore 2019-04-29 14:04:31 -04:00
math std/fmt: Make FormatOptions arguments non-comptime 2019-08-19 22:28:13 +12:00
meta different array literal syntax when inferring the size 2019-06-09 19:26:32 -04:00
os improvements targeted at improving async functions 2019-09-12 01:40:58 -04:00
rand
special improvements targeted at improving async functions 2019-09-12 01:40:58 -04:00
time more fixes for windows and wasi 2019-05-27 01:35:58 -04:00
unicode std.unicode.utf8ToUtf16Le: improve performance 2019-07-15 19:35:10 -04:00
valgrind ran zig fmt on stdlib 2019-05-19 16:33:31 -04:00
zig Recognize & skip the UTF-8 BOM 2019-09-11 15:20:18 -04:00
array_list.zig align(@alignOf(T)) T does not force resolution of T 2019-08-30 14:53:44 -04:00
ascii.zig different array literal syntax when inferring the size 2019-06-09 19:26:32 -04:00
atomic.zig
base64.zig different array literal syntax when inferring the size 2019-06-09 19:26:32 -04:00
bloom_filter.zig std: add BloomFilter data structure 2019-09-10 10:20:30 -04:00
buf_map.zig changing occurrences of HashMap with []const u8 as keys for StringHashMap 2019-09-03 23:53:05 +02:00
buf_set.zig changing occurrences of HashMap with []const u8 as keys for StringHashMap 2019-09-03 23:53:05 +02:00
buffer.zig clean up references to os 2019-05-26 18:32:44 -04:00
build.zig Merge pull request #3169 from Sahnvour/string_hash_map 2019-09-03 20:30:26 -04:00
c.zig make the std lib support event-based I/O 2019-09-10 10:26:52 -04:00
child_process.zig code formatting 2019-07-05 14:14:25 -04:00
coff.zig coff & pdb: improved correctness of our implementation, it is now able to handle stage1's pdb and print its stack traces 2019-07-29 23:40:18 +02:00
crypto.zig std: add gimli permutation to crypto 2019-06-16 22:55:38 -04:00
cstr.zig tests passing on linux 2019-05-26 23:35:26 -04:00
debug.zig improvements targeted at improving async functions 2019-09-12 01:40:58 -04:00
dwarf.zig Recover symbol infos from DWARF sections 2019-04-20 10:35:39 +02:00
dynamic_library.zig update load dynamic library test for std lib changes 2019-05-30 00:04:11 -04:00
elf.zig std: remove elf.auto_close_stream and elf.prealloc_file 2019-08-04 16:27:36 +10:00
event.zig make the std lib support event-based I/O 2019-09-10 10:26:52 -04:00
fmt.zig std/fmt: Make FormatOptions arguments non-comptime 2019-08-19 22:28:13 +12:00
fs.zig improvements to std lib for event-based I/O 2019-08-16 21:29:29 -04:00
hash.zig Simplify wyhash and improve speed 2019-08-27 19:42:37 +02:00
hash_map.zig add fastpath for std.mem.eql and simplify std.hash_map.eqlString 2019-09-03 23:56:04 +02:00
heap.zig fixups 2019-06-27 12:04:14 -04:00
http.zig std: add std.http.Headers field 2019-06-11 22:54:40 +10:00
io.zig make the std lib support event-based I/O 2019-09-10 10:26:52 -04:00
json.zig changing occurrences of HashMap with []const u8 as keys for StringHashMap 2019-09-03 23:53:05 +02:00
lazy_init.zig
linked_list.zig std: Add singly linked list 2019-06-10 15:41:40 +10:00
macho.zig
math.zig allow comptime_int to implicit cast to comptime_float 2019-08-11 12:01:02 -04:00
mem.zig add fastpath for std.mem.eql and simplify std.hash_map.eqlString 2019-09-03 23:56:04 +02:00
meta.zig std: add BloomFilter data structure 2019-09-10 10:20:30 -04:00
mutex.zig heap: make one global instance of DirectAllocator 2019-06-22 14:10:53 -04:00
net.zig improvements to std lib for event-based I/O 2019-08-16 21:29:29 -04:00
os.zig make the std lib support event-based I/O 2019-09-10 10:26:52 -04:00
packed_int_array.zig heap: make one global instance of DirectAllocator 2019-06-22 14:10:53 -04:00
pdb.zig pdb: improved stream reading performance, printing stack trace from a stage1 crash is now 10x faster 2019-07-29 23:40:18 +02:00
priority_queue.zig different array literal syntax when inferring the size 2019-06-09 19:26:32 -04:00
process.zig fixed slice length in getEnvVarOwned 2019-07-17 12:13:50 -04:00
rand.zig fix array literal syntax 2019-06-10 00:39:40 -04:00
rb.zig zig fmt 2019-08-15 18:19:04 -04:00
segmented_list.zig fix std.fmt to handle std.SegmentedList 2019-07-29 16:32:26 -04:00
sort.zig different array literal syntax when inferring the size 2019-06-09 19:26:32 -04:00
spinlock.zig
statically_initialized_mutex.zig heap: make one global instance of DirectAllocator 2019-06-22 14:10:53 -04:00
std.zig std: add BloomFilter data structure 2019-09-10 10:20:30 -04:00
testing.zig add the anyframe and anyframe->T types 2019-07-26 19:52:35 -04:00
thread.zig improvements targeted at improving async functions 2019-09-12 01:40:58 -04:00
time.zig windows does not integrate cleanly with libc 2019-05-27 15:55:15 -04:00
unicode.zig fix build on windows 2019-07-15 19:50:56 -04:00
valgrind.zig Fix formatting for multiline asm expressions 2019-05-13 12:20:11 -04:00
zig.zig zig fmt on the standard library 2019-05-12 12:56:01 -04:00