I've added a lot of missing tests to the test suite which has improved coverage. We now have 205 tests which ought to run.
<gripe type="we've done this before">use $(PERL) in Makefiles</gripe> Oh, and Windows is ON FIRE! The following ops do not yet have tests: close_i close_ic err_i err_s open_i_s open_i_sc open_i_s_i open_i_sc_i open_i_s_ic open_i_sc_ic open_i_s_i_i open_i_sc_i_i open_i_s_ic_i open_i_sc_ic_i open_i_s_i_ic open_i_sc_i_ic open_i_s_ic_ic open_i_sc_ic_ic print_nc read_i_i read_i_ic read_n_i read_n_ic read_s_i_i read_s_ic_i read_s_i_ic read_s_ic_ic write_i_i write_ic_i write_i_ic write_ic_ic write_i_n write_ic_n write_i_nc write_ic_nc write_i_s write_ic_s write_i_sc write_ic_sc eq_nc_n eq_nc_nc eq_sc_s eq_sc_sc eq_nc_n_ic eq_nc_nc_ic eq_sc_s_ic eq_sc_sc_ic ne_nc_n ne_nc_nc ne_sc_s ne_sc_sc ne_ic_i_ic ne_ic_ic_ic ne_nc_n_ic ne_nc_nc_ic ne_sc_s_ic ne_sc_sc_ic if_p_ic add_n_n_nc cmod_n_nc_n cmod_n_n_nc cmod_n_nc_nc div_n_nc_n div_n_n_nc div_n_nc_nc mod_n_nc_n mod_n_n_nc mod_n_nc_nc mul_n_n_nc pow_n_ic_i pow_n_nc_i pow_n_i_ic pow_n_ic_ic pow_n_n_ic pow_n_nc_ic pow_n_ic_n pow_n_nc_n pow_n_i_nc pow_n_ic_nc pow_n_n_nc pow_n_nc_nc sub_n_nc_n sub_n_n_nc sub_n_nc_nc concat_s_sc_s concat_s_s_sc concat_s_sc_sc substr_s_sc_i_i substr_s_s_ic_i substr_s_sc_ic_i substr_s_s_i_ic substr_s_sc_i_ic substr_s_s_ic_ic substr_s_sc_ic_ic atan_n_ic_i atan_n_nc_i atan_n_i_ic atan_n_ic_ic atan_n_n_ic atan_n_nc_ic atan_n_ic_n atan_n_nc_n atan_n_i_nc atan_n_ic_nc atan_n_n_nc atan_n_nc_nc and_i_i_ic or_i_i_ic shl_i_i_i shl_i_ic_i shl_i_i_ic shl_i_ic_ic shr_i_ic_i shr_i_ic_ic xor_i_i_ic bounds_ic profile_ic trace_ic clearp clonei clonen clones clonep entrytype_i_i entrytype_i_ic clone_key_s_s toss_key_s ke_type_i_s_i ke_type_i_s_ic ke_value_i_s_i ke_value_i_s_ic ke_value_n_s_i ke_value_n_s_ic ke_value_s_s_i ke_value_s_s_ic ke_value_p_s_i ke_value_p_s_ic ke_value_i_s_s ke_value_i_s_sc ke_value_n_s_s ke_value_n_s_sc ke_value_s_s_s ke_value_s_s_sc ke_value_p_s_s ke_value_p_s_sc ke_set_value_s_i_i ke_set_value_s_i_ic ke_set_value_s_i_n ke_set_value_s_i_nc ke_set_value_s_i_s ke_set_value_s_i_sc ke_set_value_s_i_p ke_set_value_s_ic_p ke_set_value_s_s_i ke_set_value_s_sc_i ke_set_value_s_s_ic ke_set_value_s_sc_ic ke_set_value_s_s_n ke_set_value_s_sc_n ke_set_value_s_s_nc ke_set_value_s_sc_nc ke_set_value_s_s_s ke_set_value_s_sc_s ke_set_value_s_s_sc ke_set_value_s_sc_sc ke_set_value_s_s_p ke_set_value_s_sc_p chop_key_s inc_key_s_i and_p_p_p or_p_p_p not_p_p Alex Gough