An operating function
Go to file
Joe Bryan 2e57625e26 Merge tag 'urbit-v1.13' into jb/restage/pread-all
urbit-v1.13

Arvo 417K
Vere 1.13

This release makes the loom variably sized, up to a new maximum of 4GB.
The default remains 2GB -- opt for the max with `--loom 32`.
(NB: larger sizes may require adding swap space.)

Release Notes

- supports setting the loom size on startup. sizes are specified in
  exponents of 2, from 1MB (20) to 4GB (32); can differ between processes
  (`--loom` and `--urth-loom`); and can be set for relevant subcommands
  (`meld`, `pack`, `next`, &c).

- improves bit-slice performance (for noun de/serialization and many atom jets)
  by ensuring that implementation inner loops can be vectorized.

- adds the `vile` command, for exporting the keyfile from a ship

- adds the `%xray` hint, for printing the bytecode of a given expression
  (ty ~topfet-parmed!)

- adds the `eval` command, for running hoon (from stdin) without booting a ship
  (ty ~mopfel-winrux!)

- adds a better error message when a ship is already running as root
  (ty ~dinleb-rambep!)

Contributions:

Joe Bryan (48):
      u3: use size_t in u3m_init()
      u3: normalize home-road stack after snapshot restoration
      u3: refactors custom allocator init for libraries
      bump
      vere: make `prep` and `next` commands non-interactive (no tty required)
      Merge pull request #5928 from urbit/jb/upgrade-no-tty
      u3: remove references to u3a_bits/u3a_bytes/words/pages
      u3: makes loom length configurable
      u3: improves image-related error messages in events
      Merge branch 'master' into next/vere
      u3: suppress bail:evil printf
      Merge pull request #5959 from urbit/jb/silence-evil
      ur: optimizes bitstream bytes-writer implementation
      ur: optimizes bitstream bytes-reader implementation
      Revert "test: move _test_lily into noun_tests"
      u3: rewrites u3r_chop(), optimizing bloq sizes < 5
      u3: removes loom byte-length in favor of recalculation
      Merge pull request #5957 from mopfel-winrux/eval
      vere: style clean for eval cmd
      Merge branch 'jb/hotfix' into jb/fix
      Merge branch 'jb/hotfix' into jb/fix
      Merge branch 'jb/hotfix' into jb/fix
      Merge branch 'jb/hotfix' into jb/fix
      Merge branch 'jb/hotfix' into jb/fix
      Merge tag 'urbit-v1.12' into jb/fix
      Merge commit 'f94875f9ce^2' into jb/release/vere
      Merge commit '264e63330f^2' into jb/release/vere
      u3: backports u3v_soft_peek()
      vere: adds %vile command for extracting keys
      Merge commit '330db284e8^2' into jb/release/vere
      Merge branch 'master' into jb/release/vere
      test: bump loom to 16MB in jam tests
      u3: restages #6001 for release
      u3: adds loom size to u3m_boot() / u3m_boot_lite()
      vere: adds args to set mars/urth looms by binary exponent
      Merge branch 'jb/restage/loom-set' into jb/release/vere
      vere: supports --loom for all relevant subcommands
      Merge branch 'jb/loom-everywhere' into jb/release/vere
      Merge branch 'jb/release/vere' into jb/restage/chop-fast
      u3: bumps maximum reference bits on all platforms
      vere: preserve 2GB defaults for --loom and --loom-urth
      Merge branch 'jb/restage/chop-fast' into jb/release/vere
      Merge branch 'jb/restage/bump' into jb/release/vere
      Merge branch 'jb/fix' into jb/release/vere
      vere: bumps version
      vere: bumps benchmarks to 16MB loom, initializes guard page
      vere: supports --loom in eval cmd
      vere: bumps version

DaneBettis (22):
      Adds %meme and %xray hints.
      adds xray test, reorders tests, fixes sanity checks
      more notes and debugging for xray
      more xray debugs via ~master-morzod
      more xray debugs thanks to ~master-morzod
      partial fix for indexed bytecode args; more to come
      silenced the broken hoon tests
      cleaner expression and docs
      added macro to clarify _slog_bytecode and cleaned hoon hint tests
      first cleanup from meeting with master-morzod
      this branch PR is now for xray only. meme later.
      minimize the diff
      taming int declarations
      docs, tammed ints, better var names, removed redundant funcs
      fixes suggested by master-morzod, and finished int taming
      make _is_indexed() more obvious and less cute
      remove dev-time modifications to manage.c
      WIP stuff re master-morzod
      more refactoring as suggested by master-morzod
      corrected private function names and block comments
      fixed names of vars to follow cvc_TypeLetter style
      simplified xray callsites and rendering

