Another experimental renaming.

This commit is contained in:
C. Guy Yarvin 2014-11-04 16:53:07 -08:00
parent f1ee2f6e90
commit 2ca5ae560d
37 changed files with 375 additions and 379 deletions

260
g/a.c
View File

@ -120,21 +120,21 @@ _box_detach(u3_cs_box* box_u)
static c3_w*
_me_road_all_hat(c3_w len_w)
{
if ( len_w > u3_co_open(u3R) ) {
if ( len_w > u3_ca_open(u3R) ) {
u3_cm_bail(c3__meme); return 0;
}
if ( u3_yes == u3_co_is_north(u3R) ) {
if ( u3_yes == u3_ca_is_north(u3R) ) {
u3_post all_p;
all_p = u3R->hat_p;
u3R->hat_p += len_w;
return u3_co_into(all_p);
return u3_ca_into(all_p);
}
else {
u3R->hat_p -= len_w;
return u3_co_into(u3R->hat_p);
return u3_ca_into(u3R->hat_p);
}
}
@ -144,20 +144,20 @@ _me_road_all_hat(c3_w len_w)
static c3_w*
_me_road_all_cap(c3_w len_w)
{
if ( len_w > u3_co_open(u3R) ) {
if ( len_w > u3_ca_open(u3R) ) {
u3_cm_bail(c3__meme); return 0;
}
if ( u3_yes == u3_co_is_north(u3R) ) {
if ( u3_yes == u3_ca_is_north(u3R) ) {
u3R->cap_p -= len_w;
return u3_co_into(u3R->cap_p);
return u3_ca_into(u3R->cap_p);
}
else {
u3_post all_p;
all_p = u3R->cap_p;
u3R->cap_p += len_w;
return u3_co_into(all_p);
return u3_ca_into(all_p);
}
}
#endif
@ -195,7 +195,7 @@ u3_ca_sane(void)
static void*
_ca_walloc(c3_w len_w)
{
c3_w siz_w = c3_max(u3_cc_minimum, u3_co_boxed(len_w));
c3_w siz_w = c3_max(u3_cc_minimum, u3_ca_boxed(len_w));
c3_w sel_w = _box_slot(siz_w);
// XX: this logic is totally bizarre, but preserve it.
@ -217,7 +217,7 @@ _ca_walloc(c3_w len_w)
else {
/* Nothing in top free list. Chip away at the hat.
*/
return u3_co_boxto(_box_make(_me_road_all_hat(siz_w), siz_w, 1));
return u3_ca_boxto(_box_make(_me_road_all_hat(siz_w), siz_w, 1));
}
}
else {
@ -261,7 +261,7 @@ _ca_walloc(c3_w len_w)
c3_w lef_w = (box_u->siz_w - siz_w);
_box_attach(_box_make(end_w, lef_w, 0));
return u3_co_boxto(_box_make(box_w, siz_w, 1));
return u3_ca_boxto(_box_make(box_w, siz_w, 1));
}
else {
c3_assert(0 == box_u->use_w);
@ -270,7 +270,7 @@ _ca_walloc(c3_w len_w)
#ifdef U3_MEMORY_DEBUG
box_u->cod_w = u3_Code;
#endif
return u3_co_boxto(box_u);
return u3_ca_boxto(box_u);
}
}
}
@ -289,12 +289,12 @@ u3_ca_walloc(c3_w len_w)
#if 0
if ( (703 == u3_Code) &&
u3_co_botox(ptr_v) == (u3_cs_box*)(void *)0x200dfe3e4 ) {
u3_ca_botox(ptr_v) == (u3_cs_box*)(void *)0x200dfe3e4 ) {
static int xuc_i;
printf("xuc_i %d\r\n", xuc_i);
if ( 1 == xuc_i ) {
u3_cs_box* box_u = u3_co_botox(ptr_v);
u3_cs_box* box_u = u3_ca_botox(ptr_v);
box_u->cod_w = 999;
FOO = 1;
@ -323,7 +323,7 @@ u3_ca_wealloc(void* lag_v, c3_w len_w)
return u3_ca_malloc(len_w);
}
else {
u3_cs_box* box_u = u3_co_botox(lag_v);
u3_cs_box* box_u = u3_ca_botox(lag_v);
c3_w* old_w = lag_v;
c3_w tiz_w = c3_min(box_u->siz_w, len_w);
{
@ -352,7 +352,7 @@ u3_ca_realloc(void* lag_v, c3_w len_w)
void
u3_ca_free(void* tox_v)
{
u3_cs_box* box_u = u3_co_botox(tox_v);
u3_cs_box* box_u = u3_ca_botox(tox_v);
c3_w* box_w = (c3_w *)(void *)box_u;
c3_assert(box_u->use_w != 0);
@ -371,10 +371,10 @@ u3_ca_free(void* tox_v)
}
#endif
if ( u3_yes == u3_co_is_north(u3R) ) {
if ( u3_yes == u3_ca_is_north(u3R) ) {
/* Try to coalesce with the block below.
*/
if ( box_w != u3_co_into(u3R->rut_p) ) {
if ( box_w != u3_ca_into(u3R->rut_p) ) {
c3_w laz_w = *(box_w - 1);
u3_cs_box* pox_u = (u3_cs_box*)(void *)(box_w - laz_w);
@ -389,8 +389,8 @@ u3_ca_free(void* tox_v)
/* Try to coalesce with the block above, or the wilderness.
*/
if ( (box_w + box_u->siz_w) == u3_co_into(u3R->hat_p) ) {
u3R->hat_p = u3_co_outa(box_w);
if ( (box_w + box_u->siz_w) == u3_ca_into(u3R->hat_p) ) {
u3R->hat_p = u3_ca_outa(box_w);
}
else {
u3_cs_box* nox_u = (u3_cs_box*)(void *)(box_w + box_u->siz_w);
@ -405,7 +405,7 @@ u3_ca_free(void* tox_v)
else {
/* Try to coalesce with the block above.
*/
if ( (box_w + box_u->siz_w) != u3_co_into(u3R->rut_p) ) {
if ( (box_w + box_u->siz_w) != u3_ca_into(u3R->rut_p) ) {
u3_cs_box* nox_u = (u3_cs_box*)(void *)(box_w + box_u->siz_w);
if ( 0 == nox_u->use_w ) {
@ -416,8 +416,8 @@ u3_ca_free(void* tox_v)
/* Try to coalesce with the block below, or with the wilderness.
*/
if ( box_w == u3_co_into(u3R->hat_p) ) {
u3R->hat_p = u3_co_outa(box_w + box_u->siz_w);
if ( box_w == u3_ca_into(u3R->hat_p) ) {
u3R->hat_p = u3_ca_outa(box_w + box_u->siz_w);
}
else {
c3_w laz_w = *(box_w - 1);
@ -440,23 +440,23 @@ static void _me_wash_north(u3_noun dog);
static void
_me_wash_north_in(u3_noun som)
{
if ( u3_so(u3_co_is_cat(som)) ) return;
if ( u3_ne(u3_co_north_is_junior(u3R, som)) ) return;
if ( u3_so(u3_ca_is_cat(som)) ) return;
if ( u3_ne(u3_ca_north_is_junior(u3R, som)) ) return;
_me_wash_north(som);
}
static void
_me_wash_north(u3_noun dog)
{
c3_assert(u3_yes == u3_co_is_dog(dog));
// c3_assert(u3_yes == u3_co_north_is_junior(u3R, dog));
c3_assert(u3_yes == u3_ca_is_dog(dog));
// c3_assert(u3_yes == u3_ca_north_is_junior(u3R, dog));
{
u3_cs_noun* dog_u = u3_co_to_ptr(dog);
u3_cs_noun* dog_u = u3_ca_to_ptr(dog);
if ( dog_u->mug_w == 0 ) return; dog_u->mug_w = 0; // power wash
// if ( dog_u->mug_w >> 31 ) { dog_u->mug_w = 0; }
if ( u3_so(u3_co_is_pom(dog)) ) {
if ( u3_so(u3_ca_is_pom(dog)) ) {
u3_cs_cell* god_u = (u3_cs_cell *)(void *)dog_u;
_me_wash_north_in(god_u->hed);
@ -471,23 +471,23 @@ static void _me_wash_south(u3_noun dog);
static void
_me_wash_south_in(u3_noun som)
{
if ( u3_so(u3_co_is_cat(som)) ) return;
if ( u3_ne(u3_co_south_is_junior(u3R, som)) ) return;
if ( u3_so(u3_ca_is_cat(som)) ) return;
if ( u3_ne(u3_ca_south_is_junior(u3R, som)) ) return;
_me_wash_south(som);
}
static void
_me_wash_south(u3_noun dog)
{
c3_assert(u3_yes == u3_co_is_dog(dog));
// c3_assert(u3_yes == u3_co_south_is_junior(u3R, dog));
c3_assert(u3_yes == u3_ca_is_dog(dog));
// c3_assert(u3_yes == u3_ca_south_is_junior(u3R, dog));
{
u3_cs_noun* dog_u = u3_co_to_ptr(dog);
u3_cs_noun* dog_u = u3_ca_to_ptr(dog);
if ( dog_u->mug_w == 0 ) return; dog_u->mug_w = 0; // power wash
// if ( dog_u->mug_w >> 31 ) { dog_u->mug_w = 0; }
if ( u3_so(u3_co_is_pom(dog)) ) {
if ( u3_so(u3_ca_is_pom(dog)) ) {
u3_cs_cell* god_u = (u3_cs_cell *)(void *)dog_u;
_me_wash_south_in(god_u->hed);
@ -501,16 +501,16 @@ _me_wash_south(u3_noun dog)
void
u3_ca_wash(u3_noun som)
{
if ( u3_so(u3_co_is_cat(som)) ) {
if ( u3_so(u3_ca_is_cat(som)) ) {
return;
}
if ( u3_so(u3_co_is_north(u3R)) ) {
if ( u3_so(u3_co_north_is_junior(u3R, som)) ) {
if ( u3_so(u3_ca_is_north(u3R)) ) {
if ( u3_so(u3_ca_north_is_junior(u3R, som)) ) {
_me_wash_north(som);
}
}
else {
if ( u3_so(u3_co_south_is_junior(u3R, som)) ) {
if ( u3_so(u3_ca_south_is_junior(u3R, som)) ) {
_me_wash_south(som);
}
}
@ -524,8 +524,8 @@ extern u3_noun BDA, BDB;
static void
_me_gain_use(u3_noun dog)
{
c3_w* dog_w = u3_co_to_ptr(dog);
u3_cs_box* box_u = u3_co_botox(dog_w);
c3_w* dog_w = u3_ca_to_ptr(dog);
u3_cs_box* box_u = u3_ca_botox(dog_w);
if ( 0x7fffffff == box_u->use_w ) {
u3_cm_bail(c3__fail);
@ -564,8 +564,8 @@ _me_gain_use(u3_noun dog)
{
static c3_w bug_w = 0;
if ( FOO && u3_co_botox(u3_co_to_ptr(dog)) == (void *)0x200dfe3e4 ) {
u3_cs_box* box_u = u3_co_botox(u3_co_to_ptr(dog));
if ( FOO && u3_ca_botox(u3_ca_to_ptr(dog)) == (void *)0x200dfe3e4 ) {
u3_cs_box* box_u = u3_ca_botox(u3_ca_to_ptr(dog));
printf("GAIN %d %d\r\n", bug_w, box_u->use_w);
if ( bug_w == 8 ) { abort(); }
@ -585,16 +585,16 @@ static u3_noun
_me_copy_north_in(u3_noun som)
{
c3_assert(u3_none != som);
if ( u3_so(u3_co_is_cat(som)) ) {
if ( u3_so(u3_ca_is_cat(som)) ) {
return som;
}
else {
u3_noun dog = som;
if ( u3_so(u3_co_north_is_senior(u3R, dog)) ) {
if ( u3_so(u3_ca_north_is_senior(u3R, dog)) ) {
return dog;
}
else if ( u3_so(u3_co_north_is_junior(u3R, dog)) ) {
else if ( u3_so(u3_ca_north_is_junior(u3R, dog)) ) {
return _me_copy_north(dog);
}
else {
@ -608,32 +608,32 @@ _me_copy_north_in(u3_noun som)
static u3_noun
_me_copy_north(u3_noun dog)
{
c3_assert(u3_yes == u3_co_north_is_junior(u3R, dog));
c3_assert(u3_yes == u3_ca_north_is_junior(u3R, dog));
if ( u3_ne(u3_co_north_is_junior(u3R, dog)) ) {
if ( u3_ne(u3_co_north_is_senior(u3R, dog)) ) {
if ( u3_ne(u3_ca_north_is_junior(u3R, dog)) ) {
if ( u3_ne(u3_ca_north_is_senior(u3R, dog)) ) {
_me_gain_use(dog);
}
return dog;
}
else {
u3_cs_noun* dog_u = u3_co_to_ptr(dog);
u3_cs_noun* dog_u = u3_ca_to_ptr(dog);
/* Borrow mug slot to record new destination.
*/
if ( dog_u->mug_w >> 31 ) {
u3_noun nov = (u3_noun) dog_u->mug_w;
c3_assert(u3_so(u3_co_north_is_normal(u3R, nov)));
c3_assert(u3_so(u3_ca_north_is_normal(u3R, nov)));
_me_gain_use(nov);
return nov;
}
else {
if ( u3_yes == u3_co_is_pom(dog) ) {
u3_cs_cell* old_u = u3_co_to_ptr(dog);
if ( u3_yes == u3_ca_is_pom(dog) ) {
u3_cs_cell* old_u = u3_ca_to_ptr(dog);
c3_w* new_w = u3_ca_walloc(c3_wiseof(u3_cs_cell));
u3_noun new = u3_co_de_twin(dog, new_w);
u3_noun new = u3_ca_de_twin(dog, new_w);
u3_cs_cell* new_u = (u3_cs_cell*)(void *)new_w;
new_u->mug_w = old_u->mug_w;
@ -646,9 +646,9 @@ _me_copy_north(u3_noun dog)
return new;
}
else {
u3_cs_atom* old_u = u3_co_to_ptr(dog);
u3_cs_atom* old_u = u3_ca_to_ptr(dog);
c3_w* new_w = u3_ca_walloc(old_u->len_w + c3_wiseof(u3_cs_atom));
u3_noun new = u3_co_de_twin(dog, new_w);
u3_noun new = u3_ca_de_twin(dog, new_w);
u3_cs_atom* new_u = (u3_cs_atom*)(void *)new_w;
new_u->mug_w = old_u->mug_w;
@ -677,16 +677,16 @@ static u3_noun
_me_copy_south_in(u3_noun som)
{
c3_assert(u3_none != som);
if ( u3_so(u3_co_is_cat(som)) ) {
if ( u3_so(u3_ca_is_cat(som)) ) {
return som;
}
else {
u3_noun dog = som;
if ( u3_so(u3_co_south_is_senior(u3R, dog)) ) {
if ( u3_so(u3_ca_south_is_senior(u3R, dog)) ) {
return dog;
}
else if ( u3_so(u3_co_south_is_junior(u3R, dog)) ) {
else if ( u3_so(u3_ca_south_is_junior(u3R, dog)) ) {
return _me_copy_south(dog);
}
else {
@ -700,34 +700,34 @@ _me_copy_south_in(u3_noun som)
static u3_noun
_me_copy_south(u3_noun dog)
{
c3_assert(u3_yes == u3_co_south_is_junior(u3R, dog));
c3_assert(u3_yes == u3_ca_south_is_junior(u3R, dog));
if ( u3_ne(u3_co_south_is_junior(u3R, dog)) ) {
if ( u3_ne(u3_co_south_is_senior(u3R, dog)) ) {
if ( u3_ne(u3_ca_south_is_junior(u3R, dog)) ) {
if ( u3_ne(u3_ca_south_is_senior(u3R, dog)) ) {
_me_gain_use(dog);
}
return dog;
}
else {
u3_cs_noun* dog_u = u3_co_to_ptr(dog);
u3_cs_noun* dog_u = u3_ca_to_ptr(dog);
/* Borrow mug slot to record new destination.
*/
if ( dog_u->mug_w >> 31 ) {
u3_noun nov = (u3_noun) dog_u->mug_w;
// printf("south: %p is already %p\r\n", dog_u, u3_co_to_ptr(nov));
// printf("south: %p is already %p\r\n", dog_u, u3_ca_to_ptr(nov));
c3_assert(u3_so(u3_co_south_is_normal(u3R, nov)));
c3_assert(u3_so(u3_ca_south_is_normal(u3R, nov)));
_me_gain_use(nov);
return nov;
}
else {
if ( u3_yes == u3_co_is_pom(dog) ) {
u3_cs_cell* old_u = u3_co_to_ptr(dog);
if ( u3_yes == u3_ca_is_pom(dog) ) {
u3_cs_cell* old_u = u3_ca_to_ptr(dog);
c3_w* new_w = u3_ca_walloc(c3_wiseof(u3_cs_cell));
u3_noun new = u3_co_de_twin(dog, new_w);
u3_noun new = u3_ca_de_twin(dog, new_w);
u3_cs_cell* new_u = (u3_cs_cell*)(void *)new_w;
// printf("south: cell %p to %p\r\n", old_u, new_u);
@ -743,9 +743,9 @@ _me_copy_south(u3_noun dog)
return new;
}
else {
u3_cs_atom* old_u = u3_co_to_ptr(dog);
u3_cs_atom* old_u = u3_ca_to_ptr(dog);
c3_w* new_w = u3_ca_walloc(old_u->len_w + c3_wiseof(u3_cs_atom));
u3_noun new = u3_co_de_twin(dog, new_w);
u3_noun new = u3_ca_de_twin(dog, new_w);
u3_cs_atom* new_u = (u3_cs_atom*)(void *)new_w;
// printf("south: atom %p to %p\r\n", old_u, new_u);
@ -775,17 +775,17 @@ _me_copy_south(u3_noun dog)
static u3_noun
_me_take_north(u3_noun dog)
{
if ( u3_yes == u3_co_north_is_senior(u3R, dog) ) {
if ( u3_yes == u3_ca_north_is_senior(u3R, dog) ) {
/* senior pointers are not refcounted
*/
return dog;
}
else if ( u3_yes == u3_co_north_is_junior(u3R, dog) ) {
else if ( u3_yes == u3_ca_north_is_junior(u3R, dog) ) {
/* junior pointers are copied
*/
u3_noun mos = _me_copy_north(dog);
// printf("north: %p to %p\r\n", u3_co_to_ptr(dog), u3_co_to_ptr(mos));
// printf("north: %p to %p\r\n", u3_ca_to_ptr(dog), u3_ca_to_ptr(mos));
return mos;
}
else {
@ -801,17 +801,17 @@ _me_take_north(u3_noun dog)
static u3_noun
_me_take_south(u3_noun dog)
{
if ( u3_yes == u3_co_south_is_senior(u3R, dog) ) {
if ( u3_yes == u3_ca_south_is_senior(u3R, dog) ) {
/* senior pointers are not refcounted
*/
return dog;
}
else if ( u3_yes == u3_co_south_is_junior(u3R, dog) ) {
else if ( u3_yes == u3_ca_south_is_junior(u3R, dog) ) {
/* junior pointers are copied
*/
u3_noun mos = _me_copy_south(dog);
// printf("south: %p to %p\r\n", u3_co_to_ptr(dog), u3_co_to_ptr(mos));
// printf("south: %p to %p\r\n", u3_ca_to_ptr(dog), u3_ca_to_ptr(mos));
return mos;
}
else {
@ -829,11 +829,11 @@ u3_ca_take(u3_noun som)
{
c3_assert(u3_none != som);
if ( u3_so(u3_co_is_cat(som)) ) {
if ( u3_so(u3_ca_is_cat(som)) ) {
return som;
}
else {
return u3_so(u3_co_is_north(u3R))
return u3_so(u3_ca_is_north(u3R))
? _me_take_north(som)
: _me_take_south(som);
}
@ -844,13 +844,13 @@ u3_ca_take(u3_noun som)
c3_o
u3_ca_left(u3_noun som)
{
if ( u3_so(u3_co_is_cat(som)) ||
u3_ne(u3_co_is_junior(u3R, som)) )
if ( u3_so(u3_ca_is_cat(som)) ||
u3_ne(u3_ca_is_junior(u3R, som)) )
{
return u3_yes;
}
else {
u3_cs_noun* dog_u = u3_co_to_ptr(som);
u3_cs_noun* dog_u = u3_ca_to_ptr(som);
return u3_say(0 != (dog_u->mug_w >> 31));
}
@ -861,7 +861,7 @@ u3_ca_left(u3_noun som)
static u3_noun
_me_gain_north(u3_noun dog)
{
if ( u3_yes == u3_co_north_is_senior(u3R, dog) ) {
if ( u3_yes == u3_ca_north_is_senior(u3R, dog) ) {
/* senior pointers are not refcounted
*/
return dog;
@ -869,7 +869,7 @@ _me_gain_north(u3_noun dog)
else {
/* junior nouns are disallowed
*/
c3_assert(u3_ne(u3_co_north_is_junior(u3R, dog)));
c3_assert(u3_ne(u3_ca_north_is_junior(u3R, dog)));
/* normal pointers are refcounted
*/
@ -883,7 +883,7 @@ _me_gain_north(u3_noun dog)
static u3_noun
_me_gain_south(u3_noun dog)
{
if ( u3_yes == u3_co_south_is_senior(u3R, dog) ) {
if ( u3_yes == u3_ca_south_is_senior(u3R, dog) ) {
/* senior pointers are not refcounted
*/
return dog;
@ -891,7 +891,7 @@ _me_gain_south(u3_noun dog)
else {
/* junior nouns are disallowed
*/
c3_assert(u3_ne(u3_co_south_is_junior(u3R, dog)));
c3_assert(u3_ne(u3_ca_south_is_junior(u3R, dog)));
/* normal nouns are refcounted
*/
@ -906,9 +906,9 @@ static void
_me_lose_north(u3_noun dog)
{
top:
if ( u3_yes == u3_co_north_is_normal(u3R, dog) ) {
c3_w* dog_w = u3_co_to_ptr(dog);
u3_cs_box* box_u = u3_co_botox(dog_w);
if ( u3_yes == u3_ca_north_is_normal(u3R, dog) ) {
c3_w* dog_w = u3_ca_to_ptr(dog);
u3_cs_box* box_u = u3_ca_botox(dog_w);
if ( box_u->use_w > 1 ) {
box_u->use_w -= 1;
@ -918,16 +918,16 @@ top:
u3_cm_bail(c3__foul);
}
else {
if ( u3_so(u3_co_is_pom(dog)) ) {
if ( u3_so(u3_ca_is_pom(dog)) ) {
u3_cs_cell* dog_u = (void *)dog_w;
u3_noun h_dog = dog_u->hed;
u3_noun t_dog = dog_u->tel;
if ( u3_ne(u3_co_is_cat(h_dog)) ) {
if ( u3_ne(u3_ca_is_cat(h_dog)) ) {
_me_lose_north(h_dog);
}
u3_ca_free(dog_w);
if ( u3_ne(u3_co_is_cat(t_dog)) ) {
if ( u3_ne(u3_ca_is_cat(t_dog)) ) {
dog = t_dog;
goto top;
}
@ -946,9 +946,9 @@ static void
_me_lose_south(u3_noun dog)
{
top:
if ( u3_yes == u3_co_south_is_normal(u3R, dog) ) {
c3_w* dog_w = u3_co_to_ptr(dog);
u3_cs_box* box_u = u3_co_botox(dog_w);
if ( u3_yes == u3_ca_south_is_normal(u3R, dog) ) {
c3_w* dog_w = u3_ca_to_ptr(dog);
u3_cs_box* box_u = u3_ca_botox(dog_w);
if ( box_u->use_w > 1 ) {
box_u->use_w -= 1;
@ -958,16 +958,16 @@ top:
u3_cm_bail(c3__foul);
}
else {
if ( u3_so(u3_co_is_pom(dog)) ) {
if ( u3_so(u3_ca_is_pom(dog)) ) {
u3_cs_cell* dog_u = (void *)dog_w;
u3_noun h_dog = dog_u->hed;
u3_noun t_dog = dog_u->tel;
if ( u3_ne(u3_co_is_cat(h_dog)) ) {
if ( u3_ne(u3_ca_is_cat(h_dog)) ) {
_me_lose_south(h_dog);
}
u3_ca_free(dog_w);
if ( u3_ne(u3_co_is_cat(t_dog)) ) {
if ( u3_ne(u3_ca_is_cat(t_dog)) ) {
dog = t_dog;
goto top;
}
@ -987,11 +987,11 @@ u3_ca_gain(u3_noun som)
{
c3_assert(u3_none != som);
if ( u3_so(u3_co_is_cat(som)) ) {
if ( u3_so(u3_ca_is_cat(som)) ) {
return som;
}
else {
return u3_so(u3_co_is_north(u3R))
return u3_so(u3_ca_is_north(u3R))
? _me_gain_north(som)
: _me_gain_south(som);
}
@ -1002,8 +1002,8 @@ u3_ca_gain(u3_noun som)
void
u3_ca_lose(u3_noun som)
{
if ( u3_ne(u3_co_is_cat(som)) ) {
if ( u3_so(u3_co_is_north(u3R)) ) {
if ( u3_ne(u3_ca_is_cat(som)) ) {
if ( u3_so(u3_ca_is_north(u3R)) ) {
_me_lose_north(som);
} else {
_me_lose_south(som);
@ -1016,12 +1016,12 @@ u3_ca_lose(u3_noun som)
c3_w
u3_ca_use(u3_noun som)
{
if ( u3_so(u3_co_is_cat(som)) ) {
if ( u3_so(u3_ca_is_cat(som)) ) {
return 1;
}
else {
c3_w* dog_w = u3_co_to_ptr(som);
u3_cs_box* box_u = u3_co_botox(dog_w);
c3_w* dog_w = u3_ca_to_ptr(som);
u3_cs_box* box_u = u3_ca_botox(dog_w);
return box_u->use_w;
}
@ -1032,22 +1032,22 @@ u3_ca_use(u3_noun som)
c3_w
u3_ca_mark_ptr(void* ptr_v)
{
if ( u3_so(u3_co_is_north(u3R)) ) {
if ( !((ptr_v >= u3_co_into(u3R->rut_p)) &&
(ptr_v < u3_co_into(u3R->hat_p))) )
if ( u3_so(u3_ca_is_north(u3R)) ) {
if ( !((ptr_v >= u3_ca_into(u3R->rut_p)) &&
(ptr_v < u3_ca_into(u3R->hat_p))) )
{
return 0;
}
}
else {
if ( !((ptr_v >= u3_co_into(u3R->hat_p)) &&
(ptr_v < u3_co_into(u3R->rut_p))) )
if ( !((ptr_v >= u3_ca_into(u3R->hat_p)) &&
(ptr_v < u3_ca_into(u3R->rut_p))) )
{
return 0;
}
}
{
u3_cs_box* box_u = u3_co_botox(ptr_v);
u3_cs_box* box_u = u3_ca_botox(ptr_v);
c3_w siz_w;
#ifdef U3_MEMORY_DEBUG
@ -1091,11 +1091,11 @@ u3_ca_mark_noun(u3_noun som)
c3_w siz_w = 0;
while ( 1 ) {
if ( u3_so(u3_co_is_senior(u3R, som)) ) {
if ( u3_so(u3_ca_is_senior(u3R, som)) ) {
return siz_w;
}
else {
c3_w* dog_w = u3_co_to_ptr(som);
c3_w* dog_w = u3_ca_to_ptr(som);
c3_w new_w = u3_ca_mark_ptr(dog_w);
if ( 0 == new_w ) {
@ -1155,7 +1155,7 @@ u3_ca_sweep(c3_c* cap_c)
c3_w fre_w = 0;
c3_w i_w;
end_w = u3_so(u3_co_is_north(u3R))
end_w = u3_so(u3_ca_is_north(u3R))
? (u3R->hat_p - u3R->rut_p)
: (u3R->rut_p - u3R->hat_p);
@ -1176,10 +1176,10 @@ u3_ca_sweep(c3_c* cap_c)
*/
pos_w = leq_w = weq_w = 0;
{
u3_post box_p = u3_so(u3_co_is_north(u3R)) ? u3R->rut_p : u3R->hat_p;
u3_post end_p = u3_so(u3_co_is_north(u3R)) ? u3R->hat_p : u3R->rut_p;
c3_w* box_w = u3_co_into(box_p);
c3_w* end_w = u3_co_into(end_p);
u3_post box_p = u3_so(u3_ca_is_north(u3R)) ? u3R->rut_p : u3R->hat_p;
u3_post end_p = u3_so(u3_ca_is_north(u3R)) ? u3R->hat_p : u3R->rut_p;
c3_w* box_w = u3_ca_into(box_p);
c3_w* end_w = u3_ca_into(end_p);
while ( box_w < end_w ) {
u3_cs_box* box_u = (void *)box_w;
@ -1193,20 +1193,20 @@ u3_ca_sweep(c3_c* cap_c)
else {
printf("weak %p %x (%d, %d)\r\n",
box_u,
((u3_cs_noun *)(u3_co_boxto(box_w)))->mug_w,
((u3_cs_noun *)(u3_ca_boxto(box_w)))->mug_w,
box_u->use_w, box_u->eus_w);
// u3_cm_p("weak", u3_co_to_pom(u3_co_outa(u3_co_boxto(box_w))));
// u3_cm_p("weak", u3_ca_to_pom(u3_ca_outa(u3_ca_boxto(box_w))));
}
weq_w += box_u->siz_w;
}
else {
printf("leak %p %x (%d)\r\n",
box_u,
((u3_cs_noun *)(u3_co_boxto(box_w)))->mug_w
? ((u3_cs_noun *)(u3_co_boxto(box_w)))->mug_w
: u3_cr_mug(u3_co_to_pom(u3_co_outa(u3_co_boxto(box_w)))),
((u3_cs_noun *)(u3_ca_boxto(box_w)))->mug_w
? ((u3_cs_noun *)(u3_ca_boxto(box_w)))->mug_w
: u3_cr_mug(u3_ca_to_pom(u3_ca_outa(u3_ca_boxto(box_w)))),
box_u->use_w);
// u3_cm_p("leak", u3_co_to_pom(u3_co_outa(u3_co_boxto(box_w))));
// u3_cm_p("leak", u3_ca_to_pom(u3_ca_outa(u3_ca_boxto(box_w))));
leq_w += box_u->siz_w;
}
if ( box_u->cod_w ) {
@ -1239,10 +1239,10 @@ u3_ca_sweep(c3_c* cap_c)
}
}
tot_w = u3_so(u3_co_is_north(u3R))
tot_w = u3_so(u3_ca_is_north(u3R))
? u3R->mat_p - u3R->rut_p
: u3R->rut_p - u3R->mat_p;
caf_w = u3_so(u3_co_is_north(u3R))
caf_w = u3_so(u3_ca_is_north(u3R))
? u3R->mat_p - u3R->cap_p
: u3R->cap_p - u3R->mat_p;
@ -1319,13 +1319,13 @@ u3_ca_moot(c3_w* sal_w)
c3_assert(0 != las_w);
if ( 1 == len_w ) {
if ( u3_so(u3_co_is_cat(las_w)) ) {
if ( u3_so(u3_ca_is_cat(las_w)) ) {
u3_ca_free(nov_w);
return las_w;
}
}
return u3_co_to_pug(u3_co_outa(nov_w));
return u3_ca_to_pug(u3_ca_outa(nov_w));
}
#if 0
@ -1392,7 +1392,7 @@ u3_ca_mint(c3_w* sal_w, c3_w len_w)
else if ( len_w == 1 ) {
c3_w low_w = nov_u->buf_w[0];
if ( u3_so(u3_co_is_cat(low_w)) ) {
if ( u3_so(u3_ca_is_cat(low_w)) ) {
u3_ca_free(nov_w);
return low_w;
@ -1406,7 +1406,7 @@ u3_ca_mint(c3_w* sal_w, c3_w len_w)
c3_w dif_w = (old_w - len_w);
if ( dif_w >= u3_cc_minimum ) {
c3_w* box_w = (void *)u3_co_botox(nov_w);
c3_w* box_w = (void *)u3_ca_botox(nov_w);
c3_w* end_w = (nov_w + c3_wiseof(u3_cs_atom) + len_w + 1);
c3_w asz_w = (end_w - box_w);
c3_w bsz_w = box_w[0] - asz_w;
@ -1418,7 +1418,7 @@ u3_ca_mint(c3_w* sal_w, c3_w len_w)
}
nov_u->len_w = len_w;
}
return u3_co_to_pug(u3_co_outa(nov_w));
return u3_ca_to_pug(u3_ca_outa(nov_w));
}
#ifdef U3_MEMORY_DEBUG

28
g/i.c
View File

@ -45,7 +45,7 @@ u3_ci_words(c3_w a_w,
nov_u->buf_w[i_w] = b_w[i_w];
}
}
return u3_co_to_pug(u3_co_outa(nov_w));
return u3_ca_to_pug(u3_ca_outa(nov_w));
}
}
@ -133,7 +133,7 @@ u3_ci_bytes(c3_w a_w,
nov_u->buf_w[i_w >> 2] |= (b_y[i_w] << ((i_w & 3) * 8));
}
}
return u3_co_to_pug(u3_co_outa(nov_w));
return u3_ca_to_pug(u3_ca_outa(nov_w));
}
}
@ -170,7 +170,7 @@ u3_ci_vint(u3_noun a)
{
c3_assert(u3_none != a);
if ( u3_so(u3_co_is_cat(a)) ) {
if ( u3_so(u3_ca_is_cat(a)) ) {
c3_w vin_w = (a + 1);
if ( a == 0x7fffffff ) {
@ -178,7 +178,7 @@ u3_ci_vint(u3_noun a)
}
else return vin_w;
}
else if ( u3_so(u3_co_is_cell(a)) ) {
else if ( u3_so(u3_ca_is_cell(a)) ) {
return u3_cm_bail(c3__exit);
}
else {
@ -192,10 +192,6 @@ u3_ci_vint(u3_noun a)
}
}
extern int FOO;
u3_noun BAD;
/* u3_ci_cell():
**
** Produce the cell `[a b]`.
@ -206,8 +202,8 @@ u3_ci_cell(u3_noun a, u3_noun b)
c3_assert(u3_none != a);
c3_assert(u3_none != b);
c3_assert(u3_ne(u3_co_is_junior(u3R, a)));
c3_assert(u3_ne(u3_co_is_junior(u3R, b)));
c3_assert(u3_ne(u3_ca_is_junior(u3R, a)));
c3_assert(u3_ne(u3_ca_is_junior(u3R, b)));
{
c3_w* nov_w = u3_ca_walloc(c3_wiseof(u3_cs_cell));
@ -218,7 +214,7 @@ u3_ci_cell(u3_noun a, u3_noun b)
nov_u->hed = a;
nov_u->tel = b;
pro = u3_co_to_pom(u3_co_outa(nov_w));
pro = u3_ca_to_pom(u3_ca_outa(nov_w));
#if 0
if ( 0x15d47649 == u3_cr_mug(pro) ) {
fprintf(stderr, "BAD %x\r\n", pro);
@ -228,9 +224,9 @@ u3_ci_cell(u3_noun a, u3_noun b)
#if 1
return pro;
#else
if ( !FOO ) return u3_co_to_pom(u3_co_outa(nov_w));
if ( !FOO ) return u3_ca_to_pom(u3_ca_outa(nov_w));
else {
u3_noun pro = u3_co_to_pom(u3_co_outa(nov_w));
u3_noun pro = u3_ca_to_pom(u3_ca_outa(nov_w));
u3_cm_p("leaked", pro);
printf("pro %u, %x\r\n", pro, u3_cr_mug(pro));
@ -346,13 +342,13 @@ u3_ci_list(u3_weak one, ...);
else {
c3_w cut_w = _molt_cut(len_w, pms_m);
if ( u3_no == u3_co_is_cell(som) ) {
if ( u3_no == u3_ca_is_cell(som) ) {
return u3_cm_bail(c3__exit);
}
else {
return u3_ci_cell
(_molt_apply(u3_co_h(som), cut_w, pms_m),
_molt_apply(u3_co_t(som), (len_w - cut_w), (pms_m + cut_w)));
(_molt_apply(u3_ca_h(som), cut_w, pms_m),
_molt_apply(u3_ca_t(som), (len_w - cut_w), (pms_m + cut_w)));
}
}
}

12
g/j.c
View File

@ -55,7 +55,7 @@ _cj_axis(u3_noun fol)
if ( u3_ne(u3_cr_trel(fol, &p_fol, &q_fol, &r_fol)) ) {
if ( u3_ne(u3_cr_cell(fol, &p_fol, &q_fol)) ||
(0 != p_fol) ||
(u3_ne(u3_co_is_cat(q_fol))) )
(u3_ne(u3_ca_is_cat(q_fol))) )
{
fprintf(stderr, "axis: bad a\r\n");
return 0;
@ -65,7 +65,7 @@ _cj_axis(u3_noun fol)
else {
if ( 9 != p_fol )
{ fprintf(stderr, "axis: bad b\r\n"); return 0; }
if ( u3_ne(u3_co_is_cat(q_fol)) )
if ( u3_ne(u3_ca_is_cat(q_fol)) )
{ fprintf(stderr, "axis: bad c\r\n"); return 0; }
if ( u3_ne(u3du(r_fol)) || (0 != u3h(r_fol)) || (1 != u3t(r_fol)) )
{ fprintf(stderr, "axis: bad d\r\n"); return 0; }
@ -114,7 +114,7 @@ _cj_chum(u3_noun chu)
u3_noun h_chu = u3h(chu);
u3_noun t_chu = u3t(chu);
if ( u3_ne(u3_co_is_cat(t_chu)) ) {
if ( u3_ne(u3_ca_is_cat(t_chu)) ) {
return 0;
} else {
c3_c* h_chu_c = u3_cr_string(h_chu);
@ -156,7 +156,7 @@ _cj_je_fsck(u3_noun clu)
axe_l = 0;
}
else {
if ( (0 != u3h(q_clu)) || u3_ne(u3_co_is_cat(axe_l = u3t(q_clu))) ) {
if ( (0 != u3h(q_clu)) || u3_ne(u3_ca_is_cat(axe_l = u3t(q_clu))) ) {
u3z(clu); free(nam_c); return u3_none;
}
}
@ -614,7 +614,7 @@ _cj_find(u3_noun bat)
u3_weak jaw = u3_ch_gut(rod_u->jed.har_p, bat);
if ( u3_none != jaw ) {
u3_assure(u3_co_is_cat(u3h(jaw)));
u3_assure(u3_ca_is_cat(u3h(jaw)));
#if 0
if ( rod_u != u3R ) {
@ -971,7 +971,7 @@ _cj_warm_reap(u3_noun kev)
#if 0
fprintf(stderr, "reap: bat %x (%d, %d), cax %x\r\n",
u3_cr_mug(tab),
u3_co_is_junior(u3R, bat),
u3_ca_is_junior(u3R, bat),
u3_ca_use(tab),
u3_cr_mug(xac));
#endif

28
g/m.c
View File

@ -144,7 +144,7 @@ _cm_signal_recover(c3_l sig_l, u3_noun arg)
//
_cm_signal_reset();
if ( (c3__meme == sig_l) && (u3_co_open(u3R) <= 256) ) {
if ( (c3__meme == sig_l) && (u3_ca_open(u3R) <= 256) ) {
// Out of memory at the top level. Error becomes c3__full,
// and we release the emergency buffer. To continue work,
// we need to readjust the image, eg, migrate to 64 bit.
@ -405,7 +405,7 @@ u3_cm_dump(void)
c3_w fre_w = 0;
c3_w i_w;
hat_w = u3_so(u3_co_is_north(u3R)) ? u3R->hat_w - u3R->rut_w
hat_w = u3_so(u3_ca_is_north(u3R)) ? u3R->hat_w - u3R->rut_w
: u3R->rut_w - u3R->hat_w;
for ( i_w = 0; i_w < u3_cc_fbox_no; i_w++ ) {
@ -420,10 +420,10 @@ u3_cm_dump(void)
hat_w, fre_w, (hat_w - fre_w));
if ( 0 != (hat_w - fre_w) ) {
c3_w* box_w = u3_so(u3_co_is_north(u3R)) ? u3R->rut_w : u3R->hat_w;
c3_w* box_w = u3_so(u3_ca_is_north(u3R)) ? u3R->rut_w : u3R->hat_w;
c3_w mem_w = 0;
while ( box_w < (u3_so(u3_co_is_north(u3R)) ? u3R->hat_w : u3R->rut_w) ) {
while ( box_w < (u3_so(u3_ca_is_north(u3R)) ? u3R->hat_w : u3R->rut_w) ) {
u3_cs_box* box_u = (void *)box_w;
if ( 0 != box_u->use_w ) {
@ -505,7 +505,7 @@ u3_cm_bail(u3_noun how)
// choice but to use the signal process; and we require the flat
// form of how.
//
c3_assert(u3_so(u3_co_is_cat(how)));
c3_assert(u3_so(u3_ca_is_cat(how)));
u3_cm_signal(how);
}
@ -563,10 +563,10 @@ u3_cm_leap(c3_w pad_w)
else {
pad_w -= u3R->all.fre_w;
}
if ( (pad_w + c3_wiseof(u3_cs_road)) >= u3_co_open(u3R) ) {
if ( (pad_w + c3_wiseof(u3_cs_road)) >= u3_ca_open(u3R) ) {
u3_cm_bail(c3__meme);
}
len_w = u3_co_open(u3R) - (pad_w + c3_wiseof(u3_cs_road));
len_w = u3_ca_open(u3R) - (pad_w + c3_wiseof(u3_cs_road));
}
/* Allocate a region on the cap.
@ -574,11 +574,11 @@ u3_cm_leap(c3_w pad_w)
{
u3p(c3_w) bot_p;
if ( u3_yes == u3_co_is_north(u3R) ) {
if ( u3_yes == u3_ca_is_north(u3R) ) {
bot_p = (u3R->cap_p - len_w);
u3R->cap_p -= len_w;
rod_u = _boot_south(u3_co_into(bot_p), c3_wiseof(u3_cs_road), len_w);
rod_u = _boot_south(u3_ca_into(bot_p), c3_wiseof(u3_cs_road), len_w);
#if 0
fprintf(stderr, "leap: from north %p (cap %x), to south %p\r\n",
u3R,
@ -590,7 +590,7 @@ u3_cm_leap(c3_w pad_w)
bot_p = u3R->cap_p;
u3R->cap_p += len_w;
rod_u = _boot_north(u3_co_into(bot_p), c3_wiseof(u3_cs_road), len_w);
rod_u = _boot_north(u3_ca_into(bot_p), c3_wiseof(u3_cs_road), len_w);
#if 0
fprintf(stderr, "leap: from north %p (cap %p), to south %p\r\n",
u3R,
@ -628,9 +628,9 @@ u3_cm_fall()
#if 0
fprintf(stderr, "fall: from %s %p, to %s %p (cap %p, was %p)\r\n",
u3_so(u3_co_is_north(u3R)) ? "north" : "south",
u3_so(u3_ca_is_north(u3R)) ? "north" : "south",
u3R,
u3_so(u3_co_is_north(u3R)) ? "north" : "south",
u3_so(u3_ca_is_north(u3R)) ? "north" : "south",
u3R->par_u,
u3R->hat_w,
u3R->rut_w);
@ -682,7 +682,7 @@ u3_cm_love(u3_noun pro)
c3_w
u3_cm_golf(void)
{
if ( u3_yes == u3_co_is_north(u3R) ) {
if ( u3_yes == u3_ca_is_north(u3R) ) {
return u3R->mat_p - u3R->cap_p;
}
else {
@ -697,7 +697,7 @@ u3_cm_flog(c3_w gof_w)
{
// Enable memsets in case of memory corruption.
//
if ( u3_yes == u3_co_is_north(u3R) ) {
if ( u3_yes == u3_ca_is_north(u3R) ) {
u3_post bot_p = (u3R->mat_p - gof_w);
// c3_w len_w = (bot_w - u3R->cap_w);

204
g/r.c
View File

@ -15,11 +15,11 @@ _frag_word(c3_w a_w, u3_noun b)
c3_w dep_w = u3_ax_dep(a_w);
while ( dep_w ) {
if ( u3_no == u3_co_is_cell(b) ) {
if ( u3_no == u3_ca_is_cell(b) ) {
return u3_none;
}
else {
u3_cs_cell* b_u = u3_co_to_ptr(b);
u3_cs_cell* b_u = u3_ca_to_ptr(b);
b = *(((u3_noun*)&(b_u->hed)) + (1 & (a_w >> (dep_w - 1))));
dep_w--;
@ -37,11 +37,11 @@ _frag_deep(c3_w a_w, u3_noun b)
c3_w dep_w = 32;
while ( dep_w ) {
if ( u3_no == u3_co_is_cell(b) ) {
if ( u3_no == u3_ca_is_cell(b) ) {
return u3_none;
}
else {
u3_cs_cell* b_u = u3_co_to_ptr(b);
u3_cs_cell* b_u = u3_ca_to_ptr(b);
b = *(((u3_noun*)&(b_u->hed)) + (1 & (a_w >> (dep_w - 1))));
dep_w--;
@ -65,15 +65,15 @@ u3_cr_at(u3_atom a,
return u3_none;
}
if ( u3_so(u3_co_is_cat(a)) ) {
if ( u3_so(u3_ca_is_cat(a)) ) {
return _frag_word(a, b);
}
else {
if ( u3_ne(u3_co_is_pug(a)) ) {
if ( u3_ne(u3_ca_is_pug(a)) ) {
return u3_none;
}
else {
u3_cs_atom* a_u = u3_co_to_ptr(a);
u3_cs_atom* a_u = u3_ca_to_ptr(a);
c3_w len_w = a_u->len_w;
b = _frag_word(a_u->buf_w[len_w - 1], b);
@ -136,14 +136,14 @@ u3_cr_at(u3_atom a,
return u3_yes;
}
else {
if ( u3_no == u3_co_is_cell(som) ) {
if ( u3_no == u3_ca_is_cell(som) ) {
return u3_no;
} else {
c3_w cut_w = _mean_cut(len_w, prs_m);
return u3_and
(_mean_extract(u3_co_h(som), cut_w, prs_m),
_mean_extract(u3_co_t(som), (len_w - cut_w), (prs_m + cut_w)));
(_mean_extract(u3_ca_h(som), cut_w, prs_m),
_mean_extract(u3_ca_t(som), (len_w - cut_w), (prs_m + cut_w)));
}
}
}
@ -256,7 +256,7 @@ _mug_bytes(c3_w off_w, c3_w nby_w, c3_y* byt_y)
static __inline__ c3_w
_mug_words_in_buf(c3_w off_w, c3_w nwd_w, u3_noun veb)
{
u3_cs_atom* veb_u = u3_co_to_ptr(veb);
u3_cs_atom* veb_u = u3_ca_to_ptr(veb);
if ( 0 == nwd_w ) {
return off_w;
@ -384,19 +384,19 @@ u3_cr_mug(u3_noun veb)
{
c3_assert(u3_none != veb);
if ( u3_so(u3_co_is_cat(veb)) ) {
if ( u3_so(u3_ca_is_cat(veb)) ) {
c3_w x_w = veb;
return _mug_words(2166136261, (veb ? 1 : 0), &x_w);
} else {
u3_cs_noun* veb_u = u3_co_to_ptr(veb);
u3_cs_noun* veb_u = u3_ca_to_ptr(veb);
if ( veb_u->mug_w ) {
return veb_u->mug_w;
}
else {
if ( u3_so(u3_co_is_cell(veb)) ) {
u3_cs_cell* veb_u = u3_co_to_ptr(veb);
if ( u3_so(u3_ca_is_cell(veb)) ) {
u3_cs_cell* veb_u = u3_ca_to_ptr(veb);
u3_noun hed = veb_u->hed;
u3_noun tel = veb_u->tel;
@ -404,7 +404,7 @@ u3_cr_mug(u3_noun veb)
return veb_u->mug_w;
}
else {
u3_cs_atom* veb_u = u3_co_to_ptr(veb);
u3_cs_atom* veb_u = u3_ca_to_ptr(veb);
c3_w len_w = veb_u->len_w;
veb_u->mug_w = _mug_words_buf(2166136261, len_w, veb);
@ -487,8 +487,8 @@ _sung_one(u3_noun* a, u3_noun* b)
return;
}
else {
c3_o asr_o = u3_co_is_senior(u3R, *a);
c3_o bsr_o = u3_co_is_senior(u3R, *b);
c3_o asr_o = u3_ca_is_senior(u3R, *a);
c3_o bsr_o = u3_ca_is_senior(u3R, *b);
if ( u3_so(asr_o) && u3_so(bsr_o) ) {
// You shouldn't have let this happen. We don't want to
@ -506,7 +506,7 @@ _sung_one(u3_noun* a, u3_noun* b)
u3z(*a);
*a = *b;
}
if ( u3_co_is_north(u3R) ) {
if ( u3_ca_is_north(u3R) ) {
if ( *a <= *b ) {
u3k(*a);
u3z(*b);
@ -540,17 +540,17 @@ _sung_x(u3_noun a, u3_noun b)
return u3_yes;
}
else {
if ( u3_so(u3_co_is_atom(a)) ) {
u3_cs_atom* a_u = u3_co_to_ptr(a);
if ( u3_so(u3_ca_is_atom(a)) ) {
u3_cs_atom* a_u = u3_ca_to_ptr(a);
if ( !u3_so(u3_co_is_atom(b)) ||
u3_so(u3_co_is_cat(a)) ||
u3_so(u3_co_is_cat(b)) )
if ( !u3_so(u3_ca_is_atom(b)) ||
u3_so(u3_ca_is_cat(a)) ||
u3_so(u3_ca_is_cat(b)) )
{
return u3_no;
}
else {
u3_cs_atom* b_u = u3_co_to_ptr(b);
u3_cs_atom* b_u = u3_ca_to_ptr(b);
if ( a_u->mug_w &&
b_u->mug_w &&
@ -579,12 +579,12 @@ _sung_x(u3_noun a, u3_noun b)
}
}
else {
if ( u3_so(u3_co_is_atom(b)) ) {
if ( u3_so(u3_ca_is_atom(b)) ) {
return u3_no;
}
else {
u3_cs_cell* a_u = u3_co_to_ptr(a);
u3_cs_cell* b_u = u3_co_to_ptr(b);
u3_cs_cell* a_u = u3_ca_to_ptr(a);
u3_cs_cell* b_u = u3_ca_to_ptr(b);
if ( a_u->mug_w &&
b_u->mug_w &&
@ -629,17 +629,17 @@ _sing_x(u3_noun a,
return u3_yes;
}
else {
if ( u3_so(u3_co_is_atom(a)) ) {
u3_cs_atom* a_u = u3_co_to_ptr(a);
if ( u3_so(u3_ca_is_atom(a)) ) {
u3_cs_atom* a_u = u3_ca_to_ptr(a);
if ( !u3_so(u3_co_is_atom(b)) ||
u3_so(u3_co_is_cat(a)) ||
u3_so(u3_co_is_cat(b)) )
if ( !u3_so(u3_ca_is_atom(b)) ||
u3_so(u3_ca_is_cat(a)) ||
u3_so(u3_ca_is_cat(b)) )
{
return u3_no;
}
else {
u3_cs_atom* b_u = u3_co_to_ptr(b);
u3_cs_atom* b_u = u3_ca_to_ptr(b);
if ( a_u->mug_w &&
b_u->mug_w &&
@ -668,12 +668,12 @@ _sing_x(u3_noun a,
}
}
else {
if ( u3_so(u3_co_is_atom(b)) ) {
if ( u3_so(u3_ca_is_atom(b)) ) {
return u3_no;
}
else {
u3_cs_cell* a_u = u3_co_to_ptr(a);
u3_cs_cell* b_u = u3_co_to_ptr(b);
u3_cs_cell* a_u = u3_ca_to_ptr(a);
u3_cs_cell* b_u = u3_ca_to_ptr(b);
if ( a_u->mug_w &&
b_u->mug_w &&
@ -682,10 +682,10 @@ _sing_x(u3_noun a,
return u3_no;
}
else {
if ( u3_no == _sing_x(u3_co_h(a), u3_co_h(b)) ) {
if ( u3_no == _sing_x(u3_ca_h(a), u3_ca_h(b)) ) {
return u3_no;
}
else if ( u3_no == _sing_x(u3_co_t(a), u3_co_t(b)) ) {
else if ( u3_no == _sing_x(u3_ca_t(a), u3_ca_t(b)) ) {
return u3_no;
}
return u3_yes;
@ -731,18 +731,18 @@ u3_cr_sing_cell(u3_noun p,
u3_noun q,
u3_noun b)
{
return u3_and(u3_so(u3_co_is_cell(b)),
u3_and(u3_cr_sing(p, u3_co_h(b)),
u3_cr_sing(q, u3_co_t(b))));
return u3_and(u3_so(u3_ca_is_cell(b)),
u3_and(u3_cr_sing(p, u3_ca_h(b)),
u3_cr_sing(q, u3_ca_t(b))));
}
u3_bean
u3_cr_fing_cell(u3_noun p,
u3_noun q,
u3_noun b)
{
return u3_and(u3_so(u3_co_is_cell(b)),
u3_and(u3_cr_fing(p, u3_co_h(b)),
u3_cr_fing(q, u3_co_t(b))));
return u3_and(u3_so(u3_ca_is_cell(b)),
u3_and(u3_cr_fing(p, u3_ca_h(b)),
u3_cr_fing(q, u3_ca_t(b))));
}
/* u3_cr_sing_mixt():
@ -754,18 +754,18 @@ u3_cr_sing_mixt(const c3_c* p_c,
u3_noun q,
u3_noun b)
{
return u3_and(u3_so(u3_co_is_cell(b)),
u3_and(u3_cr_sing_c(p_c, u3_co_h(b)),
u3_cr_sing(q, u3_co_t(b))));
return u3_and(u3_so(u3_ca_is_cell(b)),
u3_and(u3_cr_sing_c(p_c, u3_ca_h(b)),
u3_cr_sing(q, u3_ca_t(b))));
}
u3_bean
u3_cr_fing_mixt(const c3_c* p_c,
u3_noun q,
u3_noun b)
{
return u3_and(u3_so(u3_co_is_cell(b)),
u3_and(u3_cr_sing_c(p_c, u3_co_h(b)),
u3_cr_fing(q, u3_co_t(b))));
return u3_and(u3_so(u3_ca_is_cell(b)),
u3_and(u3_cr_sing_c(p_c, u3_ca_h(b)),
u3_cr_fing(q, u3_ca_t(b))));
}
/* u3_cr_sing_trel():
@ -778,9 +778,9 @@ u3_cr_sing_trel(u3_noun p,
u3_noun r,
u3_noun b)
{
return u3_and(u3_so(u3_co_is_cell(b)),
u3_and(u3_cr_sing(p, u3_co_h(b)),
u3_cr_sing_cell(q, r, u3_co_t(b))));
return u3_and(u3_so(u3_ca_is_cell(b)),
u3_and(u3_cr_sing(p, u3_ca_h(b)),
u3_cr_sing_cell(q, r, u3_ca_t(b))));
}
u3_bean
u3_cr_fing_trel(u3_noun p,
@ -788,9 +788,9 @@ u3_cr_fing_trel(u3_noun p,
u3_noun r,
u3_noun b)
{
return u3_and(u3_so(u3_co_is_cell(b)),
u3_and(u3_cr_fing(p, u3_co_h(b)),
u3_cr_fing_cell(q, r, u3_co_t(b))));
return u3_and(u3_so(u3_ca_is_cell(b)),
u3_and(u3_cr_fing(p, u3_ca_h(b)),
u3_cr_fing_cell(q, r, u3_ca_t(b))));
}
/* u3_cr_sing_qual():
@ -804,9 +804,9 @@ u3_cr_sing_qual(u3_noun p,
u3_noun s,
u3_noun b)
{
return u3_and(u3_so(u3_co_is_cell(b)),
u3_and(u3_cr_sing(p, u3_co_h(b)),
u3_cr_sing_trel(q, r, s, u3_co_t(b))));
return u3_and(u3_so(u3_ca_is_cell(b)),
u3_and(u3_cr_sing(p, u3_ca_h(b)),
u3_cr_sing_trel(q, r, s, u3_ca_t(b))));
}
u3_bean
u3_cr_fing_qual(u3_noun p,
@ -815,9 +815,9 @@ u3_cr_fing_qual(u3_noun p,
u3_noun s,
u3_noun b)
{
return u3_and(u3_so(u3_co_is_cell(b)),
u3_and(u3_cr_fing(p, u3_co_h(b)),
u3_cr_fing_trel(q, r, s, u3_co_t(b))));
return u3_and(u3_so(u3_ca_is_cell(b)),
u3_and(u3_cr_fing(p, u3_ca_h(b)),
u3_cr_fing_trel(q, r, s, u3_ca_t(b))));
}
/* u3_cr_nord():
@ -835,22 +835,22 @@ u3_cr_nord(u3_noun a,
return 1;
}
else {
if ( u3_so(u3_co_is_atom(a)) ) {
if ( !u3_so(u3_co_is_atom(b)) ) {
if ( u3_so(u3_ca_is_atom(a)) ) {
if ( !u3_so(u3_ca_is_atom(b)) ) {
return 0;
} else {
if ( u3_so(u3_co_is_cat(a)) ) {
if ( u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) ) {
if ( u3_so(u3_ca_is_cat(b)) ) {
return (a < b) ? 0 : 2;
}
else return 0;
}
else if ( u3_so(u3_co_is_cat(b)) ) {
else if ( u3_so(u3_ca_is_cat(b)) ) {
return 2;
}
else {
u3_cs_atom* a_u = u3_co_to_ptr(a);
u3_cs_atom* b_u = u3_co_to_ptr(b);
u3_cs_atom* a_u = u3_ca_to_ptr(a);
u3_cs_atom* b_u = u3_ca_to_ptr(b);
c3_w w_rez = a_u->len_w;
c3_w w_mox = b_u->len_w;
@ -874,13 +874,13 @@ u3_cr_nord(u3_noun a,
}
}
} else {
if ( u3_so(u3_co_is_atom(b)) ) {
if ( u3_so(u3_ca_is_atom(b)) ) {
return 2;
} else {
u3_atom c = u3_cr_nord(u3_co_h(a), u3_co_h(b));
u3_atom c = u3_cr_nord(u3_ca_h(a), u3_ca_h(b));
if ( 1 == c ) {
return u3_cr_nord(u3_co_t(a), u3_co_t(b));
return u3_cr_nord(u3_ca_t(a), u3_ca_t(b));
} else {
return c;
}
@ -899,7 +899,7 @@ u3_cr_sing_c(const c3_c* a_c,
{
c3_assert(u3_none != b);
if ( !u3_so(u3_co_is_atom(b)) ) {
if ( !u3_so(u3_ca_is_atom(b)) ) {
return u3_no;
}
else {
@ -929,16 +929,16 @@ u3_cr_bush(u3_noun a,
{
c3_assert(u3_none != a);
if ( u3_so(u3_co_is_atom(a)) ) {
if ( u3_so(u3_ca_is_atom(a)) ) {
return u3_no;
}
else {
*b = u3_co_h(a);
*b = u3_ca_h(a);
if ( u3_so(u3_co_is_atom(*b)) ) {
if ( u3_so(u3_ca_is_atom(*b)) ) {
return u3_no;
} else {
*c = u3_co_t(a);
*c = u3_ca_t(a);
return u3_yes;
}
}
@ -955,12 +955,12 @@ u3_cr_cell(u3_noun a,
{
c3_assert(u3_none != a);
if ( u3_so(u3_co_is_atom(a)) ) {
if ( u3_so(u3_ca_is_atom(a)) ) {
return u3_no;
}
else {
if ( b ) *b = u3_co_h(a);
if ( c ) *c = u3_co_t(a);
if ( b ) *b = u3_ca_h(a);
if ( c ) *c = u3_ca_t(a);
return u3_yes;
}
}
@ -1144,7 +1144,7 @@ u3_cr_met(c3_y a_y,
u3_atom b)
{
c3_assert(u3_none != b);
c3_assert(u3_so(u3_co_is_atom(b)));
c3_assert(u3_so(u3_ca_is_atom(b)));
if ( b == 0 ) {
return 0;
@ -1156,12 +1156,12 @@ u3_cr_met(c3_y a_y,
c3_w gal_w;
c3_w daz_w;
if ( u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(b)) ) {
gal_w = 0;
daz_w = b;
}
else {
u3_cs_atom* b_u = u3_co_to_ptr(b);
u3_cs_atom* b_u = u3_ca_to_ptr(b);
gal_w = (b_u->len_w) - 1;
daz_w = b_u->buf_w[gal_w];
@ -1207,16 +1207,16 @@ u3_cr_bit(c3_w a_w,
u3_atom b)
{
c3_assert(u3_none != b);
c3_assert(u3_so(u3_co_is_atom(b)));
c3_assert(u3_so(u3_ca_is_atom(b)));
if ( u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(b)) ) {
if ( a_w >= 31 ) {
return 0;
}
else return (1 & (b >> a_w));
}
else {
u3_cs_atom* b_u = u3_co_to_ptr(b);
u3_cs_atom* b_u = u3_ca_to_ptr(b);
c3_y vut_y = (a_w & 31);
c3_w pix_w = (a_w >> 5);
@ -1240,16 +1240,16 @@ u3_cr_byte(c3_w a_w,
u3_atom b)
{
c3_assert(u3_none != b);
c3_assert(u3_so(u3_co_is_atom(b)));
c3_assert(u3_so(u3_ca_is_atom(b)));
if ( u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(b)) ) {
if ( a_w > 3 ) {
return 0;
}
else return (255 & (b >> (a_w << 3)));
}
else {
u3_cs_atom* b_u = u3_co_to_ptr(b);
u3_cs_atom* b_u = u3_ca_to_ptr(b);
c3_y vut_y = (a_w & 3);
c3_w pix_w = (a_w >> 2);
@ -1294,13 +1294,13 @@ u3_cr_mp(mpz_t a_mp,
u3_atom b)
{
c3_assert(u3_none != b);
c3_assert(u3_so(u3_co_is_atom(b)));
c3_assert(u3_so(u3_ca_is_atom(b)));
if ( u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(b)) ) {
mpz_init_set_ui(a_mp, b);
}
else {
u3_cs_atom* b_u = u3_co_to_ptr(b);
u3_cs_atom* b_u = u3_ca_to_ptr(b);
c3_w len_w = b_u->len_w;
/* Slight deficiency in the GMP API.
@ -1331,16 +1331,16 @@ u3_cr_word(c3_w a_w,
u3_atom b)
{
c3_assert(u3_none != b);
c3_assert(u3_so(u3_co_is_atom(b)));
c3_assert(u3_so(u3_ca_is_atom(b)));
if ( u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(b)) ) {
if ( a_w > 0 ) {
return 0;
}
else return b;
}
else {
u3_cs_atom* b_u = u3_co_to_ptr(b);
u3_cs_atom* b_u = u3_ca_to_ptr(b);
if ( a_w >= b_u->len_w ) {
return 0;
@ -1403,14 +1403,14 @@ u3_cr_chop(c3_g met_g,
c3_w* buf_w;
c3_assert(u3_none != src);
c3_assert(u3_so(u3_co_is_atom(src)));
c3_assert(u3_so(u3_ca_is_atom(src)));
if ( u3_so(u3_co_is_cat(src)) ) {
if ( u3_so(u3_ca_is_cat(src)) ) {
len_w = src ? 1 : 0;
buf_w = &src;
}
else {
u3_cs_atom* src_u = u3_co_to_ptr(src);
u3_cs_atom* src_u = u3_ca_to_ptr(src);
len_w = src_u->len_w;
buf_w = src_u->buf_w;
@ -1481,12 +1481,12 @@ u3_cr_tape(u3_noun a)
c3_w i_w;
c3_y *a_y;
for ( i_w = 0, b=a; u3_yes == u3_co_is_cell(b); i_w++, b=u3_co_t(b) )
for ( i_w = 0, b=a; u3_yes == u3_ca_is_cell(b); i_w++, b=u3_ca_t(b) )
;
a_y = c3_malloc(i_w + 1);
for ( i_w = 0, b=a; u3_yes == u3_co_is_cell(b); i_w++, b=u3_co_t(b) ) {
a_y[i_w] = u3_co_h(b);
for ( i_w = 0, b=a; u3_yes == u3_ca_is_cell(b); i_w++, b=u3_ca_t(b) ) {
a_y[i_w] = u3_ca_h(b);
}
a_y[i_w] = 0;

2
g/v.c
View File

@ -485,7 +485,7 @@ u3_cv_louse(c3_m how_m)
#if 0
if ( c3__exit == how_m ) {
printf("louse: nocks: %d\n", NOX);
printf("louse: washing kernel %x %d\n", u3A->ken, u3_co_is_dog(u3A->ken));
printf("louse: washing kernel %x %d\n", u3A->ken, u3_ca_is_dog(u3A->ken));
u3_cm_wash(u3A->ken);
printf("kernel %x; washed mug %x\n", u3A->ken, u3_cr_mug(u3A->ken));

View File

@ -15,7 +15,6 @@
# define u3_cc_pages (1 << (u3_cc_bits - u3_cc_page)) // 2^16 pages
# define u3_cc_words (1 << u3_cc_bits)
# define u3_cc_bytes (c3_w)((1 << (2 + u3_cc_bits)))
# define u3_Loom ((c3_w *)(void *)U3_OS_LoomBase)
/** Data structures.
@ -75,30 +74,30 @@
/* Inside a noun.
*/
# define u3_co_is_cat(som) (((som) >> 31) ? u3_no : u3_yes)
# define u3_co_is_dog(som) (((som) >> 31) ? u3_yes : u3_no)
# define u3_ca_is_cat(som) (((som) >> 31) ? u3_no : u3_yes)
# define u3_ca_is_dog(som) (((som) >> 31) ? u3_yes : u3_no)
# define u3_co_is_pug(som) ((2 == ((som) >> 30)) ? u3_yes : u3_no)
# define u3_co_is_pom(som) ((3 == ((som) >> 30)) ? u3_yes : u3_no)
# define u3_co_to_off(som) ((som) & 0x3fffffff)
# define u3_co_to_ptr(som) (u3_co_into(u3_co_to_off(som)))
# define u3_co_to_wtr(som) ((c3_w *)u3_co_to_ptr(som))
# define u3_co_to_pug(off) (off | 0x80000000)
# define u3_co_to_pom(off) (off | 0xc0000000)
# define u3_ca_is_pug(som) ((2 == ((som) >> 30)) ? u3_yes : u3_no)
# define u3_ca_is_pom(som) ((3 == ((som) >> 30)) ? u3_yes : u3_no)
# define u3_ca_to_off(som) ((som) & 0x3fffffff)
# define u3_ca_to_ptr(som) (u3_ca_into(u3_ca_to_off(som)))
# define u3_ca_to_wtr(som) ((c3_w *)u3_ca_to_ptr(som))
# define u3_ca_to_pug(off) (off | 0x80000000)
# define u3_ca_to_pom(off) (off | 0xc0000000)
# define u3_co_is_atom(som) u3_or(u3_co_is_cat(som), \
u3_co_is_pug(som))
# define u3_co_is_cell(som) u3_co_is_pom(som)
# define u3_co_de_twin(dog, dog_w) ((dog & 0xc0000000) | u3_co_outa(dog_w))
# define u3_ca_is_atom(som) u3_or(u3_ca_is_cat(som), \
u3_ca_is_pug(som))
# define u3_ca_is_cell(som) u3_ca_is_pom(som)
# define u3_ca_de_twin(dog, dog_w) ((dog & 0xc0000000) | u3_ca_outa(dog_w))
# define u3_co_h(som) \
( u3_so(u3_co_is_cell(som)) \
? ( ((u3_cs_cell *)u3_co_to_ptr(som))->hed )\
# define u3_ca_h(som) \
( u3_so(u3_ca_is_cell(som)) \
? ( ((u3_cs_cell *)u3_ca_to_ptr(som))->hed )\
: u3_cm_bail(c3__exit) )
# define u3_co_t(som) \
( u3_so(u3_co_is_cell(som)) \
? ( ((u3_cs_cell *)u3_co_to_ptr(som))->tel )\
# define u3_ca_t(som) \
( u3_so(u3_ca_is_cell(som)) \
? ( ((u3_cs_cell *)u3_ca_to_ptr(som))->tel )\
: u3_cm_bail(c3__exit) )
/* u3_cs_box: classic allocation box.
@ -125,11 +124,11 @@
# endif
} u3_cs_box;
# define u3_co_boxed(len_w) (len_w + c3_wiseof(u3_cs_box) + 1)
# define u3_co_boxto(box_v) ( (void *) \
# define u3_ca_boxed(len_w) (len_w + c3_wiseof(u3_cs_box) + 1)
# define u3_ca_boxto(box_v) ( (void *) \
( ((c3_w *)(void*)(box_v)) + \
c3_wiseof(u3_cs_box) ) )
# define u3_co_botox(tox_v) ( (struct _u3_cs_box *) \
# define u3_ca_botox(tox_v) ( (struct _u3_cs_box *) \
(void *) \
( ((c3_w *)(void*)(tox_v)) - \
c3_wiseof(u3_cs_box) ) )
@ -285,56 +284,56 @@
/** Macros.
**/
# define u3_co_into(x) ((void *)(u3_Loom + (x)))
# define u3_co_outa(p) (((c3_w*)(void*)(p)) - u3_Loom)
# define u3_ca_into(x) ((void *)(u3_Loom + (x)))
# define u3_ca_outa(p) (((c3_w*)(void*)(p)) - u3_Loom)
# define u3to(type, x) ((type *) u3_co_into(x))
# define u3of(type, x) (u3_co_outa((type *)x))
# define u3to(type, x) ((type *) u3_ca_into(x))
# define u3of(type, x) (u3_ca_outa((type *)x))
# define u3_co_is_north(r) ((r->cap_p > r->hat_p) ? u3_yes : u3_no)
# define u3_co_is_south(r) ((u3_so(u3_co_is_north(r))) ? u3_no : u3_yes)
# define u3_ca_is_north(r) ((r->cap_p > r->hat_p) ? u3_yes : u3_no)
# define u3_ca_is_south(r) ((u3_so(u3_ca_is_north(r))) ? u3_no : u3_yes)
# define u3_co_open(r) ( (u3_yes == u3_co_is_north(r)) \
# define u3_ca_open(r) ( (u3_yes == u3_ca_is_north(r)) \
? (c3_w)(r->cap_p - r->hat_p) \
: (c3_w)(r->hat_p - r->cap_p) )
# define u3_co_north_is_senior(r, dog) \
u3_say((u3_co_to_off(dog) < r->rut_p) || \
(u3_co_to_off(dog) >= r->mat_p))
# define u3_ca_north_is_senior(r, dog) \
u3_say((u3_ca_to_off(dog) < r->rut_p) || \
(u3_ca_to_off(dog) >= r->mat_p))
# define u3_co_north_is_junior(r, dog) \
u3_say((u3_co_to_off(dog) >= r->cap_p) && \
(u3_co_to_off(dog) < r->mat_p))
# define u3_ca_north_is_junior(r, dog) \
u3_say((u3_ca_to_off(dog) >= r->cap_p) && \
(u3_ca_to_off(dog) < r->mat_p))
# define u3_co_north_is_normal(r, dog) \
u3_and(u3_not(u3_co_north_is_senior(r, dog)), \
u3_not(u3_co_north_is_junior(r, dog)))
# define u3_ca_north_is_normal(r, dog) \
u3_and(u3_not(u3_ca_north_is_senior(r, dog)), \
u3_not(u3_ca_north_is_junior(r, dog)))
# define u3_co_south_is_senior(r, dog) \
u3_say((u3_co_to_off(dog) < r->mat_p) || \
(u3_co_to_off(dog) >= r->rut_p))
# define u3_ca_south_is_senior(r, dog) \
u3_say((u3_ca_to_off(dog) < r->mat_p) || \
(u3_ca_to_off(dog) >= r->rut_p))
# define u3_co_south_is_junior(r, dog) \
u3_say((u3_co_to_off(dog) < r->cap_p) && \
(u3_co_to_off(dog) >= r->mat_p))
# define u3_ca_south_is_junior(r, dog) \
u3_say((u3_ca_to_off(dog) < r->cap_p) && \
(u3_ca_to_off(dog) >= r->mat_p))
# define u3_co_south_is_normal(r, dog) \
u3_and(u3_not(u3_co_south_is_senior(r, dog)), \
u3_not(u3_co_south_is_junior(r, dog)))
# define u3_ca_south_is_normal(r, dog) \
u3_and(u3_not(u3_ca_south_is_senior(r, dog)), \
u3_not(u3_ca_south_is_junior(r, dog)))
# define u3_co_is_junior(r, som) \
( u3_so(u3_co_is_cat(som)) \
# define u3_ca_is_junior(r, som) \
( u3_so(u3_ca_is_cat(som)) \
? u3_no \
: u3_so(u3_co_is_north(r)) \
? u3_co_north_is_junior(r, som) \
: u3_co_south_is_junior(r, som) )
: u3_so(u3_ca_is_north(r)) \
? u3_ca_north_is_junior(r, som) \
: u3_ca_south_is_junior(r, som) )
# define u3_co_is_senior(r, som) \
( u3_so(u3_co_is_cat(som)) \
# define u3_ca_is_senior(r, som) \
( u3_so(u3_ca_is_cat(som)) \
? u3_yes \
: u3_so(u3_co_is_north(r)) \
? u3_co_north_is_senior(r, som) \
: u3_co_south_is_senior(r, som) )
: u3_so(u3_ca_is_north(r)) \
? u3_ca_north_is_senior(r, som) \
: u3_ca_south_is_senior(r, som) )
/* Word axis macros. For 31-bit axes only.
*/
@ -390,6 +389,7 @@
c3_global c3_w u3_Code;
#endif
# define u3_Loom ((c3_w *)(void *)U3_OS_LoomBase)
/** Functions.
**/

View File

@ -66,8 +66,8 @@
# define u3_ch_slot_is_node(sot) ((1 == ((sot) >> 30)) ? u3_yes : u3_no)
# define u3_ch_slot_is_noun(sot) ((1 == ((sot) >> 31)) ? u3_yes : u3_no)
# define u3_ch_slot_is_warm(sot) (((sot) & 0x40000000) ? u3_yes : u3_no)
# define u3_ch_slot_to_node(sot) (u3_co_into((sot) & 0x3fffffff))
# define u3_ch_node_to_slot(ptr) (u3_co_outa(ptr) | 0x40000000)
# define u3_ch_slot_to_node(sot) (u3_ca_into((sot) & 0x3fffffff))
# define u3_ch_node_to_slot(ptr) (u3_ca_outa(ptr) | 0x40000000)
# define u3_ch_slot_to_noun(sot) (0x40000000 | (sot))
# define u3_ch_noun_to_slot(som) (som)
# define u3_ch_noun_be_warm(sot) ((sot) | 0x40000000)

View File

@ -5,8 +5,8 @@
/** u3_cr_*: read without ever crashing.
**/
#if 1
# define u3_cr_du(a) u3_co_is_cell(a)
# define u3_cr_ud(a) u3_co_is_atom(a)
# define u3_cr_du(a) u3_ca_is_cell(a)
# define u3_cr_ud(a) u3_ca_is_atom(a)
#else
/* u3_cr_du(): u3_yes iff `a` is cell.
*/

View File

@ -5,8 +5,8 @@
/** u3_cx_*: read, but bail with c3__exit on a crash.
**/
#if 1
# define u3_cx_h(som) u3_co_h(som)
# define u3_cx_t(som) u3_co_t(som)
# define u3_cx_h(som) u3_ca_h(som)
# define u3_cx_t(som) u3_ca_t(som)
#else
/* u3_cx_h (u3h): head.
*/

View File

@ -11,7 +11,7 @@
u3_cqa_add(u3_atom a,
u3_atom b)
{
if ( u3_so(u3_co_is_cat(a)) && u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) && u3_so(u3_ca_is_cat(b)) ) {
c3_w c = a + b;
return u3_ci_words(1, &c);

View File

@ -20,7 +20,7 @@
return u3_cm_error("decrement-underflow");
}
else {
if ( u3_so(u3_co_is_cat(a)) ) {
if ( u3_so(u3_ca_is_cat(a)) ) {
return a - 1;
}
else {

View File

@ -15,7 +15,7 @@
return u3_cm_bail(c3__exit);
}
else {
if ( u3_so(u3_co_is_cat(a)) && u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) && u3_so(u3_ca_is_cat(b)) ) {
return a / b;
}
else {

View File

@ -10,7 +10,7 @@
u3_noun
u3_cqa_gte(u3_atom a, u3_atom b)
{
if ( u3_so(u3_co_is_cat(a)) && u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) && u3_so(u3_ca_is_cat(b)) ) {
return u3_say(a >= b);
}
else {

View File

@ -11,7 +11,7 @@
u3_cqa_gth(u3_atom a,
u3_atom b)
{
if ( u3_so(u3_co_is_cat(a)) && u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) && u3_so(u3_ca_is_cat(b)) ) {
return u3_say(a > b);
}
else {

View File

@ -10,7 +10,7 @@
u3_noun
u3_cqa_lte(u3_atom a, u3_atom b)
{
if ( u3_so(u3_co_is_cat(a)) && u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) && u3_so(u3_ca_is_cat(b)) ) {
return u3_say(a <= b);
}
else {

View File

@ -11,7 +11,7 @@
u3_cqa_lth(u3_atom a,
u3_atom b)
{
if ( u3_so(u3_co_is_cat(a)) && u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) && u3_so(u3_ca_is_cat(b)) ) {
return u3_say(a < b);
}
else {

View File

@ -11,7 +11,7 @@
u3_cqa_mul(u3_atom a,
u3_atom b)
{
if ( u3_so(u3_co_is_cat(a)) && u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) && u3_so(u3_ca_is_cat(b)) ) {
c3_d c = ((c3_d) a) * ((c3_d) b);
return u3_ci_chubs(1, &c);

View File

@ -10,7 +10,7 @@
u3_noun
u3_cqa_sub(u3_atom a, u3_atom b)
{
if ( u3_so(u3_co_is_cat(a)) && u3_so(u3_co_is_cat(b)) ) {
if ( u3_so(u3_ca_is_cat(a)) && u3_so(u3_ca_is_cat(b)) ) {
if ( a < b ) {
return u3_cm_error("subtract-underflow");
}

View File

@ -12,7 +12,7 @@
u3_atom a,
u3_noun b)
{
if ( u3_ne(u3_co_is_cat(a)) ) {
if ( u3_ne(u3_ca_is_cat(a)) ) {
return u3_cm_bail(c3__fail);
}
else {

View File

@ -10,7 +10,7 @@
u3_noun
u3_cqb_slag(u3_atom a, u3_noun b)
{
if ( u3_ne(u3_co_is_cat(a)) ) {
if ( u3_ne(u3_ca_is_cat(a)) ) {
return u3_cm_bail(c3__fail);
}
else {

View File

@ -11,7 +11,7 @@
u3_cqb_snag(u3_atom a,
u3_noun b)
{
if ( u3_ne(u3_co_is_cat(a)) ) {
if ( u3_ne(u3_ca_is_cat(a)) ) {
return u3_cm_bail(c3__fail);
}
else {

View File

@ -12,7 +12,7 @@
{
mpz_t a_mp;
if ( u3_ne(u3_co_is_cat(a)) ) {
if ( u3_ne(u3_ca_is_cat(a)) ) {
return u3_cm_bail(c3__fail);
}
else {

View File

@ -11,7 +11,7 @@
u3_cqc_can(u3_atom a,
u3_noun b)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
return u3_cm_bail(c3__fail);
}
else {
@ -35,7 +35,7 @@
if ( u3_no == u3du(i_cab) ) return u3_cm_bail(c3__fail);
pi_cab = u3h(i_cab);
qi_cab = u3t(i_cab);
if ( u3_no == u3_co_is_cat(pi_cab) ) return u3_cm_bail(c3__fail);
if ( u3_no == u3_ca_is_cat(pi_cab) ) return u3_cm_bail(c3__fail);
if ( u3_no == u3ud(qi_cab) ) return u3_cm_bail(c3__fail);
if ( (tot_w + pi_cab) < tot_w ) return u3_cm_bail(c3__fail);

View File

@ -12,7 +12,7 @@
u3_atom b,
u3_atom c)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
return u3_cm_bail(c3__fail);
}
else {

View File

@ -14,13 +14,13 @@
u3_atom c,
u3_atom d)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
return u3_cm_bail(c3__fail);
}
if ( u3_ne(u3_co_is_cat(b)) ) {
if ( u3_ne(u3_ca_is_cat(b)) ) {
return 0;
}
if ( u3_ne(u3_co_is_cat(c)) ) {
if ( u3_ne(u3_ca_is_cat(c)) ) {
c = 0x7fffffff;
}

View File

@ -13,10 +13,10 @@
u3_atom b,
u3_atom c)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
return u3_cm_bail(c3__fail);
}
else if ( u3_ne(u3_co_is_cat(b)) ) {
else if ( u3_ne(u3_ca_is_cat(b)) ) {
return u3k(c);
}
else {

View File

@ -10,10 +10,10 @@
u3_noun
u3_cqc_lsh(u3_atom a, u3_atom b, u3_atom c)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
return u3_cm_bail(c3__fail);
}
else if ( u3_ne(u3_co_is_cat(b)) ) {
else if ( u3_ne(u3_ca_is_cat(b)) ) {
return u3_cm_bail(c3__fail);
}
else {

View File

@ -12,7 +12,7 @@
u3_atom a,
u3_atom b)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
if ( 0 == b ) {
return 0;
} else return 1;
@ -20,7 +20,7 @@
else {
c3_w met_w = u3_cr_met(a, b);
if ( u3_ne(u3_co_is_cat(met_w)) ) {
if ( u3_ne(u3_ca_is_cat(met_w)) ) {
return u3_ci_words(1, &met_w);
}
else return u3_cr_met(a, b);

View File

@ -10,7 +10,7 @@
static u3_noun
_po_find(u3_noun buf, u3_noun a)
{
if ( u3_ne(u3_co_is_cat(a)) ) {
if ( u3_ne(u3_ca_is_cat(a)) ) {
return u3_nul;
}
else {

View File

@ -11,7 +11,7 @@
u3_cqc_rap(u3_atom a,
u3_noun b)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
return u3_cm_bail(c3__exit);
}
else {

View File

@ -11,7 +11,7 @@
u3_cqc_rip(u3_atom a,
u3_atom b)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
return u3_cm_bail(c3__fail);
}
else {

View File

@ -13,10 +13,10 @@
u3_atom b,
u3_atom c)
{
if ( u3_ne(u3_co_is_cat(a)) || (a >= 32) ) {
if ( u3_ne(u3_ca_is_cat(a)) || (a >= 32) ) {
return u3_cm_bail(c3__fail);
}
else if ( u3_ne(u3_co_is_cat(b)) ) {
else if ( u3_ne(u3_ca_is_cat(b)) ) {
return 0;
}
else {

View File

@ -44,8 +44,8 @@
u3_cx_cell(zyc, &p_zyc, &q_zyc);
u3_cx_cell(naz, &p_naz, &q_naz);
if ( u3_ne(u3_co_is_cat(p_zyc)) || u3_ne(u3_co_is_cat(q_zyc)) ||
u3_ne(u3_co_is_cat(p_naz)) || u3_ne(u3_co_is_cat(q_naz)) )
if ( u3_ne(u3_ca_is_cat(p_zyc)) || u3_ne(u3_ca_is_cat(q_zyc)) ||
u3_ne(u3_ca_is_cat(p_naz)) || u3_ne(u3_ca_is_cat(q_naz)) )
{
return u3_cm_bail(c3__fail);
} else {
@ -775,9 +775,9 @@
u3_noun iq_tub = u3h(q_tub);
u3_cx_cell(zep, &p_zep, &q_zep);
if ( u3_so(u3_co_is_cat(p_zep)) &&
u3_so(u3_co_is_cat(q_zep)) &&
u3_so(u3_co_is_cat(iq_tub)) )
if ( u3_so(u3_ca_is_cat(p_zep)) &&
u3_so(u3_ca_is_cat(q_zep)) &&
u3_so(u3_ca_is_cat(iq_tub)) )
{
if ( (iq_tub >= p_zep) && (iq_tub <= q_zep) ) {
return _next(tub);
@ -860,12 +860,12 @@
u3_noun ort,
u3_noun wan)
{
if ( u3_ne(u3_co_is_cat(ort)) ) {
if ( u3_ne(u3_ca_is_cat(ort)) ) {
return u3_cm_bail(c3__fail);
}
else {
if ( u3_no == u3du(wan) ) {
if ( u3_ne(u3_co_is_cat(wan)) ) {
if ( u3_ne(u3_ca_is_cat(wan)) ) {
return u3_cm_bail(c3__fail);
}
else return (ort < wan) ? u3_yes : u3_no;
@ -873,7 +873,7 @@
else {
u3_noun h_wan = u3h(wan);
if ( u3_ne(u3_co_is_cat(h_wan)) ) {
if ( u3_ne(u3_ca_is_cat(h_wan)) ) {
return u3_cm_bail(c3__fail);
}
else return (ort < h_wan) ? u3_yes : u3_no;
@ -895,7 +895,7 @@
else {
u3_noun iq_tub = u3h(q_tub);
if ( u3_ne(u3_co_is_cat(iq_tub)) ) {
if ( u3_ne(u3_ca_is_cat(iq_tub)) ) {
return u3_cm_bail(c3__fail);
}
else while ( 1 ) {
@ -917,8 +917,8 @@
u3_noun hpn_hel = u3h(pn_hel);
u3_noun tpn_hel = u3t(pn_hel);
if ( u3_ne(u3_co_is_cat(hpn_hel)) ||
u3_ne(u3_co_is_cat(tpn_hel)) ) {
if ( u3_ne(u3_ca_is_cat(hpn_hel)) ||
u3_ne(u3_ca_is_cat(tpn_hel)) ) {
return _fail(tub);
}
else bit_o = u3_say((iq_tub >= hpn_hel) && (iq_tub <= tpn_hel));

View File

@ -45,7 +45,7 @@
u3_cqe_shal(u3_atom a,
u3_atom b)
{
c3_assert(u3_so(u3_co_is_cat(a)));
c3_assert(u3_so(u3_ca_is_cat(a)));
c3_y* fat_y = c3_malloc(a + 1);
u3_cr_bytes(0, a, fat_y, b);
@ -104,7 +104,7 @@
if ( (u3_none == (a = u3_cr_at(u3_cv_sam_2, cor))) ||
(u3_none == (b = u3_cr_at(u3_cv_sam_3, cor))) ||
(u3_no == u3ud(a)) ||
(u3_no == u3_co_is_cat(a)) ||
(u3_no == u3_ca_is_cat(a)) ||
(u3_no == u3ud(b)) )
{
return u3_cm_bail(c3__exit);
@ -137,7 +137,7 @@
{
u3_noun l = u3_nul;
if ( u3_ne(u3_co_is_cat(b)) ) {
if ( u3_ne(u3_ca_is_cat(b)) ) {
return u3_cm_bail(c3__fail);
}
while ( 0 != b ) {

View File

@ -220,7 +220,7 @@ _cttp_octs_to_bod(u3_noun oct)
{
c3_w len_w;
if ( u3_ne(u3_co_is_cat(u3h(oct))) ) { // 2GB max
if ( u3_ne(u3_ca_is_cat(u3h(oct))) ) { // 2GB max
u3_cm_bail(c3__fail); return 0;
}
len_w = u3h(oct);

View File

@ -787,7 +787,7 @@ _http_octs_to_bod(u3_noun oct)
{
c3_w len_w;
if ( u3_ne(u3_co_is_cat(u3h(oct))) ) {
if ( u3_ne(u3_ca_is_cat(u3h(oct))) ) {
// 2GB max
u3_cm_bail(c3__fail); return 0;
}