Zig
Constants
BUILD = "const std = @import(\"std\");\n\npub fn build(b: *std.Build) void {\n const target = b.standardTargetOptions(.{});\n const optimize = b.standardOptimizeOption(.{});\n\n // Get the gc dependency\n const gc_dep = b.dependency(\"gc\", .{\n .target = target,\n .optimize = optimize,\n });\n\n // Create a module for your executable\n const exe_module = b.createModule(.{\n .root_source_file = b.path(\"main.zig\"),\n .target = target,\n .optimize = optimize,\n });\n\n // Add the gc module import to your module\n exe_module.addImport(\"gc\", gc_dep.module(\"gc\"));\n\n const exe = b.addExecutable(.{\n .name = \"myapp\",\n .root_module = exe_module,\n });\n\n b.installArtifact(exe);\n\n const run_cmd = b.addRunArtifact(exe);\n run_cmd.step.dependOn(b.getInstallStep());\n\n if (b.args) |args| {\n run_cmd.addArgs(args);\n }\n\n const run_step = b.step(\"run\", \"Run the app\");\n run_step.dependOn(&run_cmd.step);\n}"
BUILD_ZON = ".{\n .name = .mismo,\n .version = \"0.1.0\",\n .fingerprint = 0xba474342e776b342,\n .dependencies = .{\n .gc = .{\n .url = \"git+https://github.com/johan0A/gc.zig#2dbf13da594324cb32e13c7e79a1ecd4c2f906b3\",\n .hash = \"gc-0.1.0-kQ7npy0aAAAxBHEdeK_6Tn6cQVYt6H40OX10YhJPQ8nC\",\n },\n },\n .paths = .{\n \"build.zig\",\n \"build.zig.zon\",\n },\n}"
PRELUDE = "const std = @import(\"std\");\n// const GC = @import(\"gc\").bdwgc;\nvar debug_allocator_state = std.heap.DebugAllocator(.{}){};\nvar debug_allocator: std.mem.Allocator = undefined;\n// var gc_allocator: std.mem.Allocator = undefined;\n\npub fn __zig_print_0(value: String_t) void {\n _ = std.fs.File.stdout().write(value.bytes.buffer) catch unreachable;\n _ = std.fs.File.stdout().write(\"\\n\") catch unreachable;\n}\npub fn __zig_panic_0(value: String_t) noreturn {\n _ = std.fs.File.stdout().write(\"\\x1B[90mPanic: \") catch unreachable;\n _ = std.fs.File.stdout().write(value.bytes.buffer) catch unreachable;\n _ = std.fs.File.stdout().write(\"\\x1B[0m\\n\") catch unreachable;\n std.process.exit(1);\n}\n\npub fn __zig_eq_0(left: anytype, right: anytype) bool {\n return left == right;\n}\npub fn __zig_neq_0(left: anytype, right: anytype) bool {\n return left != right;\n}\npub fn __zig_lt_0(left: anytype, right: anytype) bool {\n return left < right;\n}\npub fn __zig_gt_0(left: anytype, right: anytype) bool {\n return left > right;\n}\npub fn __zig_lte_0(left: anytype, right: anytype) bool {\n return left <= right;\n}\npub fn __zig_gte_0(left: anytype, right: anytype) bool {\n return left >= right;\n}\n\npub fn __zig_add_uint_0(left: usize, right: usize) usize {\n return left + right;\n}\npub fn __zig_sub_uint_0(left: usize, right: usize) usize {\n return left - right;\n}\npub fn __zig_mul_uint_0(left: usize, right: usize) usize {\n return left * right;\n}\npub fn __zig_div_uint_0(left: usize, right: usize) usize {\n return left / right;\n}\npub fn __zig_neg_int_0(int: anytype) isize {\n return -int;\n}\npub fn __zig_add_int_0(left: isize, right: isize) isize {\n return left + right;\n}\npub fn __zig_sub_int_0(left: isize, right: isize) isize {\n return left - right;\n}\npub fn __zig_mul_int_0(left: isize, right: isize) isize {\n return left * right;\n}\npub fn __zig_div_int_0(left: isize, right: isize) isize {\n return @divTrunc(left, right);\n}\npub fn __zig_neg_float_0(float: anytype) f64 {\n return -float;\n}\npub fn __zig_add_float_0(left: f64, right: f64) f64 {\n return left + right;\n}\npub fn __zig_sub_float_0(left: f64, right: f64) f64 {\n return left - right;\n}\npub fn __zig_mul_float_0(left: f64, right: f64) f64 {\n return left * right;\n}\npub fn __zig_div_float_0(left: f64, right: f64) f64 {\n return left / right;\n}\n\n/// Conversion Functions\npub fn __zig_nat2int_0(nat: usize) isize {\n return @intCast(nat);\n}\npub fn __zig_nat2float_0(nat: usize) f64 {\n return @floatFromInt(nat);\n}\npub fn __zig_nat2string_0(nat: usize) String_t {\n const buffer = std.fmt.allocPrint(debug_allocator, \"{d}\", .{nat}) catch unreachable;\n return String_t{ .bytes = Array_t(u8){ .buffer = buffer, .size = buffer.len } };\n}\npub fn __zig_int2nat_0(int: isize) usize {\n return @intCast(int);\n}\npub fn __zig_int2float_0(int: isize) f64 {\n return @floatFromInt(int);\n}\npub fn __zig_int2string_0(int: isize) String_t {\n const buffer = std.fmt.allocPrint(debug_allocator, \"{d}\", .{int}) catch unreachable;\n return String_t{ .bytes = Array_t(u8){ .buffer = buffer, .size = buffer.len } };\n}\npub fn __zig_float2int_0(float: f64) isize {\n return @intFromFloat(float);\n}\npub fn __zig_float2nat_0(float: f64) usize {\n return @intFromFloat(float);\n}\npub fn __zig_float2string_0(float: f64) String_t {\n const buffer = std.fmt.allocPrint(debug_allocator, \"{d}\", .{float}) catch unreachable;\n return String_t{ .bytes = Array_t(u8){ .buffer = buffer, .size = buffer.len } };\n}\npub fn __zig_string2int_0(string: []const u8) isize {\n return std.fmt.parseInt(isize, string, 10) catch unreachable;\n}\npub fn __zig_string2float_0(string: []const u8) f64 {\n return std.fmt.parseFloat(f64, string) catch unreachable;\n}\n\n/// Pointer/Slice Allocation\npub fn __zig_alloc(comptime T: type, size: usize) []T {\n return debug_allocator.alloc(T, size) catch unreachable;\n}\npub fn __zig_slice2ptr(comptime T: type, slice: []T) *T {\n return @ptrCast(slice);\n}\npub fn __zig_ptr2slice(comptime T: type, ptr: *T, size: usize) []T {\n return @as([*]T, @ptrCast(ptr))[0..size];\n}\n\npub fn __zig_free_0(ptr: anytype) void {\n debug_allocator.free(ptr);\n}\npub fn __zig_slice_size_0(slice: anytype) usize {\n return slice.len;\n}\n// pub fn __zig_slice2ptr_0(slice: anytype) *std.meta.Child(@TypeOf(slice)) {\n// return @ptrCast(slice);\n// }\n// pub fn __zig_ptr2slice_0(ptr: anytype, size: usize) []std.meta.Child(@TypeOf(ptr)) {\n// const T = std.meta.Child(@TypeOf(ptr));\n// return @as([*]T, @ptrCast(ptr))[0..size];\n// }\n\nfn string_from_literal(comptime literal: []const u8) String_t {\n const buffer = debug_allocator.dupe(u8, literal) catch unreachable;\n const char_array = Array_t(u8){\n .buffer = buffer,\n .size = literal.len,\n };\n return String_t{ .bytes = char_array };\n}\n\npub fn main() !void {\n // gc_allocator = GC.allocator();\n debug_allocator = debug_allocator_state.allocator();\n main_0();\n}\n\n//////////////////////\n/// user code\n/////////////////////"