Skip to documentation
SLOP

tiny.choir.backends.wasm.emission.module_encoding

Reference tiny.choir backends wasm emission module_encoding

Defined in backends.wasm.emission.

API (3)

Actions

Public operations.

Namespaces

Public namespaces.

No direct callersNo direct callsbackends.wasm.emissionmodule encoding
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Called byCallsNo direct callersbackends.wasm.emission.module_encoding.commonmoduleOperationprivate sourcelib.choir.src.backends.wasm.emission.module.rootmoduleByteSizeprivate sourcelib.choir.src.backends.wasm.emission.module.s...countBodyprivate sourcelib.choir.src.backends.wasm.emission.module.s...prepareBodiesprivate sourcelib.choir.src.backends.wasm.emission.module.s...countBodybackends.wasm.emission.module_encodingpreparePlan
Static calls · unresolved targets: 0 · external targets: 9.
Called byCallsNo direct callersbackends.wasm.emission.module_encoding.commonmoduleOperationprivate sourcelib.choir.src.backends.wasm.emission.module.s...writeprivate sourcelib.choir.src.backends.wasm.emission.module.s...writebackends.wasm.emission.module_encodingwrite
Static calls · unresolved targets: 4 · external targets: 4.

Source: lib/choir/src/backends/wasm/emission/module/root.zig

zig
const std = @import("std");const wasm = @import("../../root.zig");const emission = @import("../root.zig");const section = @import("section/root.zig");pub const common = @import("common.zig");pub fn preparePlan(    plan: *emission.Plan,    module: *common.ir.Operation,    options: emission.Options,    frames: []emission.function.Frame,) emission.Error!usize {    _ = try common.moduleOperation(module);    if (options.entry) |entry| {        if (plan.functionIndex(entry) == null) return error.FunctionNotFound;    }    try section.code.prepareBodies(plan, module, frames);    plan.sections.type = try section.type_section.countBody(plan, module);    if (plan.importCount() > 0) {        plan.sections.import = try section.import_section.countBody(plan, module);    }    if (plan.definitionCount() > 0) {        plan.sections.function = try section.function_section.countBody(plan, module);        plan.sections.code = try section.code.countBody(plan, module);    }    if (plan.needsMemory()) {        plan.sections.memory = try section.memory.countBody();    }    if (try section.export_section.entryCount(module, options, plan.needsMemory()) > 0) {        plan.sections.export_ = try section.export_section.countBody(plan, module, options);    }    return moduleByteSize(plan);}pub fn write(    out: anytype,    plan: *const emission.Plan,    module: *common.ir.Operation,    options: emission.Options,    frames: []emission.function.Frame,) emission.Error!void {    _ = try common.moduleOperation(module);    try wasm.binary.writeHeader(out);    try section.type_section.write(out, plan, module);    if (plan.importCount() > 0) {        try section.import_section.write(out, plan, module);    }    if (plan.definitionCount() > 0) {        try section.function_section.write(out, plan, module);    }    if (plan.needsMemory()) {        try section.memory.write(out, plan);    }    if (plan.sections.export_ > 0) {        try section.export_section.write(out, plan, module, options);    }    if (plan.definitionCount() > 0) {        try section.code.write(out, plan, module, frames);    }}fn moduleByteSize(plan: *const emission.Plan) emission.Error!usize {    var count = wasm.binary.Count{};    try wasm.binary.writeHeader(&count);    try addSectionSize(&count, .type, plan.sections.type);    if (plan.importCount() > 0) {        try addSectionSize(&count, .import, plan.sections.import);    }    if (plan.definitionCount() > 0) {        try addSectionSize(&count, .function, plan.sections.function);    }    if (plan.needsMemory()) {        try addSectionSize(&count, .memory, plan.sections.memory);    }    if (plan.sections.export_ > 0) {        try addSectionSize(&count, .export_, plan.sections.export_);    }    if (plan.definitionCount() > 0) {        try addSectionSize(&count, .code, plan.sections.code);    }    return count.len;}fn addSectionSize(    count: *wasm.binary.Count,    section_id: wasm.binary.Section,    body_bytes: usize,) emission.Error!void {    try common.writeSectionHeader(count, section_id, body_bytes);    count.len = std.math.add(usize, count.len, body_bytes) catch        return error.CapacityOverflow;}

Source: lib/choir/src/backends/wasm/emission/root.zig:9

zig
pub const module_encoding = module;

Audit

Definitions3
Public names3
Members0
Version26.7.0
Revisiondaab053ee433