xo-interpreter2 stack: modularize nth() primitive setup/install

This commit is contained in:
Roland Conybeare 2026-03-15 09:47:14 -05:00
commit 692a9a7f1b
4 changed files with 34 additions and 8 deletions

View file

@ -68,6 +68,22 @@ namespace xo {
&NumericDispatch::cmp_lessequal);
}
DPrimitive_gco_2_gco_gco *
NumericPrimitives::make_cmpgt_pm(obj<AAllocator> mm)
{
return DPrimitive_gco_2_gco_gco::_make(mm, "_cmpgt",
&NumericDispatch::cmp_greater);
}
DPrimitive_gco_2_gco_gco *
NumericPrimitives::make_cmpge_pm(obj<AAllocator> mm)
{
return DPrimitive_gco_2_gco_gco::_make(mm, "_cmpge",
&NumericDispatch::cmp_greatequal);
}
} /*namespace scm*/
} /*namespace xo*/

View file

@ -61,18 +61,24 @@ namespace xo {
ok = ok & install_aux(sink,
NumericPrimitives::make_divide_pm(mm),
flags & InstallFlags::f_essential);
ok = ok & install_aux(sink, mm, "_add", &NumericDispatch::add,
ok = ok & install_aux(sink,
NumericPrimitives::make_add_pm(mm),
flags & InstallFlags::f_essential);
ok = ok & install_aux(sink, mm, "_sub", &NumericDispatch::subtract,
ok = ok & install_aux(sink,
NumericPrimitives::make_subtract_pm(mm),
flags & InstallFlags::f_essential);
ok = ok & install_aux(sink, mm, "_cmpeq", &NumericDispatch::cmp_equal,
ok = ok & install_aux(sink,
NumericPrimitives::make_cmpeq_pm(mm),
flags & InstallFlags::f_essential);
ok = ok & install_aux(sink, mm, "_cmpne", &NumericDispatch::cmp_notequal,
ok = ok & install_aux(sink,
NumericPrimitives::make_cmpne_pm(mm),
flags & InstallFlags::f_essential);
ok = ok & install_aux(sink, mm, "_cmplt", &NumericDispatch::cmp_less,
ok = ok & install_aux(sink,
NumericPrimitives::make_cmplt_pm(mm),
flags & InstallFlags::f_essential);
ok = ok & install_aux(sink, mm, "_cmple", &NumericDispatch::cmp_lessequal,
ok = ok & install_aux(sink,
NumericPrimitives::make_cmple_pm(mm),
flags & InstallFlags::f_essential);
ok = ok & install_aux(sink, mm, "_cmpgt", &NumericDispatch::cmp_greater,
flags & InstallFlags::f_essential);