mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-19 12:51:51 +03:00
Merge branch 'nobreach' into moretalk
This commit is contained in:
commit
29bd16a56a
3
Makefile
3
Makefile
@ -148,9 +148,12 @@ J_B_OFILES=\
|
||||
jets/b/lent.o \
|
||||
jets/b/levy.o \
|
||||
jets/b/lien.o \
|
||||
jets/b/murn.o \
|
||||
jets/b/need.o \
|
||||
jets/b/reap.o \
|
||||
jets/b/reel.o \
|
||||
jets/b/roll.o \
|
||||
jets/b/skid.o \
|
||||
jets/b/skim.o \
|
||||
jets/b/skip.o \
|
||||
jets/b/scag.o \
|
||||
|
59
README.md
59
README.md
@ -1,11 +1,15 @@
|
||||
urbit
|
||||
=====
|
||||
|
||||
urbit is a new programming and execution environment designed from
|
||||
scratch.
|
||||
Urbit is a new computing environment designed from scratch.
|
||||
|
||||
At present urbit is under heavy development. If you're interested in
|
||||
keeping in touch or following the project you can:
|
||||
At present urbit is under heavy development. It's not useful for
|
||||
any external purpose. Documentation is completely inadequate.
|
||||
Anyone can use the interpreter, of course, but the network is
|
||||
invitation-only.
|
||||
|
||||
If you're interested in keeping in touch or following the project
|
||||
you can:
|
||||
|
||||
- Enter your email address at [urbit.org](http://urbit.org).
|
||||
- Subscribe to the
|
||||
@ -14,22 +18,19 @@ keeping in touch or following the project you can:
|
||||
- Follow [@urbit_](https://twitter.com/urbit\_) on Twitter.
|
||||
- Get in touch with us via email, <urbit@urbit.org>
|
||||
|
||||
All of the source code is distributed under the MIT license, but is for
|
||||
all intents and purposes in the public domain.
|
||||
All of the source code is distributed under the MIT license.
|
||||
|
||||
Pacakges
|
||||
Packages
|
||||
--------
|
||||
|
||||
#### Ubuntu or Debian
|
||||
|
||||
Third-party pacakge files are maintained at https://github.com/yebyen/urbit-deb. Urbit is only supported on Jessie onward.
|
||||
Third-party package files are maintained at https://github.com/yebyen/urbit-deb. Urbit is only supported on Jessie onward.
|
||||
|
||||
#### OS X - Homebrew
|
||||
|
||||
brew install --HEAD homebrew/head-only/urbit
|
||||
|
||||
If this succeeds, proceed to the [Run section](#run). Otherwise, the build must be done manually:
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
urbit depends on:
|
||||
@ -95,27 +96,29 @@ Just run `make`:
|
||||
|
||||
(On FreeBSD, use `gmake` instead.)
|
||||
|
||||
Run <a id="run"/>
|
||||
Run (with a network invitation)
|
||||
---
|
||||
|
||||
Inside of the `urbit` directory run
|
||||
If you have a planet named `~fintud-macrep` and a ticket
|
||||
`~fortyv-tombyt-tabsen-sonres`, run
|
||||
|
||||
bin/urbit -c pier
|
||||
bin/urbit -w fintud-macrep -t fortyv-tombyt-tabsen-sonres
|
||||
|
||||
where `pier` is a directory that does not exist.
|
||||
Your pier (all Urbit state, log and checkpoint) will be in
|
||||
`./fintud-macrep`. To restart Urbit:
|
||||
|
||||
All your state (an append-only log and a memory checkpoint) will live in
|
||||
this directory. The name of your pier doesn't matter and is not visible
|
||||
internally.
|
||||
bin/urbit fintud-macrep
|
||||
|
||||
Begin
|
||||
-----
|
||||
Run (without a network invitation)
|
||||
---
|
||||
|
||||
To begin a 32-bit planet use
|
||||
Run
|
||||
|
||||
|begin
|
||||
bin/urbit -c mypier
|
||||
|
||||
which will guide you through the setup process.
|
||||
Urbit will create a comet in `mypier`. To restart:
|
||||
|
||||
bin/urbit mypier
|
||||
|
||||
Basics
|
||||
------
|
||||
@ -137,6 +140,8 @@ turned it off.
|
||||
Talk
|
||||
----
|
||||
|
||||
If you're on the network, you can use its most basic application, `talk`.
|
||||
|
||||
If `talk` is not running, start it with `*talk` from the task manager.
|
||||
|
||||
Use `^x` to switch to the `talk` prompt and then run
|
||||
@ -145,16 +150,12 @@ Use `^x` to switch to the `talk` prompt and then run
|
||||
|
||||
to join the `urbit-meta` channel. People in there are helpful.
|
||||
|
||||
There are four main `talk` commands:
|
||||
There are three main `talk` commands:
|
||||
|
||||
;join ~urbit-name/channel
|
||||
|
||||
`;join` subscribes your main feed to a remote channel.
|
||||
|
||||
;create channel %name 'description'
|
||||
|
||||
`;create` creates a channel on your urbit.
|
||||
|
||||
;<number>
|
||||
|
||||
`;<number>` activates a previous message number, like a URL that got
|
||||
@ -168,7 +169,7 @@ for a private message.
|
||||
Filesystem Sync
|
||||
---------------
|
||||
|
||||
Our filesystem, `%clay` does not automatically sync to unix. If you want
|
||||
Our filesystem, `%clay`, does not automatically sync to unix. If you want
|
||||
to get files in and out of urbit, you'll need to setup a mount point.
|
||||
Since each mount point is always watching for changes you may also want
|
||||
to unmount from time to time.
|
||||
@ -199,7 +200,7 @@ your urbit and:
|
||||
where pier is the name of your pier.
|
||||
|
||||
While the network is still young from time to time we reboot the entire
|
||||
thing. We call this a 'continuity breach' since we're breaking the
|
||||
universe. We call this a 'continuity breach' since we're breaking the
|
||||
continuity of our crypto.
|
||||
|
||||
When this happens you'll need to back up your data and start a fresh
|
||||
|
@ -25,9 +25,12 @@
|
||||
u3_noun u3qb_lent(u3_noun);
|
||||
u3_noun u3qb_levy(u3_noun, u3_noun);
|
||||
u3_noun u3qb_lien(u3_noun, u3_noun);
|
||||
u3_noun u3qb_murn(u3_noun, u3_noun);
|
||||
u3_noun u3qb_need(u3_noun);
|
||||
u3_noun u3qb_reap(u3_atom, u3_noun);
|
||||
u3_noun u3qb_reel(u3_noun, u3_noun);
|
||||
u3_noun u3qb_roll(u3_noun, u3_noun);
|
||||
u3_noun u3qb_skid(u3_noun, u3_noun);
|
||||
u3_noun u3qb_skim(u3_noun, u3_noun);
|
||||
u3_noun u3qb_skip(u3_noun, u3_noun);
|
||||
u3_noun u3qb_scag(u3_atom, u3_noun);
|
||||
|
@ -24,9 +24,12 @@
|
||||
u3_noun u3wb_lent(u3_noun);
|
||||
u3_noun u3wb_levy(u3_noun);
|
||||
u3_noun u3wb_lien(u3_noun);
|
||||
u3_noun u3wb_murn(u3_noun);
|
||||
u3_noun u3wb_need(u3_noun);
|
||||
u3_noun u3wb_reap(u3_noun);
|
||||
u3_noun u3wb_reel(u3_noun);
|
||||
u3_noun u3wb_roll(u3_noun);
|
||||
u3_noun u3wb_skid(u3_noun);
|
||||
u3_noun u3wb_skim(u3_noun);
|
||||
u3_noun u3wb_skip(u3_noun);
|
||||
u3_noun u3wb_scag(u3_noun);
|
||||
|
46
jets/b/murn.c
Normal file
46
jets/b/murn.c
Normal file
@ -0,0 +1,46 @@
|
||||
/* j/2/murn.c
|
||||
**
|
||||
*/
|
||||
#include "all.h"
|
||||
|
||||
|
||||
/* 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
u3_noun
|
||||
u3wb_murn(u3_noun cor)
|
||||
{
|
||||
u3_noun a, b;
|
||||
|
||||
if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) {
|
||||
return u3m_bail(c3__exit);
|
||||
} else {
|
||||
return u3qb_murn(a, b);
|
||||
}
|
||||
}
|
||||
|
41
jets/b/reap.c
Normal file
41
jets/b/reap.c
Normal file
@ -0,0 +1,41 @@
|
||||
/* j/2/reap.c
|
||||
**
|
||||
*/
|
||||
#include "all.h"
|
||||
|
||||
|
||||
/* functions
|
||||
*/
|
||||
u3_noun
|
||||
u3qb_reap(u3_atom a,
|
||||
u3_noun b)
|
||||
{
|
||||
if ( !_(u3a_is_cat(a)) ) {
|
||||
return u3m_bail(c3__fail);
|
||||
}
|
||||
else {
|
||||
u3_noun acc = u3_nul;
|
||||
c3_w i_w = a;
|
||||
|
||||
while ( i_w ) {
|
||||
acc = u3nc(b, acc);
|
||||
i_w--;
|
||||
}
|
||||
|
||||
return acc;
|
||||
}
|
||||
}
|
||||
|
||||
u3_noun
|
||||
u3wb_reap(u3_noun cor)
|
||||
{
|
||||
u3_noun a, b;
|
||||
|
||||
if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) ||
|
||||
(c3n == u3ud(a)) )
|
||||
{
|
||||
return u3m_bail(c3__exit);
|
||||
} else {
|
||||
return u3qb_reap(a, b);
|
||||
}
|
||||
}
|
44
jets/b/skid.c
Normal file
44
jets/b/skid.c
Normal file
@ -0,0 +1,44 @@
|
||||
/* j/2/skid.c
|
||||
**
|
||||
*/
|
||||
#include "all.h"
|
||||
|
||||
|
||||
/* 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)));
|
||||
|
||||
switch ( hoz ) {
|
||||
case c3y: acc = u3nc(u3nc(u3k(u3h(a)), u3h(acc)), u3t(acc));
|
||||
break;
|
||||
case c3n: acc = u3nc(u3h(acc), u3nc(u3k(u3h(a)), u3t(acc)));
|
||||
break;
|
||||
default: u3z(hoz);
|
||||
return u3m_bail(c3__exit);
|
||||
}
|
||||
u3z(hoz);
|
||||
return acc;
|
||||
}
|
||||
}
|
||||
u3_noun
|
||||
u3wb_skid(u3_noun cor)
|
||||
{
|
||||
u3_noun a, b;
|
||||
|
||||
if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) {
|
||||
return u3m_bail(c3__exit);
|
||||
} else {
|
||||
return u3qb_skid(a, b);
|
||||
}
|
||||
}
|
@ -21,9 +21,12 @@ static u3j_harm _mood__hoon_flop_a[] = {{".2", u3wb_flop, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_lent_a[] = {{".2", u3wb_lent, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_levy_a[] = {{".2", u3wb_levy, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_lien_a[] = {{".2", u3wb_lien, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_murn_a[] = {{".2", u3wb_murn, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_need_a[] = {{".2", u3wb_need, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_reap_a[] = {{".2", u3wb_reap, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_reel_a[] = {{".2", u3wb_reel, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_roll_a[] = {{".2", u3wb_roll, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_skid_a[] = {{".2", u3wb_skid, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_skim_a[] = {{".2", u3wb_skim, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_skip_a[] = {{".2", u3wb_skip, c3y}, {}};
|
||||
static u3j_harm _mood__hoon_scag_a[] = {{".2", u3wb_scag, c3y}, {}};
|
||||
@ -451,9 +454,12 @@ static u3j_core _mood__hoon_d[] =
|
||||
{ "lent", _mood__hoon_lent_a },
|
||||
{ "levy", _mood__hoon_levy_a },
|
||||
{ "lien", _mood__hoon_lien_a },
|
||||
{ "murn", _mood__hoon_murn_a },
|
||||
{ "need", _mood__hoon_need_a },
|
||||
{ "reap", _mood__hoon_reap_a },
|
||||
{ "reel", _mood__hoon_reel_a },
|
||||
{ "roll", _mood__hoon_roll_a },
|
||||
{ "skid", _mood__hoon_skid_a },
|
||||
{ "skim", _mood__hoon_skim_a },
|
||||
{ "skip", _mood__hoon_skip_a },
|
||||
{ "scag", _mood__hoon_scag_a },
|
||||
|
Loading…
Reference in New Issue
Block a user