Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
LightMachine
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
6 ms
·
151.
▲
by
LightMachine
5y ago
Looks good. I'll keep that in mind and let you know if we write such a benchmark. Opening an issue would be helpful to remind us!
152.
▲
by
LightMachine
5y ago
It does that! There are no GC pauses on HVM's model. Compiling Haskell to it would be neat.
153.
▲
by
LightMachine
5y ago
That isn't how it works. HVM threads work transparently, you don't need to think about them. The same data structure *can* be visible to multiple threads under some conditions, through cloning; for example, consider the following
154.
▲
by
LightMachine
5y ago
> That is not always true. There’s some overhead to introducing parallelization so it’s not always worth it unless you have a big enough chunk of work. This isn't fine-grained parallelism though! As I said, HVM spawns threads on to-
155.
▲
by
LightMachine
5y ago
I don't think the authors are focused on engineering matters; they're researchers after all. But that's just my guess. Also, there is an obsession with covering the full λ-calculus, which the abstract algorithm doesn't.
156.
▲
by
LightMachine
5y ago
`dup a b = {x0 x1}` will just substitute `a` by `x0` and `b` by `x1`, no matter where `a` and `b` are. So, if you apply that, verbatin, to: (Pair λx0(λy0(Pair a c)) λx1(λy1(Pair b d))) You get: (Pair λx0(λy0(Pair x0 c)) λx1(λ
157.
▲
by
LightMachine
5y ago
There aren't. Kind is more stable, is more JS-looking and less Haskell-looking, which makes it more practical IMO, has a super fast JS compiler and you can write React-like apps on it easily, but some work is needed to improve the type
158.
▲
by
LightMachine
5y ago
Thank you!
159.
▲
by
LightMachine
5y ago
I know it needs improvements, there is even a disclaimer in the top of HOW.md. I'll go over it and improve sentences like that in a future.
160.
▲
by
LightMachine
5y ago
I do disagree with SPJ here, though. On HVM, you can have complete control over how the resources (both space and time) are used in your programs and algorithms. That is why it outputs the memory (space) and rewrites (time) cost of each pro
161.
▲
by
LightMachine
5y ago
Andrea Asperti's only mistake was thinking he was wrong.
162.
▲
by
LightMachine
5y ago
This is MIT licensed, so feel free to fork, use, edit and sell it without even notifying me. Now go ahead and get rich!
163.
▲
by
LightMachine
5y ago
You mean, the whole project? Or just the runtime? The runtime has recently been ported to go by Caue F. He posted it in our Telegram: https://pastebin.com/0X0bbW8b Perhaps you could team up?
164.
▲
by
LightMachine
5y ago
I didn't want to be misleading, sorry. My reasoning was to just benchmark identical programs. I personally think Haskell's approach to parallelism is wrong, though, since it demands in-code annotations to work. The problem is that
165.
▲
by
LightMachine
5y ago
That is really not true, but I do agree Haskell passes that impression, for the wrong reasons. I'm working hard to fix these misconceptions on HVM, Kind-Lang and related projects!
166.
▲
by
LightMachine
5y ago
Since HVM is linear, adding some mutability would be completely fine and would NOT break referential transparency (because values only exist in one place!). So, we could actually have "pure mutable arrays". In order to make that m
167.
▲
by
LightMachine
5y ago
> On a quick scan, it seems to be some more things than just `let`. One example would be `(Main n) = (Sum (Gen n))` should be closer to `(define Main (n) (Sum (Gen n)))` or similar. Good point. > Could even get rid of the parenthesis
168.
▲
by
LightMachine
5y ago
I fixed the link. This is all part of the system described on the book, HVM is merely a very fast practical implementation. The additions (thinks like machine integers and constructors) don't affect the core.
169.
▲
by
LightMachine
5y ago
Changing it to pure s-expressions would be easy though, I guess just `let` isn't following that rule? I do love the no-parenthesis lets though.
170.
▲
by
LightMachine
5y ago
Yes! The fact HVM can apply a function 2^N times in N steps is still mind-blowing to me. I think solutions to important problems might come from exploiting this fact. Keep in mind you need to use some techniques for that to work. In special
171.
▲
by
LightMachine
5y ago
Author here. HVM is the ultimate conclusion to years of optimal evaluation research. I've been a great enthusiast of optimal runtimes. Until now, though, my most efficient implementation had barely passed 50 million rewrites per second
172.
▲
by
LightMachine
5y ago
The reason for the syntax is that HVM aims to be a low level compile target, which sounds confusing because closures make it look very high level, but it should be seen as LLVM IR. It isn't meant for direct human use on the long term.
173.
▲
by
LightMachine
5y ago
VictorTaelin here. It won't show a speedup because you already optimized it to a low level algorithm manually! The point of that benchmark is to stress-test the cost of overwhelming abstraction. What is really notable is that addition
174.
▲
by
LightMachine
5y ago
HVM is the ultimate conclusion to years of optimal evaluation research. I've been a great enthusiast of optimal runtimes. Until now, though, my most efficient implementation had barely passed 50 million rewrites per second. It did beat
175.
▲
by
LightMachine
5y ago
Thank you! Sad this post got no traction. I wonder if Hacker News allows posting again in a future.
176.
▲
Show HN: High-order Virtual Machine (HVM) – A Parallel Functional Runtime
(github.com)
150 points
by
LightMachine
5y ago
|
13 comments
177.
▲
by
LightMachine
5y ago
Speaking of the subject, if someone DOES want a credential and already knows a lot of CS, are there good online courses that provide sped up process? I have been programming since 20 years ago, am a lead developer at a large company, but ha
178.
▲
by
LightMachine
5y ago
That isn't even necessary. I've been exploring GPT-3 for a while and it is completely incapable of any reasoning. If you enter short unique logical sentences like "Bob had 5 apples, gave 2 to Mary, then ate the same amount. H
179.
▲
by
LightMachine
5y ago
This mindset kills more people than Hitler. Have a good day.
180.
▲
by
LightMachine
5y ago
You do not understand the situation. Breaking ECDSA would mean everyone gains access to everyone else's private keys. There is no recovery after that, because even if the network is updated to use a quantum-resistant scheme, how do you
More ›