2e57625e26
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 |
||
---|---|---|
.github | ||
bin | ||
doc/spec | ||
extras | ||
nix | ||
pkg | ||
sh | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.ignore | ||
.mailmap | ||
.nvmrc | ||
.stylish-haskell.yaml | ||
.vercelignore | ||
CONTRIBUTING.md | ||
default.nix | ||
lerna.json | ||
LICENSE.txt | ||
MAINTAINERS.md | ||
Makefile | ||
package-lock.json | ||
package.json | ||
README.md | ||
shell.nix |
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:
- The Arvo OS
- herb, a tool for Unix control of an Urbit ship
- Source code for Landscape's web interface
- Source code for the vere virtual machine.
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
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.