WebAssembly is a low-level language for a portable virtual machine. Wasm is designed to be a compilation target for a variety of programming languages and its design is hardware independent and relatively simple, making its support ubiquitous in modern browsers. Its simple design made it a perfect first candidate for a first emulator of an conventional computational system on a novel functional computer: Urbit. In this paper I discuss the current state of urwasm
project and some technical details, as well as describe the strategy to jet the interpreter of a state machine in a functional environment.
The target audience is people who are familiar with Urbit's architecture, though not necessarily much of its code.
As some of you already know, i recently left my job as a core dev for the Urbit Foundation to work on a similar system called Plunder. Plunder was created in 2020 by two former Tlon employees, after their proposal for a new version of Nock was rejected. They have since reworked that significantly and built a reference implementation of their own system. You can follow its continued development on its mailing list.
I've known about Plunder for quite some time now, but their recently released demo -- in which the system is used to serve a 70 GB dataset, complete with metadata and searchable -- made me feel the need to explore it again and in greater detail. Doing this with my personal server doesn't feel like a big ask, but there is currentl
with import <nixpkgs> {}; | |
stdenv.mkDerivation { | |
name = "postgresql-inside-nixshell"; | |
buildInputs = [ | |
glibcLocales | |
(pkgs.postgresql.withPackages (p: [ p.postgis ])) | |
sqitchPg | |
pgcli |
|= dim=@ud ^- (list @t) | |
=/ dx (div:rs .1 (sun:rs dim)) | |
=/ white [.1 .1 .1] | |
=< (genppm dim) | |
|% | |
++ min | |
|= [x=@rs y=@rs] ^- @rs | |
?: (lth:rs x y) x y | |
++ max | |
|= [x=@rs y=@rs] ^- @rs |
with import <nixpkgs> {}; | |
stdenv.mkDerivation { | |
name = "postgresql-inside-nixshell"; | |
buildInputs = [ | |
postgresql | |
]; | |
shellHook = '' |