aboutsummaryrefslogtreecommitdiff
path: root/src/link/Wasm/Flush.zig
AgeCommit message (Collapse)Author
2025-10-29compiler: update for introduction of std.IoAndrew Kelley
only thing remaining is using libc dns resolution when linking libc
2025-09-26compiler: move self-hosted backends from src/arch to src/codegenAlex Rønne Petersen
2025-08-28link.Wasm: update for new writer APIAndrew Kelley
2025-08-11std.ArrayList: make unmanaged the defaultAndrew Kelley
2025-07-11Remove numerous things deprecated during the 0.14 release cycleLinus Groh
Basically everything that has a direct replacement or no uses left. Notable omissions: - std.ArrayHashMap: Too much fallout, needs a separate cleanup. - std.debug.runtime_safety: Too much fallout. - std.heap.GeneralPurposeAllocator: Lots of references to it remain, not a simple find and replace as "debug allocator" is not equivalent to "general purpose allocator". - std.io.Reader: Is being reworked at the moment. - std.unicode.utf8Decode(): No replacement, needs a new API first. - Manifest backwards compat options: Removal would break test data used by TestFetchBuilder. - panic handler needs to be a namespace: Many tests still rely on it being a function, needs a separate cleanup.
2025-07-07compiler: fix a bunch of format stringsAndrew Kelley
2025-07-07std.fmt: breaking API changesAndrew Kelley
added adapter to AnyWriter and GenericWriter to help bridge the gap between old and new API make std.testing.expectFmt work at compile-time std.fmt no longer has a dependency on std.unicode. Formatted printing was never properly unicode-aware. Now it no longer pretends to be. Breakage/deprecations: * std.fs.File.reader -> std.fs.File.deprecatedReader * std.fs.File.writer -> std.fs.File.deprecatedWriter * std.io.GenericReader -> std.io.Reader * std.io.GenericWriter -> std.io.Writer * std.io.AnyReader -> std.io.Reader * std.io.AnyWriter -> std.io.Writer * std.fmt.format -> std.fmt.deprecatedFormat * std.fmt.fmtSliceEscapeLower -> std.ascii.hexEscape * std.fmt.fmtSliceEscapeUpper -> std.ascii.hexEscape * std.fmt.fmtSliceHexLower -> {x} * std.fmt.fmtSliceHexUpper -> {X} * std.fmt.fmtIntSizeDec -> {B} * std.fmt.fmtIntSizeBin -> {Bi} * std.fmt.fmtDuration -> {D} * std.fmt.fmtDurationSigned -> {D} * {} -> {f} when there is a format method * format method signature - anytype -> *std.io.Writer - inferred error set -> error{WriteFailed} - options -> (deleted) * std.fmt.Formatted - now takes context type explicitly - no fmt string
2025-06-12wasm: get self-hosted compiling, and supporting `separate_thread`mlugg
My original goal here was just to get the self-hosted Wasm backend compiling again after the pipeline change, but it turned out that from there it was pretty simple to entirely eliminate the shared state between `codegen.wasm` and `link.Wasm`. As such, this commit not only fixes the backend, but makes it the second backend (after CBE) to support the new 1:N:1 threading model.
2025-06-05std.Target: Introduce Cpu convenience functions for feature tests.Alex Rønne Petersen
Before: * std.Target.arm.featureSetHas(target.cpu.features, .has_v7) * std.Target.x86.featureSetHasAny(target.cpu.features, .{ .sse, .avx, .cmov }) * std.Target.wasm.featureSetHasAll(target.cpu.features, .{ .atomics, .bulk_memory }) After: * target.cpu.has(.arm, .has_v7) * target.cpu.hasAny(.x86, &.{ .sse, .avx, .cmov }) * target.cpu.hasAll(.wasm, &.{ .atomics, .bulk_memory })
2025-01-15wasm linker: omit data count section when value is zeroAndrew Kelley
2025-01-15wasm linker: change rules about symbol visibilityAndrew Kelley
export by default means export, as expected. if you want hidden visibility then use hidden visibility.
2025-01-15wasm linker: delete commented out codeAndrew Kelley
this logic has not yet been ported to the new design, but the logic is safe and sound in the git history and does not need to also live as commented out code
2025-01-15wasm linker: fix TLS data segmentsAndrew Kelley
fix calculation of alignment and size include __tls_align and __tls_size globals along with __tls_base include them only if the TLS segment is emitted add missing reloc logic for memory_addr_tls_sleb fix name of data segments to include only the prefix
2025-01-15wasm linker: ability to get data and functions from objectsAndrew Kelley
2025-01-15wasm linker: implement --export-tableAndrew Kelley
2025-01-15wasm-linker: remap function types during flushAndrew Kelley
this is technically not necessary, and loses value the bigger the output binary is, however it means a smaller output file, so let's do it.
2025-01-15wasm linker: implement __wasm_init_tls synthetic functionAndrew Kelley
2025-01-15wasm linker: correct export visibility logicAndrew Kelley
exports are hidden unless protected or rdynamic or explicitly asked for, matching master branch
2025-01-15wasm linker: always passive when importing memoryAndrew Kelley
and detect passive inits from Zcu don't forget to intern function type for __wasm_init_memory make that function the start function if it is present don't skip emitting passive data segment data to the binary
2025-01-15wasm linker: implement hidden visibilityAndrew Kelley
2025-01-15wasm linker: fix data segment namesAndrew Kelley
2025-01-15wasm linker: fix `@tagName` for auto-numbered non-exhaustive enumsAndrew Kelley
2025-01-15wasm linker: fix missed addend for uav and nav fixupsAndrew Kelley
2025-01-15wasm linker: fix bad export index mathAndrew Kelley
2025-01-15wasm linker: implement `@tagName` for sparse enumsAndrew Kelley
2025-01-15wasm linker: implement `@tagName` functions when tags are autoassignedAndrew Kelley
2025-01-15wasm linker: don't pretend it's possible to export data symbolsAndrew Kelley
2025-01-15wasm linker: fix off-by-one in function table indexesAndrew Kelley
2025-01-15wasm linker: mark symbol deps on intrinsicsAndrew Kelley
2025-01-15wasm linker: handle function data references properlyAndrew Kelley
2025-01-15wasm-linker: fix splitSegmentName and add unit testAndrew Kelley
2025-01-15wasm linker: don't call init functions unless object includedAndrew Kelley
2025-01-15implement indirect function table for object functionsAndrew Kelley
2025-01-15wasm linker: handle weak globals in relocsAndrew Kelley
2025-01-15wasm linker: don't assume nav callees are fully resolvedAndrew Kelley
codegen can be called which contains calls to navs which have only their type resolved. this means the indirect function table needs to track nav indexes not ip indexes.
2025-01-15wasm linker: distinguish symbol name vs import name, and implement weakAndrew Kelley
2025-01-15wasm linker: fix not merging object memoriesAndrew Kelley
2025-01-15wasm linker: apply object relocations to data segmentsAndrew Kelley
2025-01-15wasm linker: emit __heap_base and __heap_end globals and datasAndrew Kelley
2025-01-15wasm linker: implement __wasm_init_memoryAndrew Kelley
2025-01-15wasm linker: implement data relocsAndrew Kelley
2025-01-15wasm linker: implement data symbolsAndrew Kelley
2025-01-15wasm linker: implement __wasm_call_ctorsAndrew Kelley
2025-01-15implement function relocationsAndrew Kelley
not all relocation types are implemented yet
2025-01-15type checking for synthetic functionsAndrew Kelley
2025-01-15wasm linker: chase relocations for referencesAndrew Kelley
2025-01-15fix missing missing entry symbol error when no zcuAndrew Kelley
2025-01-15wasm linker: fix crashes when parsing compiler_rtAndrew Kelley
2025-01-15wasm linker: fix active data segment offset valueAndrew Kelley
2025-01-15fix stack pointer initialized to wrong vaddrAndrew Kelley