u3_noun _cqfu_fire(u3_noun van, u3_noun sut, u3_noun hag) { u3_noun vet = u3r_at(u3qfu_van_vet, van); c3_assert(!"not live"); { if ( (c3y == u3du(hag)) && (u3_nul == u3t(hag)) ) { u3_noun i_hag = u3h(hag); u3_noun pi_hag = u3h(i_hag); u3_noun qi_hag = u3t(i_hag); if ( c3__elm == u3h(qi_hag) ) { u3_noun qqi_hag = u3t(qi_hag); if ( c3y == u3du(qqi_hag) && (u3_nul == u3h(qqi_hag)) && (1 == u3t(qqi_hag)) ) { return u3k(pi_hag); } } } } return u3nc(c3__hold, _fire_in(van, vet, hag)); }
/* glue */ u3_noun _cqe_glue_fun(u3_noun bus, u3_noun vex, u3_noun sab) { u3_noun p_vex, q_vex; u3x_cell(vex, &p_vex, &q_vex); if ( c3n == u3du(q_vex) ) { return u3k(vex); } else { u3_noun uq_vex = u3t(q_vex); u3_noun puq_vex, quq_vex; u3_noun yit, yur; u3_noun p_yit, q_yit; u3_noun ret; u3x_cell(uq_vex, &puq_vex, &quq_vex); yit = u3x_good(u3n_slam_on(u3k(bus), u3k(quq_vex))); u3x_cell(yit, &p_yit, &q_yit); yur = _last(p_vex, p_yit); if ( c3n == u3du(q_yit) ) { ret = u3nc(yur, u3_nul); } else { u3_noun uq_yit = u3t(q_yit); u3_noun puq_yit, quq_yit; u3_noun wam, p_wam, q_wam, goy; u3x_cell(uq_yit, &puq_yit, &quq_yit); wam = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_yit))); u3x_cell(wam, &p_wam, &q_wam); goy = _last(yur, p_wam); u3z(yur); if ( c3n == u3du(q_wam) ) { ret = u3nc(goy, u3_nul); } else { u3_noun uq_wam = u3t(q_wam); u3_noun puq_wam, quq_wam; u3x_cell(uq_wam, &puq_wam, &quq_wam); ret = u3nq(goy, u3_nul, u3nc(u3k(puq_vex), u3k(puq_wam)), u3k(quq_wam)); } u3z(wam); } u3z(yit); return ret; } }
/* _unix_sync_change(): sync single change to unix */ static void _unix_sync_change(u3_udir* dir_u, u3_noun pax, u3_noun mim) { c3_assert( c3y == dir_u->dir ); if ( c3n == u3du(pax) ) { if ( u3_nul == pax ) { uL(fprintf(uH,"can't sync out file as top-level, strange\r\n")); } else { uL(fprintf(uH,"sync out: bad path\r\n")); } u3z(pax); u3z(mim); return; } else if ( c3n == u3du(u3t(pax)) ) { uL(fprintf(uH,"can't sync out file as top-level, strangely\r\n")); u3z(pax); u3z(mim); } else { u3_noun i_pax = u3h(pax); u3_noun t_pax = u3t(pax); u3_noun it_pax = u3h(t_pax); u3_noun tt_pax = u3t(t_pax); if ( u3_nul == tt_pax ) { _unix_sync_file(dir_u, u3k(i_pax), u3k(it_pax), mim); } else { c3_c* nam_c = u3r_string(i_pax); c3_w pax_w = strlen(dir_u->pax_c); u3_unod* nod_u; for ( nod_u = dir_u->kid_u; ( nod_u && ( c3n == nod_u->dir || 0 != strcmp(nod_u->pax_c + pax_w + 1, nam_c) ) ); nod_u = nod_u->nex_u ) { } if ( !nod_u ) { nod_u = c3_malloc(sizeof(u3_udir)); _unix_create_dir((u3_udir*) nod_u, dir_u, u3k(i_pax)); } if ( c3n == nod_u->dir ) { uL(fprintf(uH, "weird, we got a file when we weren't expecting to\r\n")); c3_assert(0); } _unix_sync_change((u3_udir*) nod_u, u3k(t_pax), mim); } } u3z(pax); }
u3_noun _cqe_stew_fun(u3_noun hel, u3_noun tub) { u3_noun p_tub, q_tub; u3x_cell(tub, &p_tub, &q_tub); if ( c3n == u3du(q_tub) ) { return _fail(tub); } else { u3_noun iq_tub = u3h(q_tub); if ( !_(u3a_is_cat(iq_tub)) ) { return u3m_bail(c3__fail); } else while ( 1 ) { if ( c3n == u3du(hel) ) { return _fail(tub); } else { u3_noun n_hel, l_hel, r_hel; u3_noun pn_hel, qn_hel; c3_o bit_o; u3x_trel(hel, &n_hel, &l_hel, &r_hel); u3x_cell(n_hel, &pn_hel, &qn_hel); if ( (c3n == u3du(pn_hel)) ) { bit_o = __((iq_tub == pn_hel)); } else { u3_noun hpn_hel = u3h(pn_hel); u3_noun tpn_hel = u3t(pn_hel); if ( !_(u3a_is_cat(hpn_hel)) || !_(u3a_is_cat(tpn_hel)) ) { return _fail(tub); } else bit_o = __((iq_tub >= hpn_hel) && (iq_tub <= tpn_hel)); } if ( c3y == bit_o ) { return u3x_good (u3n_slam_on(u3k(qn_hel), u3k(tub))); } else { if ( c3y == _stew_wor(iq_tub, pn_hel) ) { hel = l_hel; } else hel = r_hel; } } } } }
/* bend */ u3_noun _cqe_bend_fun(u3_noun raq, u3_noun vex, u3_noun sab) { u3_noun p_vex, q_vex; u3x_cell(vex, &p_vex, &q_vex); if ( c3n == u3du(q_vex) ) { return u3k(vex); } else { u3_noun uq_vex = u3t(q_vex); u3_noun puq_vex, quq_vex; u3_noun yit, yur; u3_noun p_yit, q_yit; u3_noun ret; u3x_cell(uq_vex, &puq_vex, &quq_vex); yit = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_vex))); u3x_cell(yit, &p_yit, &q_yit); yur = _last(p_vex, p_yit); if ( c3n == u3du(q_yit) ) { ret = u3nc(yur, u3k(q_vex)); } else { u3_noun uq_yit = u3t(q_yit); u3_noun puq_yit, quq_yit; u3_noun vux; u3x_cell(uq_yit, &puq_yit, &quq_yit); vux = u3x_good(u3n_slam_on(u3k(raq), u3nc(u3k(puq_vex), u3k(puq_yit)))); if ( u3_nul == vux ) { ret = u3nc(yur, u3k(q_vex)); } else { ret = u3nq(yur, u3_nul, u3k(u3t(vux)), u3k(quq_yit)); u3z(vux); } } u3z(yit); return ret; } }
/* functions */ u3_noun u3qf_comb(u3_noun mal, u3_noun buz) { if ( (u3_none == mal) || (u3_none == buz) ) { return u3_none; } else { u3_noun p_mal, q_mal, p_buz, q_buz, pp_buz, pq_buz; if ( (c3y == u3r_p(mal, 0, &p_mal)) && (0 != p_mal) ) { if ( (c3y == u3r_p(buz, 0, &p_buz)) && (0 != p_buz) ) { return u3nc(0, u3qc_peg(p_mal, p_buz)); } else if ( c3y == u3r_pq(buz, 2, &p_buz, &q_buz) && c3y == u3r_p(p_buz, 0, &pp_buz) && c3y == u3r_p(q_buz, 0, &pq_buz) ) { return u3nt(2, u3nc(0, u3qc_peg(p_mal, pp_buz)), u3nc(0, u3qc_peg(p_mal, pq_buz))); } else return u3nt(7, u3k(mal), u3k(buz)); } #if 1 else if ( (c3y == u3r_bush(mal, &p_mal, &q_mal)) && (c3y == u3du(p_mal)) && (c3y == u3du(q_mal)) && (0 == u3h(q_mal)) && (1 == u3t(q_mal)) ) { return u3nt(8, u3k(p_mal), u3k(buz)); } #endif else if ( (c3y == u3r_p(buz, 0, &p_buz)) && (c3y == u3r_sing(1, p_buz)) ) { return u3k(mal); } else return u3nt(7, u3k(mal), u3k(buz)); } }
/* functions */ u3_noun u3qb_scag( u3_atom a, u3_noun b) { if ( !_(u3a_is_cat(a)) ) { return u3m_bail(c3__fail); } else { u3_noun acc; c3_w i_w = a; if ( !i_w ) return u3_nul; while ( i_w ) { if ( c3n == u3du(b) ) { return u3_nul; } acc = u3i_cell( u3h(b), acc ); b = u3t(b); i_w--; } return u3kb_flop(acc); } }
static u3_noun _play_edit(u3_noun van, u3_noun sut, u3_noun mew, u3_noun rag) { while ( 1 ) { if ( c3n == u3du(mew) ) { return rag; } else { u3_noun i_mew = u3h(mew); u3_noun t_mew = u3t(mew); u3_noun pi_mew = u3h(i_mew); u3_noun qi_mew = u3t(i_mew); u3_noun laf = _play_in(van, sut, qi_mew); u3_noun ruz = u3qfu_tock(van, sut, pi_mew, laf, rag); u3z(laf); u3z(rag); rag = u3k(u3t(ruz)); u3z(ruz); mew = t_mew; } } }
/* stag */ u3_noun _cqe_stag_fun(u3_noun gob, u3_noun sef, u3_noun tub) { u3_noun vex = u3x_good(u3n_slam_on(u3k(sef), u3k(tub))); u3_noun p_vex, q_vex; u3x_cell(vex, &p_vex, &q_vex); if ( c3n == u3du(q_vex) ) { return vex; } else { u3_noun uq_vex = u3t(q_vex); u3_noun puq_vex, quq_vex; u3_noun wag; u3_noun ret; u3x_cell(uq_vex, &puq_vex, &quq_vex); wag = u3nc(u3k(gob), u3k(puq_vex)); ret = u3nq(u3k(p_vex), u3_nul, wag, u3k(quq_vex)); u3z(vex); return ret; } }
/* shim */ u3_noun _cqe_shim_fun(u3_noun zep, u3_noun tub) { u3_noun p_tub, q_tub; u3x_cell(tub, &p_tub, &q_tub); if ( c3n == u3du(q_tub) ) { return _fail(tub); } else { u3_noun p_zep, q_zep; u3_noun iq_tub = u3h(q_tub); u3x_cell(zep, &p_zep, &q_zep); if ( _(u3a_is_cat(p_zep)) && _(u3a_is_cat(q_zep)) && _(u3a_is_cat(iq_tub)) ) { if ( (iq_tub >= p_zep) && (iq_tub <= q_zep) ) { return _next(tub); } else return _fail(tub); } else { return u3m_bail(c3__fail); } } }
/* pfix */ u3_noun _cqe_pfix(u3_noun vex, u3_noun sab) { u3_noun p_vex, q_vex; u3x_cell(vex, &p_vex, &q_vex); if ( c3n == u3du(q_vex) ) { return u3k(vex); } else { u3_noun uq_vex = u3t(q_vex); u3_noun puq_vex, quq_vex; u3_noun yit, p_yit, q_yit; u3_noun ret; u3x_cell(uq_vex, &puq_vex, &quq_vex); yit = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_vex))); u3x_cell(yit, &p_yit, &q_yit); ret = u3nc(_last(p_vex, p_yit), u3k(q_yit)); u3z(yit); return ret; } }
/* cold */ u3_noun _cqe_cold_fun(u3_noun cus, u3_noun sef, u3_noun tub) { u3_noun vex = u3x_good(u3n_slam_on(u3k(sef), u3k(tub))); u3_noun p_vex, q_vex; u3x_cell(vex, &p_vex, &q_vex); if ( c3n == u3du(q_vex) ) { return vex; } else { u3_noun uq_vex = u3t(q_vex); u3_noun quq_vex; u3_noun ret; u3x_cell(uq_vex, 0, &quq_vex); ret = u3nq(u3k(p_vex), u3_nul, u3k(cus), u3k(quq_vex)); u3z(vex); return ret; } }
/* functions */ u3_noun u3qdi_gas(u3_noun a, u3_noun b) { if ( u3_nul == b ) { return u3k(a); } else { if ( c3n == u3du(b) ) { return u3m_bail(c3__exit); } else { u3_noun i_b = u3h(b); u3_noun t_b = u3t(b); u3_noun c; if ( u3_none == (c = u3qdi_put(a, i_b)) ) { return u3m_bail(c3__exit); } else { u3_noun d = u3qdi_gas(c, t_b); u3z(c); return d; } } } }
static u3_noun _skid_in(u3j_site* sit_u, u3_noun a) { if ( 0 == a ) { return u3nc(u3_nul, u3_nul); } else if ( c3n == u3du(a) ) { return u3m_bail(c3__exit); } else { u3_noun acc = _skid_in(sit_u, u3t(a)); u3_noun hoz = u3j_gate_slam(sit_u, u3k(u3h(a))); u3_noun nex; if ( c3y == hoz ) { nex = u3nc(u3nc(u3k(u3h(a)), u3k(u3h(acc))), u3k(u3t(acc))); } else { nex = u3nc(u3k(u3h(acc)), u3nc(u3k(u3h(a)), u3k(u3t(acc)))); } u3z(hoz); u3z(acc); return nex; } }
/* u3_temp_io_poll(): update temp IO state. */ void u3_temp_io_poll(void) { u3_temp* teh_u = &u3_Host.teh_u; u3_noun wen = u3v_keep(u3nt(u3_blip, c3__temp, u3_nul)); if ( (u3_nul != wen) && (c3y == u3du(wen)) && (c3y == u3ud(u3t(wen))) ) { c3_d gap_d = u3_time_gap_ms(u3k(u3A->now), u3k(u3t(wen))); #if 0 fprintf(stderr, "gap_d %llu, plus %llu\r\n", gap_d, gap_d + (c3_d)teh_u->run_w); #endif gap_d += teh_u->run_w; if ( c3y == teh_u->alm ) { uv_timer_stop(&teh_u->tim_u); } else teh_u->alm = c3y; uv_timer_start(&teh_u->tim_u, _temp_time_cb, gap_d, 0); } else { if ( c3y == teh_u->alm ) { uv_timer_stop(&teh_u->tim_u); } teh_u->alm = c3n; } u3z(wen); }
/* functions */ u3_noun u3qb_skid(u3_noun a, u3_noun b) { if ( 0 == a ) { return u3nc(u3_nul, u3_nul); } else if ( c3n == u3du(a) ) { return u3m_bail(c3__exit); } else { u3_noun acc = u3qb_skid(u3t(a), b); u3_noun hoz = u3n_slam_on(u3k(b), u3k(u3h(a))); u3_noun nex; if ( c3y == hoz ) { nex = u3nc(u3nc(u3k(u3h(a)), u3k(u3h(acc))), u3k(u3t(acc))); } else { nex = u3nc(u3k(u3h(acc)), u3nc(u3k(u3h(a)), u3k(u3t(acc)))); } u3z(hoz); u3z(acc); return nex; } }
/* functions */ u3_noun u3qb_roll(u3_noun a, u3_noun b) { if ( 0 == a ) { return u3k(u3r_at(u3x_sam_3, b)); } else if ( c3n == u3du(a) ) { return u3m_bail(c3__exit); } else { u3_noun gim = u3k(u3h(a)); u3_noun zor = u3k(u3r_at(u3x_sam_3, b)); u3_noun daz = u3n_slam_on(u3k(b), u3nc(gim, zor)); u3_noun vel = u3i_molt(u3k(b), u3x_sam_3, daz, 0); if ( u3_none == vel ) { return u3m_bail(c3__exit); } else { u3_noun hox = u3qb_roll(u3t(a), vel); u3z(vel); return hox; } } }
/* functions */ u3_noun u3qb_murn(u3_noun a, u3_noun b) { if ( 0 == a ) { return a; } else if ( c3n == u3du(a) ) { return u3m_bail(c3__exit); } else { u3_noun one = u3n_slam_on(u3k(b), u3k(u3h(a))); u3_noun two = u3qb_murn(u3t(a), b); u3_noun nex; switch ( u3ud(one) ) { case c3y: u3z(one); return two; case c3n: nex = u3nc(u3k(u3t(one)), two); u3z(one); return nex; default: u3z(one); u3z(two); return u3_none; } } }
static u3_noun _listp(u3_noun lix) { while ( 1 ) { if ( u3_nul == lix ) return c3y; if ( c3n == u3du(lix) ) return c3n; lix = u3t(lix); } }
/* stir */ u3_noun _cqe_stir_fun(u3_noun rud, u3_noun raq, u3_noun fel, u3_noun tub) { u3_noun vex = u3x_good(u3n_slam_on(u3k(fel), u3k(tub))); u3_noun p_vex, q_vex; u3_noun ret; u3x_cell(vex, &p_vex, &q_vex); if ( c3n == u3du(q_vex) ) { ret = u3nq(u3k(p_vex), u3_nul, u3k(rud), u3k(tub)); } else { u3_noun uq_vex = u3t(q_vex); u3_noun puq_vex, quq_vex; u3_noun wag, p_wag, q_wag, uq_wag, puq_wag, quq_wag; u3x_cell(uq_vex, &puq_vex, &quq_vex); wag = _cqe_stir_fun(rud, raq, fel, quq_vex); u3x_cell(wag, &p_wag, &q_wag); if ( c3n == u3du(q_wag) ) { return u3m_bail(c3__fail); } uq_wag = u3t(q_wag); u3x_cell(uq_wag, &puq_wag, &quq_wag); ret = u3nq(_last(p_vex, p_wag), u3_nul, u3x_good(u3n_slam_on(u3k(raq), u3nc(u3k(puq_vex), u3k(puq_wag)))), u3k(quq_wag)); u3z(wag); } u3z(vex); return ret; }
/* logic */ u3_noun u3qfu_repo( u3_noun van, u3_noun sut) { u3_noun p_sut, q_sut; if ( c3n == u3du(sut) ) switch ( sut ) { default: return u3k(sut); case c3__noun: return u3nt(c3__fork, u3nc(c3__atom, u3_blip), u3nt(c3__cell, c3__noun, c3__noun)); } else switch ( u3h(sut) ) { default: { return u3m_error("repo-flat"); } case c3__bull: { if ( c3n == u3r_cell(u3t(sut), &p_sut, &q_sut)) { return u3m_bail(c3__fail); } else { return u3k(q_sut); } } case c3__core: { if ( c3n == u3r_cell(u3t(sut), &p_sut, &q_sut) ) { return u3m_bail(c3__fail); } else { return u3nt(c3__cell, c3__noun, u3k(p_sut)); } } case c3__cube: { if ( c3n == u3r_cell(u3t(sut), &p_sut, &q_sut)) { return u3m_bail(c3__fail); } else { return u3k(q_sut); } } case c3__face: { if ( c3n == u3r_cell(u3t(sut), &p_sut, &q_sut)) { return u3m_bail(c3__fail); } else { return u3k(q_sut); } } case c3__hold: { p_sut = u3t(sut); return u3qfu_rest(van, sut, p_sut); } } }
/* u3_unix_ef_hill(): enumerate mount points */ void u3_unix_ef_hill(u3_noun hil) { u3_noun mon; for ( mon = hil; c3y == u3du(mon); mon = u3t(mon) ) { u3_umon* mon_u = _unix_get_mount_point(u3k(u3h(mon))); _unix_scan_mount_point(mon_u); } u3z(hil); u3_Host.unx_u.dyr = c3y; u3_unix_ef_look(c3y); }
static u3_noun _mint_bake( u3_noun van, u3_noun sut, u3_noun dab) { if ( (u3_nul == dab) ) { return 0; } else { u3_noun n_dab, l_dab, r_dab; u3r_trel(dab, &n_dab, &l_dab, &r_dab); if ( c3n == u3du(n_dab) ) { return u3m_bail(c3__fail); } else { u3_noun qn_dab = u3t(n_dab); u3_noun vad; switch ( u3h(qn_dab) ) { default: return u3m_bail(c3__exit); case c3__ash: { vad = _mint_brew(van, sut, c3y, u3t(qn_dab)); break; } case c3__elm: { vad = _mint_brew(van, sut, c3n, u3t(qn_dab)); break; } } if ( (u3_nul == l_dab) && (u3_nul == r_dab) ) { return vad; } else if ( (u3_nul == l_dab) ) { return u3nc (vad, _mint_bake(van, sut, r_dab)); } else if ( (u3_nul == r_dab) ) { return u3nc (vad, _mint_bake(van, sut, l_dab)); } else { return u3nt (vad, _mint_bake(van, sut, l_dab), _mint_bake(van, sut, r_dab)); } } } }
/* functions */ u3_noun u3qb_snag(u3_atom a, u3_noun b) { if ( !_(u3a_is_cat(a)) ) { return u3m_bail(c3__fail); } else { c3_w len_w = a; while ( len_w ) { if ( c3n == u3du(b) ) { return u3m_bail(c3__exit); } b = u3t(b); len_w--; } if ( c3n == u3du(b) ) { return u3m_bail(c3__exit); } return u3k(u3h(b)); } }
/* mask */ u3_noun _cqe_mask_fun(u3_noun bud, u3_noun tub) { u3_noun p_tub, q_tub; u3x_cell(tub, &p_tub, &q_tub); if ( c3n == u3du(q_tub) ) { return _fail(tub); } else { u3_noun iq_tub = u3h(q_tub); while ( c3y == u3du(bud) ) { if ( c3y == u3r_sing(u3h(bud), iq_tub) ) { return _next(tub); } bud = u3t(bud); } return _fail(tub); } }
/* functions */ u3_noun u3qb_weld(u3_noun a, u3_noun b) { if ( 0 == a ) { return u3k(b); } else if ( c3n == u3du(a) ) { return u3m_bail(c3__exit); } else { return u3nc(u3k(u3h(a)), u3qb_weld(u3t(a), b)); } }
u3_noun u3we_slot(u3_noun cor) { u3_noun axe, vax; if ( (c3n == u3r_mean(cor, u3x_sam_2, &axe, u3x_sam_3, &vax, 0)) || (c3n == u3ud(axe)) || (c3n == u3du(vax)) ) { return u3m_bail(c3__fail); } else { return u3qf_slot(axe, vax); } }
u3_noun u3wcp_ind(u3_noun cor) { u3_noun x, a, buf; if ( (c3n == u3r_mean(cor, u3x_sam, &a, u3x_con_sam, &x, 0)) || (c3n == u3du(x)) || (c3n == u3ud(buf = u3t(x))) || (c3n == u3ud(a)) ) { return u3m_bail(c3__exit); } else { return _po_find(buf, a); } }
/* _n_mush_in(): see _n_mush(). */ static u3_noun _n_mush_in(u3_noun val) { if ( c3n == u3du(val) ) { return u3_nul; } else { u3_noun h_val = u3h(val); u3_noun ite; if ( c3n == u3ud(h_val) ) { ite = u3nc(c3__leaf, u3_nul); } else { ite = u3nc(c3__leaf, u3qe_trip(h_val)); } return u3nc(ite, _n_mush_in(u3t(val))); } }
static u3_noun _sgcn_a(u3_noun r_gen, u3_noun nob) { if ( c3n == u3du(r_gen) ) { return u3k(nob); } else { u3_noun ir_gen = u3h(r_gen); u3_noun tr_gen = u3t(r_gen); u3_noun pir_gen, qir_gen; u3x_cell(ir_gen, &pir_gen, &qir_gen); return u3nc(u3nc(u3nt(c3__dtzz, u3_blip, u3k(pir_gen)), u3nc(c3__zpts, u3k(qir_gen))), _sgcn_a(tr_gen, nob)); } }