README.md | 3 +- build.zig | 7 +- ci/azure/windows_msvc_script.bat | 2 +- doc/langref.html.in | 590 ++++- lib/libc/glibc/abi.txt | 3957 +++++++++++++++++++++++++++++--- lib/libc/glibc/fns.txt | 225 +- lib/libc/glibc/vers.txt | 1 + lib/libc/include/aarch64-linux-gnu/bits/floatn.h | 97 - lib/libc/include/aarch64-linux-gnu/bits/hwcap.h | 21 +- lib/libc/include/aarch64-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/aarch64-linux-gnu/bits/mman.h | 31 + lib/libc/include/aarch64-linux-gnu/bits/typesizes.h | 38 +- lib/libc/include/aarch64-linux-gnu/gnu/lib-names-lp64.h | 2 - lib/libc/include/aarch64-linux-gnu/gnu/stubs-lp64.h | 5 +- lib/libc/include/aarch64_be-linux-gnu/bits/floatn.h | 97 - lib/libc/include/aarch64_be-linux-gnu/bits/hwcap.h | 21 +- lib/libc/include/aarch64_be-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/aarch64_be-linux-gnu/bits/mman.h | 31 + lib/libc/include/aarch64_be-linux-gnu/bits/typesizes.h | 38 +- lib/libc/include/aarch64_be-linux-gnu/gnu/lib-names-lp64_be.h | 2 - lib/libc/include/aarch64_be-linux-gnu/gnu/stubs-lp64_be.h | 5 +- lib/libc/include/arm-linux-gnueabi/bits/long-double.h | 15 +- lib/libc/include/arm-linux-gnueabi/bits/semaphore.h | 34 - lib/libc/include/arm-linux-gnueabihf/bits/long-double.h | 15 +- lib/libc/include/arm-linux-gnueabihf/bits/semaphore.h | 34 - lib/libc/include/armeb-linux-gnueabi/bits/long-double.h | 15 +- lib/libc/include/armeb-linux-gnueabi/bits/semaphore.h | 34 - lib/libc/include/armeb-linux-gnueabihf/bits/long-double.h | 15 +- lib/libc/include/armeb-linux-gnueabihf/bits/semaphore.h | 34 - lib/libc/include/generic-glibc/argp.h | 3 +- lib/libc/include/generic-glibc/bits/fcntl-linux.h | 3 +- lib/libc/include/generic-glibc/bits/fenvinline.h | 8 - lib/libc/include/generic-glibc/bits/floatn.h | 2 +- lib/libc/include/generic-glibc/bits/long-double.h | 2 +- lib/libc/include/generic-glibc/bits/mathcalls-helper-functions.h | 18 +- lib/libc/include/generic-glibc/bits/mathcalls.h | 9 +- lib/libc/include/generic-glibc/bits/mathinline.h | 12 - lib/libc/include/generic-glibc/bits/mman-shared.h | 1 + lib/libc/include/generic-glibc/bits/msq-pad.h | 31 - lib/libc/include/generic-glibc/bits/msq.h | 39 +- lib/libc/include/generic-glibc/bits/resource.h | 2 +- lib/libc/include/generic-glibc/bits/sem-pad.h | 33 - lib/libc/include/generic-glibc/bits/sem.h | 26 +- lib/libc/include/generic-glibc/bits/semaphore.h | 9 +- lib/libc/include/generic-glibc/bits/shm-pad.h | 37 - lib/libc/include/generic-glibc/bits/shm.h | 35 +- lib/libc/include/generic-glibc/bits/signum-arch.h | 64 + lib/libc/include/generic-glibc/bits/signum-generic.h | 27 +- lib/libc/include/generic-glibc/bits/signum.h | 58 - lib/libc/include/generic-glibc/bits/socket-constants.h | 16 +- lib/libc/include/generic-glibc/bits/statx-generic.h | 1 + lib/libc/include/generic-glibc/bits/stdio-ldbl.h | 46 +- lib/libc/include/generic-glibc/bits/stdio2.h | 25 +- lib/libc/include/generic-glibc/bits/stdlib-ldbl.h | 22 + lib/libc/include/generic-glibc/bits/stdlib.h | 17 +- lib/libc/include/generic-glibc/bits/string_fortified.h | 5 +- lib/libc/include/generic-glibc/bits/sys_errlist.h | 32 - lib/libc/include/generic-glibc/bits/syscall.h | 24 +- lib/libc/include/generic-glibc/bits/sysctl.h | 1 - lib/libc/include/generic-glibc/bits/syslog-ldbl.h | 4 +- lib/libc/include/generic-glibc/bits/thread-shared-types.h | 10 + lib/libc/include/generic-glibc/bits/types.h | 1 + lib/libc/include/generic-glibc/bits/types/struct_msqid_ds.h | 47 + lib/libc/include/generic-glibc/bits/types/struct_semid_ds.h | 39 + lib/libc/include/generic-glibc/bits/types/struct_shmid_ds.h | 45 + lib/libc/include/generic-glibc/bits/typesizes.h | 7 + lib/libc/include/generic-glibc/bits/unistd.h | 58 +- lib/libc/include/generic-glibc/bits/wchar-ldbl.h | 36 +- lib/libc/include/generic-glibc/complex.h | 29 +- lib/libc/include/generic-glibc/elf.h | 80 +- lib/libc/include/generic-glibc/err.h | 3 +- lib/libc/include/generic-glibc/error.h | 6 +- lib/libc/include/generic-glibc/features.h | 2 +- lib/libc/include/generic-glibc/fenv.h | 4 - lib/libc/include/generic-glibc/gnu/lib-names-32.h | 2 - lib/libc/include/generic-glibc/gnu/lib-names-hard.h | 2 - lib/libc/include/generic-glibc/gnu/lib-names-n32_hard.h | 2 - lib/libc/include/generic-glibc/gnu/lib-names-n64_hard.h | 2 - lib/libc/include/generic-glibc/gnu/lib-names-o32_hard.h | 2 - lib/libc/include/generic-glibc/gnu/lib-names-soft.h | 2 - lib/libc/include/generic-glibc/gnu/stubs-32.h | 2 - lib/libc/include/generic-glibc/gnu/stubs-64.h | 2 - lib/libc/include/generic-glibc/gnu/stubs-hard.h | 2 - lib/libc/include/generic-glibc/gnu/stubs-n32_hard.h | 2 - lib/libc/include/generic-glibc/gnu/stubs-n64_hard.h | 2 - lib/libc/include/generic-glibc/gnu/stubs-o32_hard.h | 2 - lib/libc/include/generic-glibc/gnu/stubs-soft.h | 2 - lib/libc/include/generic-glibc/inttypes.h | 48 +- lib/libc/include/generic-glibc/malloc.h | 7 +- lib/libc/include/generic-glibc/math.h | 88 +- lib/libc/include/generic-glibc/monetary.h | 3 +- lib/libc/include/generic-glibc/netinet/icmp6.h | 8 +- lib/libc/include/generic-glibc/netinet/in.h | 4 + lib/libc/include/generic-glibc/nss.h | 203 +- lib/libc/include/generic-glibc/printf.h | 3 +- lib/libc/include/generic-glibc/pthread.h | 15 + lib/libc/include/generic-glibc/signal.h | 31 +- lib/libc/include/generic-glibc/stdio.h | 27 +- lib/libc/include/generic-glibc/stdlib.h | 15 +- lib/libc/include/generic-glibc/string.h | 48 +- lib/libc/include/generic-glibc/sys/cdefs.h | 49 +- lib/libc/include/generic-glibc/sys/random.h | 1 + lib/libc/include/generic-glibc/sys/single_threaded.h | 33 + lib/libc/include/generic-glibc/sys/sysctl.h | 76 - lib/libc/include/generic-glibc/sys/syslog.h | 4 +- lib/libc/include/generic-glibc/threads.h | 13 +- lib/libc/include/generic-glibc/unistd.h | 65 +- lib/libc/include/generic-glibc/wchar.h | 14 +- lib/libc/include/i386-linux-gnu/bits/fenv.h | 54 - lib/libc/include/i386-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/i386-linux-gnu/bits/select.h | 63 - lib/libc/include/i386-linux-gnu/bits/sem-pad.h | 24 - lib/libc/include/i386-linux-gnu/bits/semaphore.h | 40 - lib/libc/include/i386-linux-gnu/bits/sysctl.h | 20 - lib/libc/include/i386-linux-gnu/bits/types/struct_semid_ds.h | 34 + lib/libc/include/i386-linux-gnu/bits/typesizes.h | 6 + lib/libc/include/mips-linux-gnu/bits/floatn.h | 97 + lib/libc/include/mips-linux-gnu/bits/msq-pad.h | 31 - lib/libc/include/mips-linux-gnu/bits/resource.h | 2 +- lib/libc/include/mips-linux-gnu/bits/sem-pad.h | 24 - lib/libc/include/mips-linux-gnu/bits/semaphore.h | 36 + lib/libc/include/mips-linux-gnu/bits/shm-pad.h | 26 - lib/libc/include/mips-linux-gnu/bits/signum-arch.h | 65 + lib/libc/include/mips-linux-gnu/bits/signum.h | 68 - lib/libc/include/mips-linux-gnu/bits/types/struct_msqid_ds.h | 56 + lib/libc/include/mips-linux-gnu/bits/types/struct_semid_ds.h | 32 + lib/libc/include/mips-linux-gnu/bits/types/struct_shmid_ds.h | 49 + lib/libc/include/mips64-linux-gnuabi64/bits/floatn.h | 97 + lib/libc/include/mips64-linux-gnuabi64/bits/msq-pad.h | 31 - lib/libc/include/mips64-linux-gnuabi64/bits/resource.h | 2 +- lib/libc/include/mips64-linux-gnuabi64/bits/sem-pad.h | 24 - lib/libc/include/mips64-linux-gnuabi64/bits/semaphore.h | 36 + lib/libc/include/mips64-linux-gnuabi64/bits/shm-pad.h | 26 - lib/libc/include/mips64-linux-gnuabi64/bits/signum-arch.h | 65 + lib/libc/include/mips64-linux-gnuabi64/bits/signum.h | 68 - lib/libc/include/mips64-linux-gnuabi64/bits/types/struct_msqid_ds.h | 56 + lib/libc/include/mips64-linux-gnuabi64/bits/types/struct_semid_ds.h | 32 + lib/libc/include/mips64-linux-gnuabi64/bits/types/struct_shmid_ds.h | 49 + lib/libc/include/mips64-linux-gnuabin32/bits/floatn.h | 97 + lib/libc/include/mips64-linux-gnuabin32/bits/msq-pad.h | 31 - lib/libc/include/mips64-linux-gnuabin32/bits/resource.h | 2 +- lib/libc/include/mips64-linux-gnuabin32/bits/sem-pad.h | 24 - lib/libc/include/mips64-linux-gnuabin32/bits/semaphore.h | 36 + lib/libc/include/mips64-linux-gnuabin32/bits/shm-pad.h | 26 - lib/libc/include/mips64-linux-gnuabin32/bits/signum-arch.h | 65 + lib/libc/include/mips64-linux-gnuabin32/bits/signum.h | 68 - lib/libc/include/mips64-linux-gnuabin32/bits/types/struct_msqid_ds.h | 56 + lib/libc/include/mips64-linux-gnuabin32/bits/types/struct_semid_ds.h | 32 + lib/libc/include/mips64-linux-gnuabin32/bits/types/struct_shmid_ds.h | 49 + lib/libc/include/mips64el-linux-gnuabi64/bits/floatn.h | 97 + lib/libc/include/mips64el-linux-gnuabi64/bits/msq-pad.h | 31 - lib/libc/include/mips64el-linux-gnuabi64/bits/resource.h | 2 +- lib/libc/include/mips64el-linux-gnuabi64/bits/sem-pad.h | 24 - lib/libc/include/mips64el-linux-gnuabi64/bits/semaphore.h | 36 + lib/libc/include/mips64el-linux-gnuabi64/bits/shm-pad.h | 26 - lib/libc/include/mips64el-linux-gnuabi64/bits/signum-arch.h | 65 + lib/libc/include/mips64el-linux-gnuabi64/bits/signum.h | 68 - lib/libc/include/mips64el-linux-gnuabi64/bits/types/struct_msqid_ds.h | 56 + lib/libc/include/mips64el-linux-gnuabi64/bits/types/struct_semid_ds.h | 32 + lib/libc/include/mips64el-linux-gnuabi64/bits/types/struct_shmid_ds.h | 49 + lib/libc/include/mips64el-linux-gnuabin32/bits/floatn.h | 97 + lib/libc/include/mips64el-linux-gnuabin32/bits/msq-pad.h | 31 - lib/libc/include/mips64el-linux-gnuabin32/bits/resource.h | 2 +- lib/libc/include/mips64el-linux-gnuabin32/bits/sem-pad.h | 24 - lib/libc/include/mips64el-linux-gnuabin32/bits/semaphore.h | 36 + lib/libc/include/mips64el-linux-gnuabin32/bits/shm-pad.h | 26 - lib/libc/include/mips64el-linux-gnuabin32/bits/signum-arch.h | 65 + lib/libc/include/mips64el-linux-gnuabin32/bits/signum.h | 68 - lib/libc/include/mips64el-linux-gnuabin32/bits/types/struct_msqid_ds.h | 56 + lib/libc/include/mips64el-linux-gnuabin32/bits/types/struct_semid_ds.h | 32 + lib/libc/include/mips64el-linux-gnuabin32/bits/types/struct_shmid_ds.h | 49 + lib/libc/include/mipsel-linux-gnu/bits/floatn.h | 97 + lib/libc/include/mipsel-linux-gnu/bits/msq-pad.h | 31 - lib/libc/include/mipsel-linux-gnu/bits/resource.h | 2 +- lib/libc/include/mipsel-linux-gnu/bits/sem-pad.h | 24 - lib/libc/include/mipsel-linux-gnu/bits/semaphore.h | 36 + lib/libc/include/mipsel-linux-gnu/bits/shm-pad.h | 26 - lib/libc/include/mipsel-linux-gnu/bits/signum-arch.h | 65 + lib/libc/include/mipsel-linux-gnu/bits/signum.h | 68 - lib/libc/include/mipsel-linux-gnu/bits/types/struct_msqid_ds.h | 56 + lib/libc/include/mipsel-linux-gnu/bits/types/struct_semid_ds.h | 32 + lib/libc/include/mipsel-linux-gnu/bits/types/struct_shmid_ds.h | 49 + lib/libc/include/powerpc-linux-gnu/bits/fenvinline.h | 102 - lib/libc/include/powerpc-linux-gnu/bits/hwcap.h | 4 +- lib/libc/include/powerpc-linux-gnu/bits/iscanonical.h | 2 +- lib/libc/include/powerpc-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/powerpc-linux-gnu/bits/msq-pad.h | 26 - lib/libc/include/powerpc-linux-gnu/bits/sem-pad.h | 26 - lib/libc/include/powerpc-linux-gnu/bits/semaphore.h | 40 - lib/libc/include/powerpc-linux-gnu/bits/shm-pad.h | 28 - lib/libc/include/powerpc-linux-gnu/bits/types/struct_msqid_ds.h | 47 + lib/libc/include/powerpc-linux-gnu/bits/types/struct_semid_ds.h | 39 + lib/libc/include/powerpc-linux-gnu/bits/types/struct_shmid_ds.h | 46 + lib/libc/include/powerpc-linux-gnu/gnu/lib-names-32.h | 2 - lib/libc/include/powerpc-linux-gnu/ieee754.h | 68 +- lib/libc/include/powerpc64-linux-gnu/bits/fenvinline.h | 102 - lib/libc/include/powerpc64-linux-gnu/bits/hwcap.h | 4 +- lib/libc/include/powerpc64-linux-gnu/bits/iscanonical.h | 2 +- lib/libc/include/powerpc64-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/powerpc64-linux-gnu/bits/msq-pad.h | 26 - lib/libc/include/powerpc64-linux-gnu/bits/sem-pad.h | 26 - lib/libc/include/powerpc64-linux-gnu/bits/semaphore.h | 40 - lib/libc/include/powerpc64-linux-gnu/bits/shm-pad.h | 28 - lib/libc/include/powerpc64-linux-gnu/bits/types/struct_msqid_ds.h | 47 + lib/libc/include/powerpc64-linux-gnu/bits/types/struct_semid_ds.h | 39 + lib/libc/include/powerpc64-linux-gnu/bits/types/struct_shmid_ds.h | 46 + lib/libc/include/powerpc64-linux-gnu/gnu/lib-names-64-v1.h | 2 - lib/libc/include/powerpc64-linux-gnu/gnu/stubs-64-v1.h | 2 - lib/libc/include/powerpc64-linux-gnu/ieee754.h | 68 +- lib/libc/include/powerpc64le-linux-gnu/bits/fenvinline.h | 102 - lib/libc/include/powerpc64le-linux-gnu/bits/hwcap.h | 4 +- lib/libc/include/powerpc64le-linux-gnu/bits/iscanonical.h | 2 +- lib/libc/include/powerpc64le-linux-gnu/bits/long-double.h | 5 +- lib/libc/include/powerpc64le-linux-gnu/bits/msq-pad.h | 26 - lib/libc/include/powerpc64le-linux-gnu/bits/sem-pad.h | 26 - lib/libc/include/powerpc64le-linux-gnu/bits/semaphore.h | 40 - lib/libc/include/powerpc64le-linux-gnu/bits/shm-pad.h | 28 - lib/libc/include/powerpc64le-linux-gnu/bits/types/struct_msqid_ds.h | 47 + lib/libc/include/powerpc64le-linux-gnu/bits/types/struct_semid_ds.h | 39 + lib/libc/include/powerpc64le-linux-gnu/bits/types/struct_shmid_ds.h | 46 + lib/libc/include/powerpc64le-linux-gnu/gnu/lib-names-64-v2.h | 2 - lib/libc/include/powerpc64le-linux-gnu/gnu/stubs-64-v2.h | 2 - lib/libc/include/powerpc64le-linux-gnu/ieee754.h | 68 +- lib/libc/include/riscv64-linux-gnu/bits/floatn.h | 97 - lib/libc/include/riscv64-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/riscv64-linux-gnu/bits/semaphore.h | 33 - lib/libc/include/riscv64-linux-gnu/bits/typesizes.h | 38 +- lib/libc/include/riscv64-linux-gnu/gnu/lib-names-lp64.h | 2 - lib/libc/include/riscv64-linux-gnu/gnu/stubs-lp64.h | 5 +- lib/libc/include/s390x-linux-gnu/bits/fenv.h | 4 +- lib/libc/include/s390x-linux-gnu/bits/floatn.h | 97 - lib/libc/include/s390x-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/s390x-linux-gnu/bits/semaphore.h | 39 - lib/libc/include/s390x-linux-gnu/bits/typesizes.h | 7 + lib/libc/include/s390x-linux-gnu/gnu/lib-names-64.h | 2 - lib/libc/include/sparc-linux-gnu/bits/fenv.h | 9 - lib/libc/include/sparc-linux-gnu/bits/floatn.h | 97 - lib/libc/include/sparc-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/sparc-linux-gnu/bits/msq-pad.h | 26 - lib/libc/include/sparc-linux-gnu/bits/resource.h | 2 +- lib/libc/include/sparc-linux-gnu/bits/sem-pad.h | 26 - lib/libc/include/sparc-linux-gnu/bits/semaphore.h | 40 - lib/libc/include/sparc-linux-gnu/bits/shm-pad.h | 28 - lib/libc/include/sparc-linux-gnu/bits/signum-arch.h | 66 + lib/libc/include/sparc-linux-gnu/bits/signum.h | 39 - lib/libc/include/sparc-linux-gnu/bits/types/struct_msqid_ds.h | 47 + lib/libc/include/sparc-linux-gnu/bits/types/struct_semid_ds.h | 39 + lib/libc/include/sparc-linux-gnu/bits/types/struct_shmid_ds.h | 45 + lib/libc/include/sparc-linux-gnu/bits/typesizes.h | 7 + lib/libc/include/sparc-linux-gnu/gnu/lib-names-64.h | 2 - lib/libc/include/sparcv9-linux-gnu/bits/fenv.h | 9 - lib/libc/include/sparcv9-linux-gnu/bits/floatn.h | 97 - lib/libc/include/sparcv9-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/sparcv9-linux-gnu/bits/msq-pad.h | 26 - lib/libc/include/sparcv9-linux-gnu/bits/resource.h | 2 +- lib/libc/include/sparcv9-linux-gnu/bits/sem-pad.h | 26 - lib/libc/include/sparcv9-linux-gnu/bits/semaphore.h | 40 - lib/libc/include/sparcv9-linux-gnu/bits/shm-pad.h | 28 - lib/libc/include/sparcv9-linux-gnu/bits/signum-arch.h | 66 + lib/libc/include/sparcv9-linux-gnu/bits/signum.h | 39 - lib/libc/include/sparcv9-linux-gnu/bits/types/struct_msqid_ds.h | 47 + lib/libc/include/sparcv9-linux-gnu/bits/types/struct_semid_ds.h | 39 + lib/libc/include/sparcv9-linux-gnu/bits/types/struct_shmid_ds.h | 45 + lib/libc/include/sparcv9-linux-gnu/bits/typesizes.h | 7 + lib/libc/include/x86_64-linux-gnu/bits/fenv.h | 54 - lib/libc/include/x86_64-linux-gnu/bits/long-double.h | 2 +- lib/libc/include/x86_64-linux-gnu/bits/select.h | 63 - lib/libc/include/x86_64-linux-gnu/bits/sem-pad.h | 24 - lib/libc/include/x86_64-linux-gnu/bits/semaphore.h | 40 - lib/libc/include/x86_64-linux-gnu/bits/sysctl.h | 20 - lib/libc/include/x86_64-linux-gnu/bits/types/struct_semid_ds.h | 34 + lib/libc/include/x86_64-linux-gnu/bits/typesizes.h | 6 + lib/libc/include/x86_64-linux-gnu/gnu/lib-names-64.h | 2 - lib/libc/include/x86_64-linux-gnu/gnu/stubs-64.h | 2 - lib/libc/include/x86_64-linux-gnux32/bits/fenv.h | 54 - lib/libc/include/x86_64-linux-gnux32/bits/long-double.h | 2 +- lib/libc/include/x86_64-linux-gnux32/bits/select.h | 63 - lib/libc/include/x86_64-linux-gnux32/bits/sem-pad.h | 24 - lib/libc/include/x86_64-linux-gnux32/bits/semaphore.h | 40 - lib/libc/include/x86_64-linux-gnux32/bits/sysctl.h | 20 - lib/libc/include/x86_64-linux-gnux32/bits/types/struct_semid_ds.h | 34 + lib/libc/include/x86_64-linux-gnux32/bits/typesizes.h | 6 + lib/libc/include/x86_64-linux-gnux32/gnu/lib-names-x32.h | 2 - lib/libc/include/x86_64-linux-gnux32/gnu/stubs-x32.h | 2 - lib/std/child_process.zig | 4 +- lib/std/crypto/benchmark.zig | 72 +- lib/std/crypto/chacha20.zig | 26 +- lib/std/crypto/gimli.zig | 58 +- lib/std/fs/test.zig | 24 +- lib/std/heap/general_purpose_allocator.zig | 46 +- lib/std/io/reader.zig | 26 +- lib/std/macho.zig | 357 +++ lib/std/math.zig | 84 +- lib/std/math/asinh.zig | 4 +- lib/std/math/atan.zig | 4 +- lib/std/math/atanh.zig | 4 +- lib/std/math/ceil.zig | 8 +- lib/std/math/exp.zig | 8 +- lib/std/math/exp2.zig | 4 +- lib/std/math/expm1.zig | 4 +- lib/std/math/floor.zig | 12 +- lib/std/math/log1p.zig | 2 +- lib/std/math/round.zig | 6 +- lib/std/math/tanh.zig | 4 +- lib/std/math/trunc.zig | 6 +- lib/std/mem.zig | 41 + lib/std/meta/trailer_flags.zig | 135 +- lib/std/os/test.zig | 26 +- lib/std/os/uefi/protocols/simple_text_input_protocol.zig | 2 +- lib/std/os/windows.zig | 19 +- lib/std/special/compiler_rt.zig | 4 +- lib/std/special/compiler_rt/floatXisf.zig | 97 + lib/std/special/compiler_rt/floatdisf_test.zig | 37 + lib/std/special/compiler_rt/floattisf.zig | 76 - lib/std/special/compiler_rt/floattisf_test.zig | 2 +- lib/std/start.zig | 4 +- lib/std/zig/ast.zig | 264 ++- lib/std/zig/render.zig | 80 +- lib/std/zig/system.zig | 7 +- src-self-hosted/Module.zig | 59 +- src-self-hosted/astgen.zig | 307 ++- src-self-hosted/codegen.zig | 412 ++-- src-self-hosted/link/Elf.zig | 17 +- src-self-hosted/link/MachO.zig | 181 +- src-self-hosted/main.zig | 2 +- src-self-hosted/translate_c.zig | 12 +- src-self-hosted/type.zig | 11 +- src-self-hosted/value.zig | 36 +- src-self-hosted/zir.zig | 20 +- src-self-hosted/zir_sema.zig | 64 +- src/all_types.hpp | 6 - src/codegen.cpp | 1 - src/ir.cpp | 29 - src/ir_print.cpp | 9 - test/compile_errors.zig | 2 +- test/run_translated_c.zig | 17 + test/stage1/behavior/type.zig | 1 - test/stage2/test.zig | 146 ++ test/stage2/zir.zig | 9 +- tools/process_headers.zig | 12 +- 340 files changed, 11140 insertions(+), 5135 deletions(-)