strangest systems I've sent email from

Sean Conner spc at conman.org
Wed May 4 13:59:57 CDT 2016


It was thus said that the Great Liam Proven once stated:
> On 29 April 2016 at 21:06, Sean Conner <spc at conman.org> wrote:
> > It was thus said that the Great Liam Proven once stated:
> 
> >   I read that and it doesn't really seem that CAOS would have been much
> > better than what actually came out.  Okay, the potentially better resource
> > tracking would be nice, but that's about it really.
> 
> The story of ARX, the unfinished Acorn OS in Modula-2 for the
> then-prototype Archimedes, is similar.
> 
> No, it probably wouldn't have been all that radical.
> 
> I wonder how much of Amiga OS' famed performance, compactness, etc.
> was a direct result of its adaptation to the MMU-less 68000, and thus
> could never have been implemented in a way that could have been made
> more robust on later chips such as the 68030?

  Part of that was the MMU-less 68000.  It certainly made message passing
cheap (since you could just send a pointer and avoid copying the message)
but QNX shows that even with copying, you can still have a fast operating
system [1].  I think what made the Amiga so fast (even with a 7.1MHz CPU)
was the specialized hardware.  You pretty much used the MC68000 to script
the hardware.

> >   I spent some hours on the Urbit site.  Between the obscure writing,
> > entirely new jargon and the "we're going to change the world" attitude,
> > it very much feels like the Xanadu Project.
> 
> I am not sure I'm the person to try to summarise it.
> 
> I've nicked my own effort from my tech blog:
> 
> I've not tried Urbit. (Yet.)
> 
> But my impression is this:
> 
> It's not obfuscatory for the hell of it. It is, yes, but for a valid
> reason: that he doesn't want to waste time explaining or supporting
> it. It's hard because you need to be v v bright to fathom it;
> obscurity is a user filter.

  Red flag #1.

> He claims NOT to be a Lisp type, not to have known anything much about
> the language or LispMs, & to have re-invented some of the underlying
> ideas independently. I'm not sure I believe this.
> 
> My view of it from a technical perspective is this. (This may sound
> over-dramatic.)
> 
> We are so mired in the C world that modern CPUs are essentially C
> machines. The conceptual model of C, of essentially all compilers, OSes,
> imperative languages, &c. is a flawed one -- it is too simple an
> abstraction. Q.v. http://www.loper-os.org/?p=55

  Ah yes, Stanislav.  Yet anohther person who goes on and on about how bad
things are and makes oblique references to a better way without ever going
into detail and expecting everyone to read his mind (yes, I don't have a
high opinion of him either).  

  And you do realize that Stanislav does not think highly of Urbit (he
considers Yarvin as being deluded [2]).

> Instead of bytes & blocks of them, the basic unit is the list.
> Operations are defined in terms of lists, not bytes. You define a few
> very simple operations & that's all you need.

  Nice in theory.  Glacial performance in practice.

> The way LispMs worked, AIUI, is that the machine language wasn't Lisp,
> it was something far simpler, but designed to map onto Lisp concepts.
> 
> I have been told that modern CPU design & optimisations & so on map
> really poorly onto this set of primitives. That LispM CPUs were stack
> machines, but modern processors are register machines. I am not
> competent to judge the truth of this.

  The Lisp machines had tagged memory to help with the garbage collection
and avoid wasting tons of memory.  Yeah, it also had CPU instructions like
CAR and CDR (even the IBM 704 had those [4]).  Even the VAX nad QUEUE
instructions to add and remove items from a linked list.  I think it's
really the tagged memory that made the Lisp machines special.

> If Yarvin's claims are to be believed, he has done 2 intertwined things:
> 
> [1] Experimentally or theoretically worked out something akin to these
> primitives.
> [2] Found or worked out a way to map them onto modern CPUs.

  List comprehension I believe.

> This is his "machine code". Something that is not directly connected
> or associated with modern CPUs' machine languages. He has built
> something OTHER but defined his own odd language to describe it &
> implement it. He has DELIBERATELY made it unlike anything else so you
> don't bring across preconceptions & mental impurities. You need to
> start over.

  Eh.  I see that, and raise you a purely functional (as in---pure
functions, no data) implementation of FizzBuzz:

	https://codon.com/programming-with-nothing

> But, as far as I can judge, the design is sane, clean, & I am taking
> it that he has reasons for the weirdness. I don't think it's
> gratuitous.

  We'll have to agree to disagree on this point.  I think he's being
intentionally obtuse to appear profound.

> So what on a LispM was the machine language, in Urbit, is Nock. It's a
> whole new machine language layer, placed on top of an existing OS
> stack, so I'm not surprised if it's horrendously inefficient.
> 
> Compare with Ternac, a trinary computer implemented as a simulation on
> a binary machine. It's that big a change.
> https://en.wikipedia.org/wiki/Ternac
> 
> Then, on top of this layer, he's built a new type of OS. This seems to
> have conceptual & architectural analogies with LispM OSes such as
> Genera. Only Yarvin claims not to be a Lisper, so he's re-invented
> that wheel. That is Hoon.
> 
> But he has an Agenda.
> 
> Popehat explained it well here:
> https://popehat.com/2013/12/06/nock-hoon-etc-for-non-vulcans-why-urbit-matters/

  Yeah, I read that.  Urbit is a functional underpinning.  Of course we need
to burn the disc packs.

> I would be interested in an effort to layer a bare-metal-up LispM-type
> layer on top of x86, ARM, &c. But Yarvin isn't here for the sheer
> techno-wanking. Oh no. He wants to reinvent the world, via the medium
> of encryption, digital currencies, &c. So he has a whole other layer
> on top of Urbit, which is the REASON for Urbit -- a secure, P2P,
> encrypted, next-gen computer system which happens to run on existing
> machines & over the existing Internet, because that's the available
> infrastructure, & whereas it's a horrid mess, it's what is there. You
> can't ignore it, you can't achieve these grandiose goals within it,
> so, you just layer your new stuff over the top.

  So does Stanislav.  And so did Faré Rideau with TUNES.

  But at some point, the electrons need to meet the silicon or else it's
just talk.  Lots and lots of talk.  Obsfucated talk at that.

  -spc

[1]	In the mid-90s I knew the owners of a local software company that
	sold commerical X servers.  Their fastest server was under QNX,
	which used the native QNX message passing (copy data between two
	processes).

[2]	Yes, I'm using one crank [3] to support my position on another
	crank.  That might make me a crank as well.  I don't know.

[3]	Don't get me wrong---I love cranks.  I find them facinating.  I just
	don't necessarily believe in what they're saying.

[4]	It's a joke.  Look it up.


More information about the cctalk mailing list