There's so much I'd like to do. I've been hacking on the Haskell indexer to see if an index of (a large subset of) Hackage could be useful, see simonmar.github.io/posts/2025-0...
The Angle compiler needs a lot of work, and I'd love to implement a JIT backend for the bytecode.
Posts by Simon Marlow
Interesting, that isn't a problem I've run into. The main issue was the dependencies: fbthrift, folly, and RocksDB. A while ago I disentangled fbthrift, and recent Linux distros package a new enough version of RocksDB. Folly was the last one, see progress here github.com/facebookincu...
Yep, hoping we can make it useful for non-Meta folks. And it's just fun to hack on.
Yes, dot is used by other languages and is therefore familiar to many people, but other languages don't also use dot for a different central concept. For Haskell we should have chosen another syntax. e.g. `->` would have been better IMO.
it's way too late to do anything but rant, though.
On balance I think using dot for record selection in GHC (OverloadedRecordDot) was a mistake. Having dot be either function composition or record selection depending on whitespace is just not a good design, for either experienced or inexperienced users.
1/2
Thrift is what we used at Meta. github.com/facebookincu... It's one of the things I call a "Big Hammer" - so useful you can't do without it, and once you buy into it for your software ecosystem, it becomes a single point of leverage. I'm in the process of putting the packages on Hackage.
Haha! I'd love to know which tidbits of advice have risen to this level, it might be useful if I'm reorganising things.
Perhaps a chapter on Thrift would be a more useful replacement for the distributed-process chapter.
Thanks, I'd forgotten about that post! How insightful 😆
Yeah, there's actually a bounded version of mapConcurrently that we ended up using at Meta for most simple IO parallelism use cases, I'm considering adding this to async github.com/facebookincu...
I'm thinking about a second edition of Parallel and Concurrent Programming in Haskell. Any thoughts on what should be added (or removed)? What's missing, what updates are needed to reflect common usage?
The obvious new things are async and Haxl. Should the chapter on distributed-process be kept?
Int is 64 bits almost everywhere these days
Probably not this time, but I'll be at Zurihac if you're coming to that?
Mainly riding my bike probably!
Congratulations Mary, enjoy retirement!
Yesterday I left Meta after 12 years. Freedom feels good!
"Indexing code at scale with Glean"
We finally got round to writing a blog post about Glean, the thing I work on.
engineering.fb.com/2024/12/19/d...
My standard code review comment: looks like it needs more Control.Exception.bracket
If you have a bytecode interpreter and you want to make it faster, do you (a) JIT it using LLVM or (b) use Wasm or (c) something else? Given that LLVM is already a dependency (and dependencies matter), but you would like sandboxing/safety too.
How dare you, haggis is delicious
Did I ever show you this?
I sometimes get compliments on my laptop stickers in meetings. Especially the one in the middle, which I tracked down after seeing it on my daughter's laptop (and who now insists on getting credit for it, ergo)