Live data from Hacker News

Higher-Order Virtual Machine (HVM)

github.com

1–10 of 51 posts

Re: Higher-Order Virtual Machine (HVM)

#3
how does Interaction Nets model compare with other concurrency models such as dataflow programming with Arrow? (For example, I maintain a distributed/reactive Clojure dialect for unified fullstack web development which seems to show a deep connection to HVM despite being based on dataflow not interaction nets - https://github.com/hyperfiddle/electric)

Re: Higher-Order Virtual Machine (HVM)

#4
This reminds me strongly of Absal[0]. Could somebody familiar with both give a comparison?

This looks like a really cool idea, and I'd love to see a GHC backend for it.

It might also be nice to have a brief explanation if an interaction between without just linking to a big theory paper.

[0] https://github.com/VictorTaelin/abstract-algorithm

eta: I only now notice that Victor Taelin is the author of both packages.

Re: Higher-Order Virtual Machine (HVM)

#5
Interesting, though I can’t help but feel that the tone of the first few paragraphs could be a bit more.. humble? Even if the underlying model is much better, you can’t really compare a complete project to one that is alpha. Real world complexities catch up in the later phase of bigger projects.

Nonetheless, I eagerly await its future.

Re: Higher-Order Virtual Machine (HVM)

#6
I've never heard of interaction nets (which just shows how overspecialized CS can be: I guess I have a PhD in PLT?); so... I wikipedia'd it up. I normally don't trust Wikipedia any further than I can throw it, but ... "interaction nets":

https://en.wikipedia.org/wiki/Interaction_nets

Re: Higher-Order Virtual Machine (HVM)

#8
Author here! Thanks for posting :) Just want to make a brief note here that we raised a 4.5m seed round to found a tech startup, the Higher Order Company, to work on the HVM. Our goal is to improve the runtime, the Kind language, and eventually build our own hardware. There are already several cool ideas on the pipeline, so expect exciting news and massive improvements soon!

Re: Higher-Order Virtual Machine (HVM)

#9
The HVM project is incredibly interesting and I applaud the great work Victor Taelin has put in practically implementing Interaction Nets and popularising Linear Logic.

I've noticed HVM since February last year and was quite convinced that they were really up to something; however now that I've gone through a pile of papers on Linear Logic and the book which HVM is based on (The Optimal Implementation of Functional Programming Languages, Asperti and Guerrini, https://www.amazon.co.jp/-/en/Andrea-Asperti/dp/0521621127), I believe that among other things, the issue presented here https://github.com/HigherOrderCO/HVM/issues/60 is really a fundamental blocker to serving as a general purpose runtime, which it appears HVM attempts at.

Fundamentally HVM is an impressively optimised implementation of Symmetric Interaction Combinators, a variety of Interaction Net. Symmetric Interaction Combinators is not related to lambda calculus in a trivial way, and thus as noted in the README, HVM does not 'support' the full Lambda Calculus. In a vast majority of cases the HVM approach really does simply evaluate lambda terms at impressive speed, but the failure cases are quite tricky to handle, in that they will fail silently, simply evaluating the term incorrectly. This issue however, is acknowledged in the README and can be tackled by the method described there, or by type-checking for these 'failure' cases https://github.com/HigherOrderCO/HVM/discussions/97.

The issue mentioned in #60 however, seems to be quite fundamental - HVM makes lambda evaluation fast by implementing lambda evaluation in terms of Symmetric Interaction Combinators and making sure each operation of SIC evaluates in constant time. This works in most cases, but as acknowledged in Asperti and Guerrini, in some cases the SIC representation of lambda terms simply become themselves very (exponentially) large. Victor appears to acknowledge that he is simply building a practical counterpart upon the theory as cited from Asperti and Guerrini, citing Asperti and Guerrini's 'safe rules', which has not yet been implemented, as his plan to prevent very large representations of lambda terms from occurring, but Asperti and Guerrini themselves acknowledge that their rules are probably incomplete. Crucially, these terms appear to show up in regular functional programming folds.

The promise of HVM is that we have finally found a way to naturally implement the parallelism inherent in pure lambda terms, without special annotation or extra accommodation for the runtime. As it stands, HVM still falls short of the lofty dream.

Re: Higher-Order Virtual Machine (HVM)

#10
post #6

I've never heard of interaction nets (which just shows how overspecialized CS can be: I guess I have a PhD in PLT?); so... I wikipedia'd it up. I normally don't trust Wikipedia any further than I can throw it, but ... "interaction nets": https://en.wikipedia.org/wiki/Interaction_nets

Have you heard of Linear Lisp? https://www.cs.utexas.edu/users/hunt/research/hash-cons/hash...
Post reply on HN