9/ Each line in the above image represents one action that can be done in the VM. There are 16 or so actions this micro / baby / software defined computer can do. Everything else is built atop those.
-
Show this thread
-
10/ The first two lines say "there is an operation which, given some piece of data, will tell you if that piece of data is a number, or a datastructure". The next two lines say "there is an operation that adds 1 to an integer, but does not modify a datastructure".
1 reply 0 retweets 36 likesShow this thread -
11/ The next three lines say "there is a function which tests if two things are identical to each other". Etc.
1 reply 0 retweets 32 likesShow this thread -
12/ The VM operations get weirder as you descend the list. In the middle we get data access...and this is where it is revealed that the VM does not use linear memory like every other bit of computation ever in the history of the world. See, in computers, memory works like >
1 reply 0 retweets 37 likesShow this thread -
13/ a long row of mailboxes. The first mailbox is number 0, the next one is 1, next is 2, next is 3... etc. And computers operate, at a base level, by taking the data in mailbox 13, adding it to the data in mailbox 98, and storing the result in #9971. or ...
1 reply 0 retweets 35 likesShow this thread -
14/ looking at the number stored in location 931, and if it's 0 next moving on to mailbox 932 and performing whatever operation is stored there, but if that first number ISN'T zero, then instead going somewhere else and etching an instruction from that location.
1 reply 0 retweets 34 likesShow this thread -
15/ but, key thing here, is the memory is linear. Addresses get bigger and bigger. In the urbit VM, memory is a tree structure. The first memory location has two children. Each of those children has two children. Etc. So to get to a certain memory location you can't just >>
3 replies 1 retweet 37 likesShow this thread -
16/ start at location 0, check your notes, see "ahh, we're going to location 9 million and 6 ...let's speed walk along this row of mailboxes till we get there". Instead you start at location 0 and then take a forking path: left, left, left, right, left, right, right right...
2 replies 0 retweets 32 likesShow this thread -
17/ The language, the 16 opcodes, that run on this virtual machine, are called Nock. Nock is insanely difficult to program in, so Curtis wrote a higher level language ON TOP of Nock, called Hoon ... which is ALSO insanely difficult to program in.
3 replies 1 retweet 39 likesShow this thread -
Replying to @MorlockP
wow, thank you! this is the best explanation I've yet seen of what's going on with Nock & Hoon.
1 reply 0 retweets 2 likes
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
