Simon Marlow's Avatar

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.

602 Followers  |  176 Following  |  23 Posts  |  Joined: 15.11.2024  |  1.4712

Latest posts by simonmar.bsky.social on Bluesky

Browsing Stackage with VS Code and Glean Β· Simon Marlow

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.

09.07.2025 09:07 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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...

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...

09.07.2025 09:04 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Yep, hoping we can make it useful for non-Meta folks. And it's just fun to hack on.

08.07.2025 16:33 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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.

03.07.2025 10:28 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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

03.07.2025 10:28 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Indexing Hackage: Glean vs. hiedb Β· Simon Marlow

Blog post: Indexing Hackage: Glean vs. hiedb
simonmar.github.io/posts/2025-0...

22.05.2025 12:44 β€” πŸ‘ 10    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0
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...

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.

02.04.2025 10:49 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Haha! I'd love to know which tidbits of advice have risen to this level, it might be useful if I'm reorganising things.

02.04.2025 10:46 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Perhaps a chapter on Thrift would be a more useful replacement for the distributed-process chapter.

29.03.2025 19:54 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks, I'd forgotten about that post! How insightful πŸ˜†

29.03.2025 19:52 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
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...

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...

29.03.2025 08:48 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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?

28.03.2025 15:01 β€” πŸ‘ 87    πŸ” 17    πŸ’¬ 14    πŸ“Œ 2

Int is 64 bits almost everywhere these days

18.03.2025 19:59 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Probably not this time, but I'll be at Zurihac if you're coming to that?

01.03.2025 11:58 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Mainly riding my bike probably!

01.03.2025 08:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Congratulations Mary, enjoy retirement!

28.02.2025 18:53 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Yesterday I left Meta after 12 years. Freedom feels good!

28.02.2025 13:02 β€” πŸ‘ 43    πŸ” 0    πŸ’¬ 4    πŸ“Œ 0
Preview
Indexing code at scale with Glean We’re sharing details about Glean, Meta’s open source system for collecting, deriving and working with facts about source code. In this blog post we’ll talk about why a system like Glean is importa…

"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...

19.12.2024 17:51 β€” πŸ‘ 16    πŸ” 3    πŸ’¬ 2    πŸ“Œ 0

My standard code review comment: looks like it needs more Control.Exception.bracket

03.12.2024 08:03 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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.

19.11.2024 18:27 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

How dare you, haggis is delicious

18.11.2024 12:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Did I ever show you this?

17.11.2024 22:34 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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)

17.11.2024 11:05 β€” πŸ‘ 39    πŸ” 4    πŸ’¬ 3    πŸ“Œ 1

@simonmar is following 20 prominent accounts