The payoff -- variable storage from the Zig interpreter, now valid in both languages:
var var_names: [256]i64 = undefined;
var var_values: [256]i64 = undefined;
var num_vars: i64 = 0;
fn setVar(name: i64, val: i64) i64 {
for (0..num_vars) |i| {
if (streq_mem(var_names[i], name) == 1) {
var_values[i] = val;
return 0;
}
}
var_names[num_vars] = name;
var_values[num_vars] = val;
num_vars += 1;
return 0;
}
Same arrays, same for loop, same +=, same indexing. Compiles under both.