{ "flags": [ "-O", "ReleaseSafe", "-fcompiler-rt" ], "source": "//! Native C ABI. The caller supplies aligned instance storage; no global VM,\n//! allocator, OS call or browser dependency is part of this selected module.\nconst Engine = @import(\"engine.zig\").Engine;\n\nexport fn pure_scalar_bytes() usize {\n return @sizeOf(Engine);\n}\nexport fn pure_scalar_alignment() usize {\n return @alignOf(Engine);\n}\n\nexport fn pure_scalar_initialize(memory: ?*anyopaque, size: usize) ?*Engine {\n const pointer = memory orelse return null;\n if (size < @sizeOf(Engine) or @intFromPtr(pointer) % @alignOf(Engine) != 0) return null;\n const instance: *Engine = @ptrCast(@alignCast(pointer));\n instance.* = .{};\n return instance;\n}\n\nexport fn pure_scalar_reset_all(instance: *Engine) void {\n instance.reset_all();\n}\n\nexport fn pure_scalar_begin_program(instance: *Engine, state_count: u32, input_count: u32) u32 {\n return instance.begin_program(state_count, input_count);\n}\n\nexport fn pure_scalar_abort_program(instance: *Engine) void {\n instance.abort_program();\n}\n\nexport fn pure_scalar_put_state(instance: *Engine, id: u32, initial: f64, old_id: i32) u32 {\n return instance.put_state(id, initial, old_id);\n}\n\nexport fn pure_scalar_put_instruction(instance: *Engine, op: u32, arg: u32, value: f64) u32 {\n return instance.put_instruction(op, arg, value);\n}\n\nexport fn pure_scalar_put_handler(instance: *Engine, event: u32, start: u32, length: u32) u32 {\n return instance.put_handler(event, start, length);\n}\n\nexport fn pure_scalar_bind_handler(instance: *Engine, handler: u32, base: u32, count: u32) u32 {\n return instance.bind_handler(handler, base, count);\n}\n\nexport fn pure_scalar_put_pointer_target(instance: *Engine, input: u32, base: u32, count: u32) u32 {\n return instance.put_pointer_target(input, base, count);\n}\n\nexport fn pure_scalar_bind_target_handler(instance: *Engine, handler: u32, count: u32) u32 {\n return instance.bind_target_handler(handler, count);\n}\n\nexport fn pure_scalar_put_restored_value(instance: *Engine, id: u32, value: f64) u32 {\n return instance.put_restored_value(id, value);\n}\n\nexport fn pure_scalar_commit_program(instance: *Engine) u32 {\n return instance.commit_program();\n}\n\nexport fn pure_scalar_commit_restored_program(instance: *Engine) u32 {\n return instance.commit_restored_program();\n}\n\nexport fn pure_scalar_reset_state(instance: *Engine) void {\n instance.reset_state();\n}\n\nexport fn pure_scalar_dispatch(instance: *Engine, event: u32, dt: f64) u32 {\n return instance.dispatch(event, dt);\n}\n\nexport fn pure_scalar_dispatch_point(instance: *Engine, event: u32, x: f64, y: f64) u32 {\n return instance.dispatch_point(event, x, y);\n}\n\nexport fn pure_scalar_dispatch_target(instance: *Engine, event: u32, target: u32, x: f64, y: f64) u32 {\n return instance.dispatch_target(event, target, x, y);\n}\n\nexport fn pure_scalar_dispatch_value(instance: *Engine, event: u32, value: f64) u32 {\n return instance.dispatch_value(event, value);\n}\n\nexport fn pure_scalar_eval_at(instance: *Engine, start: u32, length: u32) f64 {\n return instance.eval_at(start, length);\n}\n\nexport fn pure_scalar_configure_evaluation(instance: *Engine, cache: u32, history: u32) u32 {\n return instance.configure_evaluation(cache, history);\n}\n\nexport fn pure_scalar_forget_evaluation(instance: *Engine, flags: u32) void {\n instance.forget_evaluation(flags);\n}\n\nexport fn pure_scalar_begin_evaluation(instance: *Engine, limit: u32) void {\n instance.begin_evaluation(limit);\n}\n\nexport fn pure_scalar_eval_bounded(instance: *Engine, start: u32, length: u32) f64 {\n return instance.eval_bounded(start, length);\n}\n\nexport fn pure_scalar_evaluation_info(instance: *Engine, id: u32) u32 {\n return instance.evaluation_info(id);\n}\n\nexport fn pure_scalar_get_state(instance: *Engine, id: u32) f64 {\n return instance.get_state(id);\n}\n\nexport fn pure_scalar_info(instance: *Engine, id: u32) u32 {\n return instance.info(id);\n}\n\nexport fn pure_scalar_layout(instance: *Engine, id: u32) u32 {\n return instance.layout(id);\n}\n", "archive_sha256": "544095c23edc9d9e2fd6418bcd4bc02d5ad81921fa943a31e1635eb4e323d2a7", "size": " text\t data\t bss\t dec\t hex\tfilename\n 240820\t 80\t 149\t 241049\t 3ad99\tprototypes/workbench/build/cache/tmp/b77f55ad39a6ffce/libpure-scalar_zcu.o (ex prototypes/workbench/build/libpure-scalar.a)\n 154614\t 8\t 4096\t 158718\t 26bfe\tprototypes/workbench/build/global-cache/o/0fe48ea8b47e9365f14b0a3f1025eb57/compiler_rt.o (ex prototypes/workbench/build/libpure-scalar.a)\n", "undefined": "\nprototypes/workbench/build/cache/tmp/b77f55ad39a6ffce/libpure-scalar_zcu.o:\n w _DYNAMIC\n U getauxval\n U memcpy\n U memmove\n U memset\n\nprototypes/workbench/build/global-cache/o/0fe48ea8b47e9365f14b0a3f1025eb57/compiler_rt.o:\n", "scope": "Archive section totals before linking; not the deployed file size or runtime memory." }