mopfel-winrux (15):
      Added option to run the eval it checks for and prints whatever you pass it as an arguement
      Added basic nock increment evaulation to eval function
      Got basic hoon command compiling and executing
      Fixed a double boot_lite
      Added vase and stack trace wrapper to input, run hoo in virutalization
      added ability to read from stdin rather than being passed an arguement
      changed up how we are executing hoon. This fixes the issue we see with rpevious versions
      cleaned up code
      merged to master fixed conflict in motes.h
      fixed a few of the issues ~master-morzod pointed out
      changed error messages when booting the ivory pill
      changed how the stdin is concatenated. this version should have less memory leaks
      fixed memory leak and cleaned up style
      removed unneeded checks
      Merge branch 'urbit:master' into eval

pkova (1):
      vere: check for permission error on old process kill
2022-11-23 11:24:27 -05:00
.github build: renames "nightly" pace from "often" to "edge" 2022-11-11 11:47:07 -05:00
bin pill: solid 2022-11-11 17:16:10 -05:00
doc/spec docs: remove http-ports.txt 2022-03-04 19:36:26 -06:00
extras Misc cleanup blocking CC-Release. (#1249) 2019-04-24 17:27:27 -07:00
nix nix: update linux-aarch64 overlay to exclude macos m1 2022-11-14 23:15:01 -05:00
pkg Merge tag 'urbit-v1.13' into jb/restage/pread-all 2022-11-23 11:24:27 -05:00
sh build: remove haskell related nix code and haskell.nix dependency 2021-12-08 10:06:42 +01:00
.eslintrc.js meta: rework precommit linting for multiple packages 2021-07-02 10:40:57 +10:00
.gitattributes meta: enforce LF newlines for all hoon and hoon related files 2021-11-25 10:58:21 -05:00
.gitignore Merge branch 'master' into release/next-vere 2021-10-05 11:33:08 -04:00
.ignore Can now |hi to King Haskell over Ames! (and merged Master) 2019-07-31 22:16:02 -07:00
.mailmap mailmap: add pkova [ci skip] 2020-01-30 15:53:19 +04:00
.nvmrc deps: peg node version in project root 2022-02-24 16:46:49 -06:00
.stylish-haskell.yaml stylish-haskell 2019-07-12 12:27:15 -07:00
.vercelignore ci: allows us to deploy frontends to vercel 2021-09-15 11:42:22 -05:00
CONTRIBUTING.md %home -> %base 2022-03-06 11:55:55 -05:00
default.nix nix: enable aarch64-linux platform string 2022-11-11 10:43:38 -05:00
lerna.json grid: init combination from liam + hunter 2021-08-13 18:11:16 -05:00
LICENSE.txt Restore toplevel LICENSE.txt file. 2020-01-28 13:24:39 -08:00
MAINTAINERS.md Merge remote-tracking branch 'origin/jm/homebase' into philip/tomb 2022-05-14 20:46:09 -07:00
Makefile build: removes herb from top-level Makefile, shell.nix 2022-06-03 14:40:08 -04:00
package-lock.json groups: Add fingerprintjs 2022-03-25 14:25:07 -05:00
package.json deps: peg node version in project root 2022-02-24 16:46:49 -06:00
README.md README: /using/install -> /install 2022-10-11 13:39:09 -07:00
shell.nix build: removes herb from top-level Makefile, shell.nix 2022-06-03 14:40:08 -04:00

Urbit

Urbit is a personal server stack built from scratch. It has an identity layer (Azimuth), virtual machine (Vere), and operating system (Arvo).

A running Urbit "ship" is designed to operate with other ships peer-to-peer. Urbit is a general-purpose, peer-to-peer computer and network.

This repository contains:

For more on the identity layer, see Azimuth. To manage your Urbit identity, use Bridge.

Install

To install and run Urbit, please follow the instructions at urbit.org/install. You'll be on the live network in a few minutes.

If you're interested in Urbit development, keep reading.

Development

License Build Nix Cachix

Urbit uses Nix to manage builds. On Linux and macOS you can install Nix via:

curl -L https://nixos.org/nix/install | sh

You can optionally setup Nix to pull build artefacts from the binary cache that continuous integration uses. This will improve build times and avoid unnecessary recompilations of common dependencies. Once Nix has been installed you can setup Cachix via:

nix-env -iA cachix -f https://cachix.org/api/v1/install
cachix use ares

The Makefile in the project's root directory contains useful phony targets for building, installing, testing, and so on. You can use it to avoid dealing with Nix explicitly.

To build the Urbit virtual machine binary, for example, use:

make build

The test suite can similarly be run via a simple:

make test

Note that some of the Makefile targets need access to pills tracked via git LFS, so you'll also need to have those available locally:

git lfs install
git lfs pull

Contributing

Contributions of any form are more than welcome! Please take a look at our contributing guidelines for details on our git practices, coding styles, how we manage issues, and so on.

For instructions on contributing to Landscape, see its guidelines.

You might also be interested in joining the urbit-dev mailing list.