static u3_noun _play_bean(void) { return u3nt(c3__fork, u3nq(c3__cube, 0, c3__atom, 'f'), u3nq(c3__cube, 1, c3__atom, 'f')); }
static u3_noun _play_bean() { return u3kf_fork(u3nt(u3nq(c3__atom, 'f', u3_nul, 0), u3nq(c3__atom, 'f', u3_nul, 1), u3_nul)); }
/* u3_sist_boot(): restore or create. */ void u3_sist_boot(void) { // uL(fprintf(uH, "sist: booting\n")); if ( c3y == u3_Host.ops_u.nuu ) { u3_noun pig = u3_none; if ( 0 == u3_Host.ops_u.imp_c ) { c3_c get_c[2049]; snprintf(get_c, 2048, "%s/.urb/get", u3_Host.dir_c); if ( 0 == access(get_c, 0) ) { uL(fprintf(uH, "pier: already built\n")); u3_lo_bail(); } u3_noun ten = _sist_zen(); uL(fprintf(uH, "generating 2048-bit RSA pair...\n")); pig = u3nq(c3__make, u3_nul, 11, u3nc(ten, u3_Host.ops_u.fak)); } else { u3_noun imp = u3i_string(u3_Host.ops_u.imp_c); u3_noun whu = u3dc("slaw", 'p', u3k(imp)); if ( (u3_nul == whu) ) { fprintf(stderr, "czar: incorrect format\r\n"); u3_lo_bail(); } else { u3_noun gen = u3_nul; u3_noun gun = u3_nul; if (c3n == u3_Host.ops_u.fak) { gen = _sist_text("generator"); gun = u3dc("slaw", c3__uw, gen); if ( u3_nul == gun ) { fprintf(stderr, "czar: incorrect format\r\n"); u3_lo_bail(); } } else { gun = u3nc(u3_nul, u3_nul); } pig = u3nq(c3__sith, u3k(u3t(whu)), u3k(u3t(gun)), u3_Host.ops_u.fak); u3z(whu); u3z(gun); } u3z(imp); } _sist_make(pig); } else { _sist_rest(); } }
void u3_unix_ef_initial_into() { c3_c* pax_c = _unix_down(U3_LIB, "arvo"); u3_noun can = _unix_initial_update_dir(pax_c); free(pax_c); u3v_plan(u3nq(u3_blip, c3__sync, u3k(u3A->sen), u3_nul), u3nq(c3__into, u3_nul, c3y, can)); }
/* _unix_update_mount(): update mount point */ static void _unix_update_mount(u3_umon* mon_u, u3_noun all) { if ( c3n == mon_u->dir_u.dry ) { u3_noun can = u3_nul; u3_unod* nod_u; for ( nod_u = mon_u->dir_u.kid_u; nod_u; nod_u = nod_u->nex_u ) { can = u3kb_weld(_unix_update_node(nod_u), can); } u3v_plan(u3nq(u3_blip, c3__sync, u3k(u3A->sen), u3_nul), u3nq(c3__into, u3i_string(mon_u->nam_c), all, can)); } }
/* 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; } }
/* u3_term_ef_ctlc(): send ^C on console. */ void u3_term_ef_ctlc(void) { u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); u3v_plan(pax, u3nt(c3__belt, c3__ctl, 'c')); }
/* functions */ u3_noun u3qf_flan(u3_noun bos, u3_noun nif) { if ( c3y == u3r_sing(1, u3h(bos)) ) { if ( (u3_nul == u3t(bos)) ) { return u3k(nif); } else return u3k(bos); } else { if ( c3y == u3r_sing(1, u3h(nif)) ) { if ( (u3_nul == u3t(nif)) ) { return u3k(bos); } else return u3k(nif); } else { return u3nq(6, u3k(bos), u3k(nif), u3nc(1, c3n)); } } }
/* 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; } }
/* _term_close_cb(): free terminal. */ static void _term_close_cb(uv_handle_t* han_t) { u3_utty* tty_u = (void*) han_t; if ( u3_Host.uty_u == tty_u ) { u3_Host.uty_u = tty_u->nex_u; } else { u3_utty* uty_u; for (uty_u = u3_Host.uty_u; uty_u; uty_u = uty_u->nex_u ) { if ( uty_u->nex_u == tty_u ) { uty_u->nex_u = tty_u->nex_u; break; } } } { u3_noun tid = u3dc("scot", c3__ud, tty_u->tid_l); u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); u3v_plan(u3k(pax), u3nc(c3__hook, u3_nul)); u3z(pax); } free(tty_u); }
/* u3_term_ef_winc(): window change. Just console right now. */ void u3_term_ef_winc(void) { u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); u3v_plan(pax, u3nc(c3__blew, u3_term_get_blew(1))); }
void u3_http_ef_bake(void) { u3_noun pax = u3nq(u3_blip, c3__http, u3k(u3A->sen), u3_nul); u3v_plan(pax, u3nc(c3__born, u3_nul)); }
/* u3_term_ef_verb(): initial effects for verbose events */ void u3_term_ef_verb(void) { u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); u3v_plan(pax, u3nc(c3__verb, u3_nul)); }
/* _term_io_belt(): send belt. */ static void _term_io_belt(u3_utty* uty_u, u3_noun blb) { u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); u3v_plan(pax, u3nc(c3__belt, blb)); }
/* 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; } }
static u3_noun _play_rock(u3_noun odo, u3_noun bob) { if ( c3y == u3ud(bob) ) { return u3nq(c3__atom, u3k(odo), u3_nul, u3k(bob)); } else return u3nt(c3__cell, _play_rock(odo, u3h(bob)), _play_rock(odo, u3t(bob))); }
u3_noun u3z_save_3(c3_m fun, u3_noun one, u3_noun two, u3_noun tri, u3_noun val) { u3_noun key = u3nq(fun, u3k(one), u3k(two), u3k(tri)); u3h_put(u3R->cax.har_p, key, u3k(val)); u3z(key); return val; }
/* 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; }
u3_weak u3z_find_4(c3_m fun, u3_noun one, u3_noun two, u3_noun tri, u3_noun qua) { u3_noun key = u3nc(fun, u3nq(u3k(one), u3k(two), u3k(tri), u3k(qua))); u3_noun val; val = u3h_get(u3R->cax.har_p, key); u3z(key); return val; }
/* u3_term_ef_bake(): initial effects for new terminal. */ void u3_term_ef_bake(u3_noun fav) { u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); u3v_plan(u3k(pax), u3nc(c3__boot, fav)); u3v_plan(u3k(pax), u3nc(c3__blew, u3_term_get_blew(1))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); u3z(pax); }
/* _http_pox_to_noun(): translate srv/con/req to path noun (pox). */ static u3_noun _http_pox_to_noun(c3_w sev_l, c3_w coq_l, c3_w seq_l) { return u3nt( u3_blip, c3__http, u3nq(u3dc("scot", c3_s2('u','v'), sev_l), u3dc("scot", c3_s2('u','d'), coq_l), u3dc("scot", c3_s2('u','d'), seq_l), u3_nul)); }
/* easy */ u3_noun _cqe_easy_fun(u3_noun huf, u3_noun tub) { u3_noun p_tub, q_tub; u3x_cell(tub, &p_tub, &q_tub); return u3nq(u3k(p_tub), u3_nul, u3k(huf), u3k(tub)); }
/* 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; } }
/* u3_term_ef_boil(): initial effects for loaded servers. */ void u3_term_ef_boil(void) { { u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); // u3v_plan(u3k(pax), u3nc(c3__init, u3k(u3h(u3A->own)))); u3v_plan(u3k(pax), u3nc(c3__harm, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__blew, u3_term_get_blew(1))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); u3z(pax); } }
/* functions */ u3_noun u3qf_fine( u3_noun fuv, u3_noun lup, u3_noun mar) { if ( (c3__void == lup) || (c3__void == mar) ) { return c3__void; } else { return u3nq(c3__fine, u3k(fuv), u3k(lup), u3k(mar)); } }
static u3_noun _play_grow(u3_noun van, u3_noun sut, u3_atom mel, u3_noun ruf, u3_noun wan, u3_noun dom) { u3_noun dan = _play_in(van, sut, ruf); return _play_core(dan, u3nq(u3k(mel), u3k(dan), u3k(wan), u3nc(u3nc(u3_nul, u3_nul), u3k(dom)))); }
/* _http_request(): dispatch http request, returning null if async. */ static void _http_request(u3_hreq* req_u) { u3_noun req = _http_request_to_noun(req_u); if ( u3_none != req ) { u3_noun pox = _http_pox_to_noun(req_u->hon_u->htp_u->sev_l, req_u->hon_u->coq_l, req_u->seq_l); u3v_plan(pox, u3nq(c3__this, req_u->hon_u->htp_u->sec, u3nc(c3y, u3i_words(1, &req_u->ipf_w)), req)); } }
/* _http_request_to_noun(): translate http request into noun, or u3_none. */ static u3_noun _http_request_to_noun(u3_hreq* req_u) { u3_noun med, url, hed, bod; switch ( req_u->met_e ) { default: fprintf(stderr, "strange request\r\n"); return u3_none; case u3_hmet_put: { med = c3__put; break; } case u3_hmet_get: { med = c3__get; break; } case u3_hmet_head: { med = c3__head; break; } case u3_hmet_post: { med = c3__post; break; } } url = u3i_string(req_u->url_c); hed = _http_heds_to_list(req_u->hed_u); bod = req_u->bod_u ? u3nc(u3_nul, _http_bods_to_octs(req_u->bod_u)) : u3_nul; return u3nq(med, url, hed, bod); }
static u3_noun _smcl_in(u3_noun q_gen) { u3_noun hq_gen = u3h(q_gen); u3_noun tq_gen = u3t(q_gen); if ( c3n == u3du(tq_gen) ) { return u3nt(c3__tsgr, u3nc(u3_nul, 3), u3k(hq_gen)); } else { return u3nc(c3__cnhp, u3nq(u3nc(u3_nul, 2), u3nt(c3__tsgr, u3nc(u3_nul, 3), u3k(hq_gen)), _smcl_in(tq_gen), u3_nul)); } }
/* functions */ u3_noun u3qf_flip( u3_noun hel) { if ( c3y == u3r_sing(1, u3h(hel)) ) { if ( (c3y == u3t(hel)) ) { return u3nc(1, c3n); } else { c3_assert((c3n == u3t(hel))); return u3nc(1, c3y); } } else { return u3nq (6, u3k(hel), u3nc(1, c3n), u3nc(1, c3y)); } }