At Facebook we run Haskell on thousands of servers, together handling over a million requests per second. Obviously we’d like to make the most efficient use of hardware and get the most throughput per server that we can. So how do you tune a Haskell-based server to run well?
This release of Stack features 3 major changes, 3 behavior changes, 28 other enhancements, and 12 bug fixes. 29 people contributed to this release.
We wanted to let folks know what happened with all our Summer of Haskell projects: Native metaprogramming in Haskell; GHCVM, a JVM backend for GHC; Completing the LLVM backend for Accelerate; Hackage improvements; Derivable Storable and Prim instances; Visual block-based programming language for CodeWorld; Jupyter for GHCJS; and Live profiling and performance monitoring server.
Implement timer_create and related system calls. This enables GHC support.
extensible is a library for extensible data types. It provides extensible product and sum types parameterized by type-level lists. This tutorial introduces extensible records, an application of the extensible products.
Haskell is famous for being best at parsing things. It’s all due to its great abstractions like Applicative, Alternative and Monad, which let us approach the infinitely complex problems with decomposition. Yet for some reason the area of web-routing hasn’t been approached that way much before.
Algebraic data types make data more flexible, but also prone to a form of generalized Boolean Blindness, making code more difficult to maintain. Luckily, refactoring the issues is completely type-safe.
Thanks for reading! Let us know on Twitter if you liked this issue. Open an issue on GitHub if you think it could be better.