mirror of
https://github.com/urbit/shrub.git
synced 2025-01-03 10:02:32 +03:00
Fixed some uni bugs. ++fond jet still overflows when on.
This commit is contained in:
parent
7c7c4a0368
commit
2a12fd4802
@ -6,6 +6,17 @@
|
||||
|
||||
/* functions
|
||||
*/
|
||||
u3_noun
|
||||
u3kdi_uni(u3_noun a,
|
||||
u3_noun b)
|
||||
{
|
||||
u3_noun c = u3qdi_uni(a, b);
|
||||
|
||||
u3z(a);
|
||||
u3z(b);
|
||||
return c;
|
||||
}
|
||||
|
||||
u3_noun
|
||||
u3qdi_uni(u3_noun a,
|
||||
u3_noun b)
|
||||
@ -36,56 +47,58 @@
|
||||
}
|
||||
else if ( c3y == u3r_sing(n_a, n_b) ) {
|
||||
return u3nt(u3k(n_b),
|
||||
u3qdi_uni(u3k(l_a), u3k(l_b)),
|
||||
u3qdi_uni(u3k(r_a), u3k(r_b)));
|
||||
u3kdi_uni(u3k(l_a), u3k(l_b)),
|
||||
u3kdi_uni(u3k(r_a), u3k(r_b)));
|
||||
}
|
||||
else if ( c3y == u3qc_hor(n_b, n_a) ) {
|
||||
return u3qdi_uni(u3nt(u3k(n_a),
|
||||
u3qdi_uni(u3k(l_a),
|
||||
return u3kdi_uni(u3nt(u3k(n_a),
|
||||
u3kdi_uni(u3k(l_a),
|
||||
u3nt(u3k(n_b),
|
||||
u3k(l_b),
|
||||
u3k(u3_nul))),
|
||||
u3_nul)),
|
||||
u3k(r_a)),
|
||||
u3k(r_b));
|
||||
}
|
||||
else {
|
||||
return u3qdi_uni(u3nt(u3k(n_a),
|
||||
return u3kdi_uni(u3nt(u3k(n_a),
|
||||
u3k(l_a),
|
||||
u3qdi_uni(u3k(r_a),
|
||||
u3kdi_uni(u3k(r_a),
|
||||
u3nt(u3k(n_b),
|
||||
u3k(u3_nul),
|
||||
u3_nul,
|
||||
u3k(r_b)))),
|
||||
u3k(l_b));
|
||||
}
|
||||
}
|
||||
else if ( c3n == u3r_cell(lr_b, &l_b, &r_b) ) {
|
||||
return u3m_bail(c3__exit);
|
||||
}
|
||||
else if ( c3n == u3r_cell(lr_a, &l_a, &r_a) ) {
|
||||
return u3m_bail(c3__exit);
|
||||
}
|
||||
else if ( c3y == u3r_sing(n_b, n_a) ) {
|
||||
return u3nt(u3k(n_b),
|
||||
u3qdi_uni(u3k(r_b), u3k(r_a)),
|
||||
u3qdi_uni(u3k(l_b), u3k(l_a)));
|
||||
}
|
||||
else if ( c3y == u3qc_hor(n_a, n_b) ) {
|
||||
return u3qdi_uni(u3k(r_a),
|
||||
u3nt(u3k(n_b),
|
||||
u3qdi_uni(u3nt(u3k(n_a),
|
||||
u3k(l_a),
|
||||
u3_nul),
|
||||
u3k(l_b)),
|
||||
u3k(r_b)));
|
||||
}
|
||||
else {
|
||||
return u3qdi_uni(u3k(l_a),
|
||||
u3nt(u3k(n_b),
|
||||
u3k(l_b),
|
||||
u3qdi_uni(u3nt(u3k(n_a),
|
||||
u3k(u3_nul),
|
||||
u3k(r_a)),
|
||||
u3k(r_b))));
|
||||
if ( c3n == u3r_cell(lr_b, &l_b, &r_b) ) {
|
||||
return u3m_bail(c3__exit);
|
||||
}
|
||||
else if ( c3n == u3r_cell(lr_a, &l_a, &r_a) ) {
|
||||
return u3m_bail(c3__exit);
|
||||
}
|
||||
else if ( c3y == u3r_sing(n_b, n_a) ) {
|
||||
return u3nt(u3k(n_b),
|
||||
u3kdi_uni(u3k(l_a), u3k(l_b)),
|
||||
u3kdi_uni(u3k(r_a), u3k(r_b)));
|
||||
}
|
||||
else if ( c3y == u3qc_hor(n_a, n_b) ) {
|
||||
return u3kdi_uni(u3k(r_a),
|
||||
u3nt(u3k(n_b),
|
||||
u3kdi_uni(u3nt(u3k(n_a),
|
||||
u3k(l_a),
|
||||
u3_nul),
|
||||
u3k(l_b)),
|
||||
u3k(r_b)));
|
||||
}
|
||||
else {
|
||||
return u3kdi_uni(u3k(l_a),
|
||||
u3nt(u3k(n_b),
|
||||
u3k(l_b),
|
||||
u3kdi_uni(u3nt(u3k(n_a),
|
||||
u3_nul,
|
||||
u3k(r_a)),
|
||||
u3k(r_b))));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -586,6 +586,8 @@
|
||||
u3_noun lon,
|
||||
u3_noun gil)
|
||||
{
|
||||
fprintf(stderr, "fond %x\r\n", u3r_mug(sut));
|
||||
|
||||
if ( c3n == u3du(sut) ) switch ( sut ) {
|
||||
default: return u3m_bail(c3__fail);
|
||||
|
||||
|
@ -348,7 +348,7 @@ static u3j_harm _mood__hoon__ut_burn_a[] = {{".2", u3wfu_burn}, {}};
|
||||
static u3j_harm _mood__hoon__ut_conk_a[] = {{".2", u3wfu_conk}, {}};
|
||||
static u3j_harm _mood__hoon__ut_crop_a[] = {{".2", u3wfu_crop}, {}};
|
||||
// static u3j_harm _mood__hoon__ut_fire_a[] = {{".2", u3wfu_fire}, {}};
|
||||
// static u3j_harm _mood__hoon__ut_fond_a[] = {{".2", u3wfu_fond, c3n}, {}};
|
||||
// static u3j_harm _mood__hoon__ut_fond_a[] = {{".2", u3wfu_fond}, {}};
|
||||
static u3j_harm _mood__hoon__ut_fish_a[] = {{".2", u3wfu_fish}, {}};
|
||||
static u3j_harm _mood__hoon__ut_fuse_a[] = {{".2", u3wfu_fuse}, {}};
|
||||
static u3j_harm _mood__hoon__ut_mint_a[] = {{".2", u3wfu_mint}, {}};
|
||||
@ -366,7 +366,7 @@ static u3j_core _mood__hoon__ut_d[] =
|
||||
{ "burn", _mood__hoon__ut_burn_a },
|
||||
{ "conk", _mood__hoon__ut_conk_a },
|
||||
{ "crop", _mood__hoon__ut_crop_a },
|
||||
// { "fond", _mood__hoon__ut_fond_a },
|
||||
// { "fond", _mood__hoon__ut_fond_a },
|
||||
// { "fire", _mood__hoon__ut_fire_a },
|
||||
{ "fish", _mood__hoon__ut_fish_a },
|
||||
{ "fuse", _mood__hoon__ut_fuse_a },
|
||||
|
Loading…
Reference in New Issue
Block a user