zig/BRANCH_TODO
2020-09-28 23:20:14 -07:00

51 lines
3.2 KiB
Plaintext

* MachO LLD linking
* audit the CLI options for stage2
* audit the base cache hash
* On operating systems that support it, do an execve for `zig test` and `zig run` rather than child process.
* `-ftime-report`
* -fstack-report print stack size diagnostics\n"
* try building some software with zig cc to make sure it didn't regress
* implement proper parsing of clang stderr/stdout and exposing compile errors with the Compilation API
* implement proper parsing of LLD stderr/stdout and exposing compile errors with the Compilation API
* support cross compiling stage2 with `zig build`
* implement proper compile errors for failing to build glibc crt files and shared libs
* implement -fno-emit-bin
* improve the stage2 tests to support testing with LLVM extensions enabled
* implement emit-h in stage2
* multi-thread building C objects
* implement serialization/deserialization of incremental compilation metadata
* incremental compilation - implement detection of which source files changed
* improve the cache hash logic for c objects with respect to extra flags and file parameters
* LLVM codegen backend: put a sub-arch in the triple in some cases
* implement an LLVM backend for stage2
* implement outputting dynamic libraries in self-hosted linker
* implement outputting static libraries (archive files) in self-hosted linker
* support linking against object files in self-hosted linker
* avoid invoking lld when it's just 1 object file (the `zig cc -c` case)
* `zig fmt --check` should output to stdout not stderr.
* main.zig: If there was an argsAllocZ we could avoid this allocation
* improve robustness of response file parsing
* there are a couple panic("TODO") in clang options parsing
* std.testing needs improvement to support exposing directory path for its tmp dir (look for "bogus")
* integrate target features into building assembly code
* libc_installation.zig: make it look for msvc only if msvc abi is chosen
* switch the default C ABI for windows to be mingw-w64
- make it .obj instead of .o always for coff
* change glibc log errors to normal exposed compile errors
* improve Directory.join to only use 1 allocation in a clean way.
* tracy builds with lc++
* some kind of "zig identifier escape" function rather than unconditionally using @"" syntax
in builtin.zig
* rename std.builtin.Mode to std.builtin.OptimizeMode
* implement `zig run` and `zig test` when combined with `--watch`
* close the --pkg-begin --pkg-end Package directory handles
* make std.Progress support multithreaded
* update musl.zig static data to use native path separator in static data rather than replacing '/' at runtime
* linking hello world with LLD, lld is silently calling exit(1) instead of reporting ok=false. when run standalone the error message is: ld.lld: error: section [index 3] has a sh_offset (0x57000) + sh_size (0x68) that is greater than the file size (0x57060)
* submit PR to godbolt and update the CLI options (see changes to test/cli.zig)
* make proposal about log levels
* proposal for changing fs Z/W functions to be native paths and have a way to do native path string literals
* proposal for block { break x; }
* generally look for the "TODO surface this as a real compile error message" and fix all that stuff