Advertisement · 728 × 90

Posts by Simon Marlow

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.

9 months ago 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...

9 months ago 2 0 0 0

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

9 months ago 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.

9 months ago 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

9 months ago 9 0 1 0
Indexing Hackage: Glean vs. hiedb · Simon Marlow

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

10 months ago 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.

1 year ago 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.

1 year ago 0 0 0 0
Advertisement

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

1 year ago 1 0 0 0

Thanks, I'd forgotten about that post! How insightful 😆

1 year ago 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...

1 year ago 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?

1 year ago 89 16 15 2

Int is 64 bits almost everywhere these days

1 year ago 1 0 0 0

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

1 year ago 0 0 1 0

Mainly riding my bike probably!

1 year ago 1 0 0 0

Congratulations Mary, enjoy retirement!

1 year ago 2 0 0 0

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

1 year ago 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...

1 year ago 16 3 2 0
Advertisement

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

1 year ago 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.

1 year ago 1 0 1 0

How dare you, haggis is delicious

1 year ago 1 0 1 0
Post image

Did I ever show you this?

1 year ago 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)

1 year ago 39 4 3 1