Discussion:
[urbit] Re: [urbit/urbit] Fix ++peek:ut jet semi-discrepancy (#765)
Curtis Yarvin
2016-08-04 00:43:42 UTC
Permalink
I love seeing you guys do core language work. There really is no little
man behind the curtain.

The real dream I got halfway through was to (a) eliminate the duplication
of ++mint, ++play, +mull with the fabulous power of higher-order
programmings; and (b) eliminate the dependency on out-of-band caching for
non-exponential performance on ++ut's pruning-list algorithms, by simply
using an in-band cache.

I simply didn't know how exactly to do a monadic cache in the subject when
I wrote ++ut. Note that you don't see =^ used in this code at all. I also
was a much stronger believer in out-of-band caching ~+ style, except that
~+ per se cannot work in ++ut because the subject cache becomes polluted
with the worklist. You have to actually depend semantically in the jets
that the worklist is a clearable cache. In practice this means the vaunted
self-compiling Hoon compiler can't actually compile itself without the
assistance of C. Which is lame.

I can't justify working on this myself as a *business* decision. But as a
mere language designer I wish someone would finish it. Caution, the
higher-orderness in modern ++ut is quite strong. I didn't solve the
unification of mint, play and mull in general, but I did for the hardest
rune, %=. Honestly I feel cut-and-paste might be better software
engineering in this case -- I half just wanted to see if Hoon could be used
as Haskell here. The answer is "yes, but I'm not sure we want to." In any
case, the current ++ut is half fish and half bird.

The ++ut jets are the oldest code in Urbit and have evolved, of course,
from the original bootstrap code in C. I definitely wouldn't mind shooting
them in the head. But Tlon is not at present so rich that it can spend
money shooting them in the head, even though they need to be shot in the
head.
Merged #765 <https://github.com/urbit/urbit/pull/765>.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/urbit/urbit/pull/765#event-744637741>, or mute the
thread
<https://github.com/notifications/unsubscribe-auth/AALyAaMXprpO9UBQajTI0w8ADyy4o1F-ks5qcTMAgaJpZM4JZY3z>
.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...