Global variable tracking using arrays:
var global_names: [64]i64 = undefined;
var g_count: i64 = 0;
fn add_global(name: i64) i64 {
global_names[g_count] = name;
g_count += 1;
return 0;
}
fn is_global(name: i64) i64 {
for (0..g_count) |i| {
if (streq_mem(global_names[i], name) == 1) { return 1; }
}
return 0;
}
global_names[g_count] = name -- array write. global_names[i] -- array read. for (0..g_count) |i| -- range loop. No manual store64/load64 address arithmetic.