An operating function (Prototype)
Go to file
2015-07-14 11:57:02 -07:00
.d descriptive names for c files 2015-06-23 21:29:11 -04:00
debian debian build deps 2015-06-23 15:11:28 -04:00
extras Change copyright owner to "Urbit" 2015-06-12 01:19:54 -04:00
include set difference jets 2015-07-02 01:25:13 -04:00
jets whoops, left in deliberate memory leaks... 2015-07-02 12:52:26 -04:00
noun Abort for oops or foul. 2015-07-14 11:57:02 -07:00
outside Port to FreeBSD 2015-06-18 20:52:38 -07:00
Spec Update some jet stuff, and docs 2014-11-28 12:29:10 -08:00
tests descriptive names for c files 2015-06-23 21:29:11 -04:00
vere Rename %time to %behn, tym to now; closes #334 2015-06-24 12:50:30 -07:00
.gitattributes Treat urbit.pill as binary 2014-04-08 17:29:33 -07:00
.gitignore updated .gitignore 2015-06-17 14:09:34 -07:00
.travis.yml Support for GCC and CLANG 2014-03-07 13:56:16 -05:00
LICENSE.txt MIT LICENSE 2015-02-10 12:19:37 -08:00
Makefile set difference jets 2015-07-02 01:25:13 -04:00
README.markdown Merge branch 'newunix' 2015-06-19 17:03:42 -04:00

urbit

urbit is a new programming and execution 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:

All of the source code is distributed under the MIT license, but is for all intents and purposes in the public domain.

Install

urbit depends on:

gcc
gmp
libsigsegv
openssl
automake
autoconf
ragel
cmake
re2c
libtool
libssl-dev (Linux only)
ncurses (Linux only)

Ubuntu or Debian

sudo apt-get install libgmp3-dev libsigsegv-dev openssl libssl-dev libncurses5-dev git make exuberant-ctags automake autoconf libtool g++ ragel cmake re2c

note: http requests are not supported on either debian wheezy or jessie due to an ssl issue

Fedora

sudo dnf install gcc gcc-c++ git gmp-devel openssl-devel openssl ncurses-devel libsigsegv-devel ctags automake autoconf libtool ragel cmake re2c

AWS

sudo yum --enablerepo epel install gcc gcc-c++ git gmp-devel openssl-devel ncurses-devel libsigsegv-devel ctags automake autoconf libtool cmake re2c

OS X - Homebrew

brew install git gmp libsigsegv openssl libtool autoconf automake cmake

OS X - Macports

sudo port install git gmp libsigsegv openssl autoconf automake cmake

FreeBSD

pkg install git gmake gmp libsigsegv openssl automake autoconf ragel cmake re2c libtool

Although automake/autoconf/libtool are generally installed by default, some have reported needing to uninstall and reinstall those three packages, at least with Homebrew. Your mileage may vary.

Build

Clone the repo:

git clone git://github.com/urbit/urbit.git

cd to the directory you just created:

cd urbit

Just run make:

make

(On FreeBSD, use gmake instead.)

Run

Inside of the urbit directory run

bin/urbit -c pier

where pier is a directory that does not exist.

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.

Begin

To begin a 32-bit planet use

:?begin

which will guide you through the setup process.

Basics

^v will switch between the task manager and the focussed process. ^x will switch between processes.

To start a process that is not yet started, run *proc from the task manager.

To connect your console to a process that has already been started, run +proc from the task manager. Note that the process must be one that supports console access, such as dojo and talk.

^d will exit the pier from the task manager. No matter how you shut your urbit down you'll be returned to exactly the same state as when you turned it off.

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

;join ~doznec/urbit-meta

to join the urbit-meta channel. People in there are helpful.

There are four 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 clipped.

;<target>

;<target> sets the target for your messages, such as ;~urbit-name for a private message.

Sysadmin

For the most part, updates to the system are automatically synced to your urbit across the network.

When we make updates to the interpreter you should be able to shut down your urbit and:

git pull origin master
make
bin/urbit pier

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 continuity of our crypto.

When this happens you'll need to back up your data and start a fresh pier. Your original ticket will still work.

Contributing

If you're interested in contributing to urbit development come and :talk with us. We'll help you get oriented and up to speed.