Turbo Haskell
Thread
Loading the complete thread in the background. This saved snapshot is available now. Refresh
Unofficial Hacker News client; not affiliated with Y Combinator.
Turbo Haskell
Loading the complete thread in the background. This saved snapshot is available now. Refresh
Unofficial Hacker News client; not affiliated with Y Combinator.
vocatan · · focus · HN ↗
throwaway81523 · · focus · HN ↗
throwway262515 · · focus · HN ↗
woadwarrior01 · · focus · HN ↗
kitd · · focus · HN ↗
gf000 · · focus · HN ↗
edwardkmett · · focus · HN ↗
Talking about Java FFI invites you to say 'well then smart-ass how do you extend this Java class/interface over here with code written in your language' and frankly, that has never had a satisfying answer for any language that isn't Java.
But today you can pass Haskell Data.Text out through the FFI binding framework and it shows up on the other side as a valid TruffleString, in UTF-8 with zero copy semantics and if any Truffle language passes in a TruffleString that is UTF-8 encoded it gets unwrapped into Data.Text using the same.
That and some array support is pretty much enough to talk to everybody else.
BalinKing · · focus · HN ↗
[0] <a href="https://github.com/frege/frege" rel="nofollow">https://github.com/frege/frege
kinow · · focus · HN ↗
fouc · · focus · HN ↗
bmacho · · focus · HN ↗
nathell · · focus · HN ↗
bmacho · · focus · HN ↗
edit: on 'sub-second compilation times'. A warm Haskell interpreter (Hint + GHCi) can produce result for new tasks very fast, below 20ms on codespaces, including parsing, compiling to byte-code and running it, for trivial programs (print a number).
Since Haskell has strong boundaries inside the program, I imagine after a modification most of it could be reused!
bmacho · · focus · HN ↗
edwardkmett · · focus · HN ↗
edwardkmett · · focus · HN ↗
bmacho · · focus · HN ↗
quchen · · focus · HN ↗
davidkunz · · focus · HN ↗
TurboHaskal · · focus · HN ↗
atarv · · focus · HN ↗
vintermann · · focus · HN ↗
edwardkmett · · focus · HN ↗
Now picking CBD for the compressed Core Binary Distribution format we use? That? That was gratuitous.
asplake · · focus · HN ↗
therepanic · · focus · HN ↗
i am not sure anyone actually understands what is going on under the hood of the project. looks like average slop.
>> Exactly a week ago (as a joke), I started writing THC,
you? i hope you have read at least something of what your agent wrote about the project.
vintermann · · focus · HN ↗
therepanic · · focus · HN ↗
draven · · focus · HN ↗
4b11b4 · · focus · HN ↗
jerf · · focus · HN ↗
I can promise you he will not produce and release "slop". He would be an order of magnitude more offended at the idea than you are, I'd imagine.
therepanic · · focus · HN ↗
solomonb · · focus · HN ↗
He completed undergrad and graduate programs in math, computer science, and a special program in ai all simultaneously in 3 years. I believe he was finishing programs before his scholarships could kick in.
ddellacosta · · focus · HN ↗
...and this still understates his impact on Haskell, he helped shape how a lot of programs are written in Haskell through some of the stuff he worked on (see e.g. <a href="https://stackoverflow.com/a/2769840" rel="nofollow">https://stackoverflow.com/a/2769840 as evidence of his influence on core functionality).
edwardkmett · · focus · HN ↗
In the original commenter's defense, I _did_ let the agents I have working on this get a more than a bit test harness crazy back when I was able to use GHC itself as a behavioral oracle. That worked fine through the initial build out, but then it rushed ahead with a broken CI due to misalignment in priorities, and then kept piling fixtures on top of fixtures and didn't properly track their cross-dependencies. My work on this in the last 48 hours has mostly been about getting that part under control and stable across my target platforms so I have better bedrock to build atop.
shae · · focus · HN ↗
He wore out the vim movement keys on a mac laptop keyboard in four months.
By "wore out" I mean he had worn the plastic down to the keyswitches, in FOUR MONTHS.
We once had an emergency production outage and Kmett got more productive as he stayed up later. At about 36 hours he fixed the problem. I fell over asleep, he fixed other problems he'd found during the investigation.
I have lots more Ed stories, but this output you question does not surprise me.
bmacho · · focus · HN ↗
rsrsrs86 · · focus · HN ↗
ta2345fa59be · · focus · HN ↗
How can you tell?
gojogs · · focus · HN ↗
draven · · focus · HN ↗
jeffhwang · · focus · HN ↗
<a href="https://www.reddit.com/r/haskell/comments/1wu24oe/turbo_haskell/" rel="nofollow">https://www.reddit.com/r/haskell/comments/1wu24oe/turbo_hask...
woadwarrior01 · · focus · HN ↗
classified · · focus · HN ↗
classified · · focus · HN ↗
Why not call it Jaskell then?
ch4s3 · · focus · HN ↗
classified · · focus · HN ↗
ch4s3 · · focus · HN ↗
classified · · focus · HN ↗
ch4s3 · · focus · HN ↗
classified · · focus · HN ↗
ch4s3 · · focus · HN ↗
cosmic_quanta · · focus · HN ↗
<a href="https://haskell.foundation/podcast/87/" rel="nofollow">https://haskell.foundation/podcast/87/
dzonga · · focus · HN ↗
pawelmurias · · focus · HN ↗
Gimpei · · focus · HN ↗
epgui · · focus · HN ↗
I have no doubt the haskell compiles… but when it comes from an LLM it reads like nonsensical code soup.
Claude-generated Clojure seems a lot better.
tikhonj · · focus · HN ↗
Having an effect system so that Claude is not tempted to throw in side-effects everywhere helps a lot too!
epgui · · focus · HN ↗
(For further context, I was comparing essentially vibe code across languages.)
rspeele · · focus · HN ↗
If your favorite language before was Python, why, LLMs are fluent in it! So much training data! So many libraries! Home of machine learning! None of that pesky compile time, agents don't need compile time safety anyway, they write such good test coverage! It's The Perfect Agentic Coding Language.
If it was Rust, by jove, an agent can easily handle the headache of satisfying the borrow checker, and now you get the best of all worlds! Safety! Near-C runtime performance! Abstractions! The only reason people didn't use Rust before was it was Too Hard and there were Too Many Furries and now it's not hard and you don't have to interact with them, so get on board. It's The Perfect Agentic Coding Language.
If it was Golang, oh my goodness, what a choice. Pretty fast compile time and pretty fast runtime. Agents get a tight feedback loop with build->run->test->edit. Not very complicated, code has to be written in a straightforward banging-rocks-together way. Good stable ecosystem! Rob Pike designed the language for people he said were "not capable of understanding a brilliant language but we want to use them to build good software." That's an arrogant, demeaning way to describe your colleagues but if they're LLM agents it's dead on! It's The Perfect Agentic Coding Language.
I could go on and on. I'm not immune either! My own favorite language is F# and I play the same game:
It has access to the .NET ecosystem like C#, but I don't have to constantly remind the agents to prefer a style with immutable data and pure functions, they idiomatically do that in F#. Files have to be in order and can only refer to symbols defined "earlier" in order, if you want mutually-referential types or functions they have to be declared as such in a joint statement, so spaghetti is hard to create: each project's codebase naturally ends up in a layered bottom-to-top architecture. The language is terse enough to be token efficient, without being symbol soup. FSX scripts can be generated during agentic code reviews to demonstrate repros for discovered issues. If I want to have more manual control, I can model the most important parts of my domain in F# type definitions (DUs and records) very succinctly, and have the agent do the implementation grunt work. It's The Perfect Agentic Coding Language.
cryptonector · · focus · HN ↗
zerr · · focus · HN ↗
edwardkmett · · focus · HN ↗
Text is presented in a faux IBM VGA font, blue background, and in any of the non-terminal choices a subtle CRT grading/vignetting is applied if desired, but it is extended to full unicode including emoji with an optional stylization pass to make them feel more like the period editor experience. You can even switch display modes because most of the time I used Borland tools in my youth I'd run them in 80x50 mode.
My general intent is that the final installer will package both of them, just like Turbo Pascal bundled TP and TPC or Turbo C bundled TC and TCC.
yjftsjthsd-h · · focus · HN ↗
Look, it's very cool and a great project, but I just don't think you should call the compiler "turbo $something" if you're not going to make it a TUI IDE.
edwardkmett · · focus · HN ↗
Next?
mannycalavera42 · · focus · HN ↗
JSR_FDED · · focus · HN ↗
iLemming · · focus · HN ↗