https://futureofcoding.org/ logo
Title
m

Mariano Guerra

12/22/2022, 2:15 PM
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

Kartik Agaram

12/22/2022, 3:40 PM
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

ibdknox

12/22/2022, 7:46 PM
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

Nick Smith

12/23/2022, 12:22 AM
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

Mariano Guerra

12/23/2022, 12:59 AM
that's the "crossing fingers that some of this is true" part of my post 😄
w

wtaysom

12/23/2022, 1:28 AM
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

ibdknox

12/23/2022, 3:11 PM
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

Nick Smith

12/23/2022, 11:25 PM
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

Kartik Agaram

12/24/2022, 12:15 AM
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

Nick Smith

12/24/2022, 1:17 AM
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

Kartik Agaram

12/24/2022, 1:34 AM
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.)