Maxwell equations of software? or rather Feynman d...
# linking-together
m
Maxwell equations of software? or rather Feynman diagrams of software? crossing fingers that some of this is true šŸ™‚ Twitter thread explaining it *High-order Virtual Machine (HVM)* is a pure functional runtime that is lazy, non-garbage-collected and massively parallel. It is also beta-optimal, meaning that, for higher-order computations, it can be exponentially faster than alternatives, including Haskell's GHC. That is possible due to a new model of computation, the Interaction Net, which supersedes the Turing Machine and the Lambda Calculus. Previous implementations of this model have been inefficient in practice, however, a recent breakthrough has drastically improved its efficiency, resulting in the HVM. Despite being relatively new, it already beats mature compilers in many cases, and is set to scale towards uncharted levels of performance. Welcome to the massively parallel future of computers! Interaction Combinators Paper It is shown that a very simple system of interaction combinators, with only three symbols and six rules, is a universal model of distributed computation, in a sense that will be made precise. This paper is the continuation of the author's work on interaction nets, inspired by Girard's proof nets for linear logic, but no preliminary knowledge of these topics is required for its reading. Interaction nets are a graphical model of computation devised by Yves Lafont in 1990 as a generalisation of the proof structures of linear logic. An interaction net system is specified by a set of agent types and a set of interaction rules. Interaction nets are an inherently distributed model of computation in the sense that computations can take place simultaneously in many parts of an interaction net, and no synchronisation is needed. The latter is guaranteed by the strong confluence property of reduction in this model of computation. Thus interaction nets provide a natural language for massive parallelism.
k
This is the page that has helped me the most in making sense of all this: https://github.com/Kindelia/HVM/blob/master/guide/HOW.md
i
Iā€™ve been trying to work through the paper, but the math is pretty dense. šŸ˜›
that explanation is much easier to understand, thanks for the pointer @Kartik Agaram
n
From the amount of hype that the creator is trying to generate, I'm concerned that he's a snake oil salesman. After all, he's trying to turn it into a blockchain project. Can anyone confirm that this execution model is actually novel and promising?
m
that's the "crossing fingers that some of this is true" part of my post šŸ˜„
w
I know a few smart FP people who do blockchain projects more as an excuse. If this has any "massively parallel" capability, I imagine it must track data dependencies. My second thought is that any practical single node speed will come from playing well with CPU caches and any practical cross node speed will come from efficient communication protocols.
i
after digging in a bit, Iā€™d say that this passes an initial sniff test. The properties he mentions are theoretically available given how it works and I can plasuibly imagine a low constant factor runtime thatā€™d take advantage of it. Donā€™t know about ā€œnovelā€, but I havenā€™t personally seen this particular approach before.
n
Just so everyone knows, the author hasnā€™t decided whether this implementation will be free to use yet. Thereā€™s no LICENSE file, and he isnā€™t willing to add one.
k
the author hasnā€™t decided whether this implementation will be free to use yet.
This doesn't seem like a fair characterization of his comment.
he isnā€™t willing to add one.
This also seems excessive. The issue is still open. That's usually a sign a decision hasn't been made. How about we give him more than 5 minutes?
n
I think itā€™s pretty fair. The repository has been up for a year and heā€™s trying to commercialise his work via a blockchain project. Itā€™s quite possible heā€™ll license it under GPL to stop others from using it freely in practice. I just thought itā€™s worth pointing that out here before people spend too much time looking into the project under the assumption that is free to use.
k
Wait, you consider GPL to be non-free?! That seems worth calling out more explicitly. (I'll stop debating this particular sub-thread. I don't have any love for blockchain projects, but the possibility of getting sued for GPL violations doesn't seem like the most interesting thing here.)