Simon Marlow
simonmar.bsky.social
Simon Marlow
@simonmar.bsky.social
I write code, delete email and forget to go to meetings at Meta, mainly on glean.software. Spare time: bikes and mountains.
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.
Browsing Stackage with VS Code and Glean · Simon Marlow
simonmar.github.io
July 9, 2025 at 9:07 AM
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...
Support cabal install glean · Issue #553 · facebookincubator/Glean
Tracking progress towards cabal install glean so that others can test it The current state is on these branches: hsthrift: https://github.com/simonmar/hsthrift/tree/hackage-0.2.0.0 Glean: https://g...
github.com
July 9, 2025 at 9:04 AM
Yep, hoping we can make it useful for non-Meta folks. And it's just fun to hack on.
July 8, 2025 at 4:33 PM
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.
July 3, 2025 at 10:28 AM
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.
GitHub - facebookincubator/hsthrift: The Haskell Thrift Compiler. This is an implementation of the Thrift spec that generates code in Haskell. It depends on the fbthrift project for the implementation...
The Haskell Thrift Compiler. This is an implementation of the Thrift spec that generates code in Haskell. It depends on the fbthrift project for the implementation of the underlying transport. - fa...
github.com
April 2, 2025 at 10:49 AM
Haha! I'd love to know which tidbits of advice have risen to this level, it might be useful if I'm reorganising things.
April 2, 2025 at 10:46 AM
Perhaps a chapter on Thrift would be a more useful replacement for the distributed-process chapter.
March 29, 2025 at 7:54 PM
Thanks, I'd forgotten about that post! How insightful 😆
March 29, 2025 at 7:52 PM
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...
hsthrift/common/util/Control/Concurrent/Stream.hs at main · facebookincubator/hsthrift
The Haskell Thrift Compiler. This is an implementation of the Thrift spec that generates code in Haskell. It depends on the fbthrift project for the implementation of the underlying transport. - fa...
github.com
March 29, 2025 at 8:48 AM
Int is 64 bits almost everywhere these days
March 18, 2025 at 7:59 PM
Probably not this time, but I'll be at Zurihac if you're coming to that?
March 1, 2025 at 11:58 AM
Mainly riding my bike probably!
March 1, 2025 at 8:01 AM
Congratulations Mary, enjoy retirement!
February 28, 2025 at 6:53 PM
My standard code review comment: looks like it needs more Control.Exception.bracket
December 3, 2024 at 8:03 AM
How dare you, haggis is delicious
November 18, 2024 at 12:50 PM
Did I ever show you this?
November 17, 2024 at 10:34 PM