mirror of
https://github.com/urbit/shrub.git
synced 2024-12-14 11:08:45 +03:00
u3: updates +end, +lsh, and +rsh jet interfaces
This commit is contained in:
parent
9e713a5e10
commit
c082c2677a
@ -55,10 +55,8 @@
|
|||||||
u3_noun u3wc_dor(u3_noun);
|
u3_noun u3wc_dor(u3_noun);
|
||||||
u3_noun u3wc_dvr(u3_noun);
|
u3_noun u3wc_dvr(u3_noun);
|
||||||
u3_noun u3wc_end(u3_noun);
|
u3_noun u3wc_end(u3_noun);
|
||||||
u3_noun u3wc_new_end(u3_noun);
|
|
||||||
u3_noun u3wc_gor(u3_noun);
|
u3_noun u3wc_gor(u3_noun);
|
||||||
u3_noun u3wc_lsh(u3_noun);
|
u3_noun u3wc_lsh(u3_noun);
|
||||||
u3_noun u3wc_new_lsh(u3_noun);
|
|
||||||
u3_noun u3wc_mas(u3_noun);
|
u3_noun u3wc_mas(u3_noun);
|
||||||
u3_noun u3wc_met(u3_noun);
|
u3_noun u3wc_met(u3_noun);
|
||||||
u3_noun u3wc_mix(u3_noun);
|
u3_noun u3wc_mix(u3_noun);
|
||||||
@ -72,7 +70,6 @@
|
|||||||
u3_noun u3wc_rev(u3_noun);
|
u3_noun u3wc_rev(u3_noun);
|
||||||
u3_noun u3wc_rip(u3_noun);
|
u3_noun u3wc_rip(u3_noun);
|
||||||
u3_noun u3wc_rsh(u3_noun);
|
u3_noun u3wc_rsh(u3_noun);
|
||||||
u3_noun u3wc_new_rsh(u3_noun);
|
|
||||||
u3_noun u3wc_swp(u3_noun);
|
u3_noun u3wc_swp(u3_noun);
|
||||||
u3_noun u3wc_sqt(u3_noun);
|
u3_noun u3wc_sqt(u3_noun);
|
||||||
|
|
||||||
|
@ -3,61 +3,41 @@
|
|||||||
*/
|
*/
|
||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
|
u3_noun
|
||||||
|
u3qc_end(u3_atom a,
|
||||||
|
u3_atom b,
|
||||||
|
u3_atom c)
|
||||||
|
{
|
||||||
|
if ( !_(u3a_is_cat(a)) || (a >= 32) ) {
|
||||||
|
return u3m_bail(c3__fail);
|
||||||
|
}
|
||||||
|
else if ( !_(u3a_is_cat(b)) ) {
|
||||||
|
return u3k(c);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
c3_g a_g = a;
|
||||||
|
c3_w b_w = b;
|
||||||
|
c3_w len_w = u3r_met(a_g, c);
|
||||||
|
|
||||||
/* functions
|
if ( 0 == b_w ) {
|
||||||
*/
|
return 0;
|
||||||
u3_noun
|
|
||||||
u3qc_end(u3_atom a,
|
|
||||||
u3_atom b,
|
|
||||||
u3_atom c)
|
|
||||||
{
|
|
||||||
if ( !_(u3a_is_cat(a)) || (a >= 32) ) {
|
|
||||||
return u3m_bail(c3__fail);
|
|
||||||
}
|
}
|
||||||
else if ( !_(u3a_is_cat(b)) ) {
|
else if ( b_w >= len_w ) {
|
||||||
return u3k(c);
|
return u3k(c);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
c3_g a_g = a;
|
u3i_slab sab_u;
|
||||||
c3_w b_w = b;
|
u3i_slab_init(&sab_u, a_g, b_w);
|
||||||
c3_w len_w = u3r_met(a_g, c);
|
|
||||||
|
|
||||||
if ( 0 == b_w ) {
|
u3r_chop(a_g, 0, b_w, 0, sab_u.buf_w, c);
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else if ( b_w >= len_w ) {
|
|
||||||
return u3k(c);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
u3i_slab sab_u;
|
|
||||||
u3i_slab_init(&sab_u, a_g, b_w);
|
|
||||||
|
|
||||||
u3r_chop(a_g, 0, b_w, 0, sab_u.buf_w, c);
|
return u3i_slab_mint(&sab_u);
|
||||||
|
|
||||||
return u3i_slab_mint(&sab_u);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
u3_noun
|
|
||||||
u3wc_end(u3_noun cor)
|
|
||||||
{
|
|
||||||
u3_noun a, b, c;
|
|
||||||
|
|
||||||
if ( (c3n == u3r_mean(cor, u3x_sam_2, &a,
|
|
||||||
u3x_sam_6, &b,
|
|
||||||
u3x_sam_7, &c, 0)) ||
|
|
||||||
(c3n == u3ud(a)) ||
|
|
||||||
(c3n == u3ud(b)) ||
|
|
||||||
(c3n == u3ud(c)) )
|
|
||||||
{
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qc_end(a, b, c);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3wc_new_end(u3_noun cor)
|
u3wc_end(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_atom bloq, step;
|
u3_atom bloq, step;
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
|
@ -3,71 +3,41 @@
|
|||||||
*/
|
*/
|
||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
|
u3_noun
|
||||||
|
u3qc_lsh(u3_atom a,
|
||||||
|
u3_atom b,
|
||||||
|
u3_atom c)
|
||||||
|
{
|
||||||
|
if ( !_(u3a_is_cat(a)) || (a >= 32) ) {
|
||||||
|
return u3m_bail(c3__fail);
|
||||||
|
}
|
||||||
|
else if ( !_(u3a_is_cat(b)) ) {
|
||||||
|
return u3m_bail(c3__fail);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
c3_g a_g = a;
|
||||||
|
c3_w b_w = b;
|
||||||
|
c3_w len_w = u3r_met(a_g, c);
|
||||||
|
|
||||||
/* functions
|
if ( 0 == len_w ) {
|
||||||
*/
|
return 0;
|
||||||
u3_noun
|
|
||||||
u3qc_lsh(u3_atom a,
|
|
||||||
u3_atom b,
|
|
||||||
u3_atom c)
|
|
||||||
{
|
|
||||||
if ( !_(u3a_is_cat(a)) || (a >= 32) ) {
|
|
||||||
return u3m_bail(c3__fail);
|
|
||||||
}
|
}
|
||||||
else if ( !_(u3a_is_cat(b)) ) {
|
else if ( (b_w + len_w) < len_w ) {
|
||||||
return u3m_bail(c3__fail);
|
return u3m_bail(c3__exit);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
c3_g a_g = a;
|
u3i_slab sab_u;
|
||||||
c3_w b_w = b;
|
u3i_slab_init(&sab_u, a_g, (b_w + len_w));
|
||||||
c3_w len_w = u3r_met(a_g, c);
|
|
||||||
|
|
||||||
if ( 0 == len_w ) {
|
u3r_chop(a_g, 0, len_w, b_w, sab_u.buf_w, c);
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else if ( (b_w + len_w) < len_w ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
u3i_slab sab_u;
|
|
||||||
u3i_slab_init(&sab_u, a_g, (b_w + len_w));
|
|
||||||
|
|
||||||
u3r_chop(a_g, 0, len_w, b_w, sab_u.buf_w, c);
|
return u3i_slab_mint(&sab_u);
|
||||||
|
|
||||||
return u3i_slab_mint(&sab_u);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
u3_noun
|
}
|
||||||
u3wc_lsh(u3_noun cor)
|
|
||||||
{
|
|
||||||
u3_noun a, b, c;
|
|
||||||
|
|
||||||
if ( (c3n == u3r_mean(cor, u3x_sam_2, &a,
|
|
||||||
u3x_sam_6, &b,
|
|
||||||
u3x_sam_7, &c, 0)) ||
|
|
||||||
(c3n == u3ud(a)) ||
|
|
||||||
(c3n == u3ud(b)) ||
|
|
||||||
(c3n == u3ud(c)) )
|
|
||||||
{
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qc_lsh(a, b, c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
u3_noun
|
|
||||||
u3kc_lsh(u3_noun a,
|
|
||||||
u3_noun b,
|
|
||||||
u3_noun c)
|
|
||||||
{
|
|
||||||
u3_noun d = u3qc_lsh(a, b, c);
|
|
||||||
|
|
||||||
u3z(a); u3z(b); u3z(c);
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3wc_new_lsh(u3_noun cor)
|
u3wc_lsh(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_atom bloq, step;
|
u3_atom bloq, step;
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
@ -77,3 +47,14 @@ u3wc_new_lsh(u3_noun cor)
|
|||||||
|
|
||||||
return u3qc_lsh(bloq, step, u3x_atom(b));
|
return u3qc_lsh(bloq, step, u3x_atom(b));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u3_noun
|
||||||
|
u3kc_lsh(u3_noun a,
|
||||||
|
u3_noun b,
|
||||||
|
u3_noun c)
|
||||||
|
{
|
||||||
|
u3_noun d = u3qc_lsh(a, b, c);
|
||||||
|
|
||||||
|
u3z(a); u3z(b); u3z(c);
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
@ -3,68 +3,38 @@
|
|||||||
*/
|
*/
|
||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
|
u3_noun
|
||||||
|
u3qc_rsh(u3_atom a,
|
||||||
|
u3_atom b,
|
||||||
|
u3_atom c)
|
||||||
|
{
|
||||||
|
if ( !_(u3a_is_cat(a)) || (a >= 32) ) {
|
||||||
|
return u3m_bail(c3__fail);
|
||||||
|
}
|
||||||
|
else if ( !_(u3a_is_cat(b)) ) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
c3_g a_g = a;
|
||||||
|
c3_w b_w = b;
|
||||||
|
c3_w len_w = u3r_met(a_g, c);
|
||||||
|
|
||||||
/* functions
|
if ( b_w >= len_w ) {
|
||||||
*/
|
|
||||||
u3_noun
|
|
||||||
u3qc_rsh(u3_atom a,
|
|
||||||
u3_atom b,
|
|
||||||
u3_atom c)
|
|
||||||
{
|
|
||||||
if ( !_(u3a_is_cat(a)) || (a >= 32) ) {
|
|
||||||
return u3m_bail(c3__fail);
|
|
||||||
}
|
|
||||||
else if ( !_(u3a_is_cat(b)) ) {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
c3_g a_g = a;
|
u3i_slab sab_u;
|
||||||
c3_w b_w = b;
|
u3i_slab_init(&sab_u, a_g, (len_w - b_w));
|
||||||
c3_w len_w = u3r_met(a_g, c);
|
|
||||||
|
|
||||||
if ( b_w >= len_w ) {
|
u3r_chop(a_g, b_w, (len_w - b_w), 0, sab_u.buf_w, c);
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
u3i_slab sab_u;
|
|
||||||
u3i_slab_init(&sab_u, a_g, (len_w - b_w));
|
|
||||||
|
|
||||||
u3r_chop(a_g, b_w, (len_w - b_w), 0, sab_u.buf_w, c);
|
return u3i_slab_mint(&sab_u);
|
||||||
|
|
||||||
return u3i_slab_mint(&sab_u);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
u3_noun
|
}
|
||||||
u3wc_rsh(u3_noun cor)
|
|
||||||
{
|
|
||||||
u3_noun a, b, c;
|
|
||||||
|
|
||||||
if ( (c3n == u3r_mean(cor, u3x_sam_2, &a,
|
|
||||||
u3x_sam_6, &b,
|
|
||||||
u3x_sam_7, &c, 0)) ||
|
|
||||||
(c3n == u3ud(a)) ||
|
|
||||||
(c3n == u3ud(b)) ||
|
|
||||||
(c3n == u3ud(c)) )
|
|
||||||
{
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qc_rsh(a, b, c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
u3_noun
|
|
||||||
u3kc_rsh(u3_noun a,
|
|
||||||
u3_noun b,
|
|
||||||
u3_noun c)
|
|
||||||
{
|
|
||||||
u3_noun d = u3qc_rsh(a, b, c);
|
|
||||||
|
|
||||||
u3z(a); u3z(b); u3z(c);
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3wc_new_rsh(u3_noun cor)
|
u3wc_rsh(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_atom bloq, step;
|
u3_atom bloq, step;
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
@ -74,3 +44,14 @@ u3wc_new_rsh(u3_noun cor)
|
|||||||
|
|
||||||
return u3qc_rsh(bloq, step, u3x_atom(b));
|
return u3qc_rsh(bloq, step, u3x_atom(b));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u3_noun
|
||||||
|
u3kc_rsh(u3_noun a,
|
||||||
|
u3_noun b,
|
||||||
|
u3_noun c)
|
||||||
|
{
|
||||||
|
u3_noun d = u3qc_rsh(a, b, c);
|
||||||
|
|
||||||
|
u3z(a); u3z(b); u3z(c);
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
@ -1503,10 +1503,6 @@ static c3_c* _141_two_end_ha[] = {
|
|||||||
"45a0efc0c4ae4b93f554d480a9d2c52474d5ebd6b1b9b0ab888b9bee2117db55",
|
"45a0efc0c4ae4b93f554d480a9d2c52474d5ebd6b1b9b0ab888b9bee2117db55",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
static u3j_harm _141_two_new_end_a[] = {{".2", u3wc_new_end, c3y}, {}};
|
|
||||||
static c3_c* _141_two_new_end_ha[] = {
|
|
||||||
0
|
|
||||||
};
|
|
||||||
static u3j_harm _141_two_gor_a[] = {{".2", u3wc_gor, c3y}, {}};
|
static u3j_harm _141_two_gor_a[] = {{".2", u3wc_gor, c3y}, {}};
|
||||||
static c3_c* _141_two_gor_ha[] = {
|
static c3_c* _141_two_gor_ha[] = {
|
||||||
"3ab7d6a56b8b347bd677a77ec43cda984d1eb869bab5c9bc2185f5c4a366703a",
|
"3ab7d6a56b8b347bd677a77ec43cda984d1eb869bab5c9bc2185f5c4a366703a",
|
||||||
@ -1517,10 +1513,6 @@ static c3_c* _141_two_lsh_ha[] = {
|
|||||||
"a93f01f1db5bcaf1973d01234bbcec8f8adf9d6402a8d715a1b13b70a140a428",
|
"a93f01f1db5bcaf1973d01234bbcec8f8adf9d6402a8d715a1b13b70a140a428",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
static u3j_harm _141_two_new_lsh_a[] = {{".2", u3wc_new_lsh, c3y}, {}};
|
|
||||||
static c3_c* _141_two_new_lsh_ha[] = {
|
|
||||||
0
|
|
||||||
};
|
|
||||||
// XX appears to be a duplicate of _141_one_mas_a
|
// XX appears to be a duplicate of _141_one_mas_a
|
||||||
//
|
//
|
||||||
static u3j_harm _141_two_mas_a[] = {{".2", u3wc_mas, c3y}, {}};
|
static u3j_harm _141_two_mas_a[] = {{".2", u3wc_mas, c3y}, {}};
|
||||||
@ -1585,10 +1577,6 @@ static c3_c* _141_two_rsh_ha[] = {
|
|||||||
"a401145b4c11ec8d17a729fe30f06c295865ffed1b970b0a788f0fec1ed0a703",
|
"a401145b4c11ec8d17a729fe30f06c295865ffed1b970b0a788f0fec1ed0a703",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
static u3j_harm _141_two_new_rsh_a[] = {{".2", u3wc_new_rsh, c3y}, {}};
|
|
||||||
static c3_c* _141_two_new_rsh_ha[] = {
|
|
||||||
0
|
|
||||||
};
|
|
||||||
static u3j_harm _141_two_swp_a[] = {{".2", u3wc_swp, c3y}, {}};
|
static u3j_harm _141_two_swp_a[] = {{".2", u3wc_swp, c3y}, {}};
|
||||||
static c3_c* _141_two_swp_ha[] = {
|
static c3_c* _141_two_swp_ha[] = {
|
||||||
"f809ed11a87db6cef8944c7252d53cda1e030240ee52912c3843d56805ac17fa",
|
"f809ed11a87db6cef8944c7252d53cda1e030240ee52912c3843d56805ac17fa",
|
||||||
@ -1857,11 +1845,11 @@ static u3j_core _141_two_d[] =
|
|||||||
{ "dor", 7, _141_two_dor_a, 0, _141_two_dor_ha },
|
{ "dor", 7, _141_two_dor_a, 0, _141_two_dor_ha },
|
||||||
{ "dvr", 7, _141_two_dvr_a, 0, _141_two_dvr_ha },
|
{ "dvr", 7, _141_two_dvr_a, 0, _141_two_dvr_ha },
|
||||||
{ "end", 7, _141_two_end_a, 0, _141_two_end_ha },
|
{ "end", 7, _141_two_end_a, 0, _141_two_end_ha },
|
||||||
{ "new-end", 7, _141_two_new_end_a, 0, _141_two_new_end_ha },
|
{ "new-end", 7, _141_two_end_a, 0, _141_two_end_ha },
|
||||||
{ "gor", 7, _141_two_gor_a, 0, _141_two_gor_ha },
|
{ "gor", 7, _141_two_gor_a, 0, _141_two_gor_ha },
|
||||||
{ "jam", 7, _141_two_jam_a, 0, _141_two_jam_ha },
|
{ "jam", 7, _141_two_jam_a, 0, _141_two_jam_ha },
|
||||||
{ "lsh", 7, _141_two_lsh_a, 0, _141_two_lsh_ha },
|
{ "lsh", 7, _141_two_lsh_a, 0, _141_two_lsh_ha },
|
||||||
{ "new-lsh", 7, _141_two_new_lsh_a, 0, _141_two_new_lsh_ha },
|
{ "new-lsh", 7, _141_two_lsh_a, 0, _141_two_lsh_ha },
|
||||||
{ "mas", 7, _141_two_mas_a, 0, _141_two_mas_ha },
|
{ "mas", 7, _141_two_mas_a, 0, _141_two_mas_ha },
|
||||||
{ "mat", 7, _141_two_mat_a, 0, _141_two_mat_ha },
|
{ "mat", 7, _141_two_mat_a, 0, _141_two_mat_ha },
|
||||||
{ "met", 7, _141_two_met_a, 0, _141_two_met_ha },
|
{ "met", 7, _141_two_met_a, 0, _141_two_met_ha },
|
||||||
@ -1874,7 +1862,7 @@ static u3j_core _141_two_d[] =
|
|||||||
{ "rev", 7, _141_two_rev_a, 0, _141_two_rev_ha },
|
{ "rev", 7, _141_two_rev_a, 0, _141_two_rev_ha },
|
||||||
{ "rip", 7, _141_two_rip_a, 0, _141_two_rip_ha },
|
{ "rip", 7, _141_two_rip_a, 0, _141_two_rip_ha },
|
||||||
{ "rsh", 7, _141_two_rsh_a, 0, _141_two_rsh_ha },
|
{ "rsh", 7, _141_two_rsh_a, 0, _141_two_rsh_ha },
|
||||||
{ "new-rsh", 7, _141_two_new_rsh_a, 0, _141_two_new_rsh_ha },
|
{ "new-rsh", 7, _141_two_rsh_a, 0, _141_two_rsh_ha },
|
||||||
{ "swp", 7, _141_two_swp_a, 0, _141_two_swp_ha },
|
{ "swp", 7, _141_two_swp_a, 0, _141_two_swp_ha },
|
||||||
{ "rub", 7, _141_two_rub_a, 0, _141_two_rub_ha },
|
{ "rub", 7, _141_two_rub_a, 0, _141_two_rub_ha },
|
||||||
{ "peg", 7, _141_two_peg_a, 0, _141_two_peg_ha },
|
{ "peg", 7, _141_two_peg_a, 0, _141_two_peg_ha },
|
||||||
|
Loading…
Reference in New Issue
Block a user