diff --git a/crates/compiler/builtins/bitcode/src/dec.zig b/crates/compiler/builtins/bitcode/src/dec.zig index 92738c7351..d8a5281e75 100644 --- a/crates/compiler/builtins/bitcode/src/dec.zig +++ b/crates/compiler/builtins/bitcode/src/dec.zig @@ -7,7 +7,7 @@ const math = std.math; const always_inline = std.builtin.CallOptions.Modifier.always_inline; const RocStr = str.RocStr; const WithOverflow = utils.WithOverflow; -const roc_panic = utils.panic; +const roc_panic = @import("panic.zig").panic_help; const U256 = num_.U256; const mul_u128 = num_.mul_u128; diff --git a/crates/compiler/builtins/bitcode/src/main.zig b/crates/compiler/builtins/bitcode/src/main.zig index fcbd3cc7c7..5b2ebb5bef 100644 --- a/crates/compiler/builtins/bitcode/src/main.zig +++ b/crates/compiler/builtins/bitcode/src/main.zig @@ -3,6 +3,7 @@ const builtin = @import("builtin"); const math = std.math; const utils = @import("utils.zig"); const expect = @import("expect.zig"); +const panic_utils = @import("panic.zig"); const ROC_BUILTINS = "roc_builtins"; const NUM = "num"; @@ -166,7 +167,7 @@ comptime { exportUtilsFn(utils.decrefCheckNullC, "decref_check_null"); exportUtilsFn(utils.allocateWithRefcountC, "allocate_with_refcount"); - @export(utils.panic, .{ .name = "roc_builtins.utils." ++ "panic", .linkage = .Weak }); + @export(panic_utils.panic, .{ .name = "roc_builtins.utils." ++ "panic", .linkage = .Weak }); if (builtin.target.cpu.arch != .wasm32) { exportUtilsFn(expect.expectFailedStartSharedBuffer, "expect_failed_start_shared_buffer"); diff --git a/crates/compiler/builtins/bitcode/src/num.zig b/crates/compiler/builtins/bitcode/src/num.zig index 23670f4142..990982b7a2 100644 --- a/crates/compiler/builtins/bitcode/src/num.zig +++ b/crates/compiler/builtins/bitcode/src/num.zig @@ -4,7 +4,7 @@ const math = std.math; const RocList = @import("list.zig").RocList; const RocStr = @import("str.zig").RocStr; const WithOverflow = @import("utils.zig").WithOverflow; -const roc_panic = @import("utils.zig").panic; +const roc_panic = @import("panic.zig").panic_help; pub fn NumParseResult(comptime T: type) type { // on the roc side we sort by alignment; putting the errorcode last diff --git a/crates/compiler/builtins/bitcode/src/utils.zig b/crates/compiler/builtins/bitcode/src/utils.zig index 94a6190f8d..c8ab9f0039 100644 --- a/crates/compiler/builtins/bitcode/src/utils.zig +++ b/crates/compiler/builtins/bitcode/src/utils.zig @@ -16,9 +16,6 @@ extern fn roc_realloc(c_ptr: *anyopaque, new_size: usize, old_size: usize, align // This should never be passed a null pointer. extern fn roc_dealloc(c_ptr: *anyopaque, alignment: u32) callconv(.C) void; -// Signals to the host that the program has panicked -extern fn roc_panic(c_ptr: *const anyopaque, tag_id: u32) callconv(.C) void; - // should work just like libc memcpy (we can't assume libc is present) extern fn roc_memcpy(dst: [*]u8, src: [*]u8, size: usize) callconv(.C) void; @@ -108,11 +105,6 @@ pub fn dealloc(c_ptr: [*]u8, alignment: u32) void { return @call(.{ .modifier = always_inline }, roc_dealloc, .{ c_ptr, alignment }); } -// must export this explicitly because right now it is not used from zig code -pub fn panic(c_ptr: *const anyopaque, alignment: u32) callconv(.C) void { - return @call(.{ .modifier = always_inline }, roc_panic, .{ c_ptr, alignment }); -} - pub fn memcpy(dst: [*]u8, src: [*]u8, size: usize) void { @call(.{ .modifier = always_inline }, roc_memcpy, .{ dst, src, size }); }