Top picks:
- Bot attack on Trac pummels GHC HQ productivity! Do you know a thing or two about hardening web apps? Can you help?
- A month ago you read about the absence of a correct operational spec for Core. Christiaan Baaij proffers rewriting rules for something "very much like Core" from his 2014 thesis on Digital Circuits in CλaSH, a tool designed for Computer Architecture for Embedded Systems (CAES). The consensus is that they probably also work for GHC Core.
- Neil Mitchell reports Unable to load package Win32-2.3.1.0. The problem? SetWindowLongPtrW exists only on 64-bit. The haskell win32 shim wasn't switching to SetWindowLongW on 32-bit. Darren Grant steps up to offer a fix, which Austin Seipp promptly checks in.
- Ki Yung Ahn asks for a "wrapper that lifts actions of (State s1 a) to (State (s1,s2) a). " The answer? A function called "zoom" in lens libraries.
- Chris Done has started the ball rolling on GPG-based package signing. So far, Michael Snoyman and Neil Mitchell have had their keys signed by Chris. He invites others to join the party.
- Levant Erkok joins Lennart Augustsson in hitting a bug with signed zeros. The function isNegativeZero breaks under optimizations.
- James Stevenson over at Safari Books Online reveals how they use Haskell to parse web logs more efficiently than Python. The top comment at Hacker News observes the absence of a proper benchmark pitting Python vs Haskell. James responds that they did an informal comparison that showed "the number of lines parsed/second [with Python] was far smaller than the attoparsec-based parser."
Elsewhere, Luke Randall submits the link on reddit and thinks it's a "very gentle intro to parsing using attoparsec".
- Ian Ross announces a new C2HS release christened "Snowmelt". Originally authored by Manuel Chakravarty, C2HS eases the pain of manually creating FFI shims for C libraries. The latest release, thanks to work contributed by Philipp Balzarek, achieves better cross-language alignment of C enum and Haskell Enum types, among other improvements. Reddit discussion here.
- Michael Snoyman announces FPComplete's open sourcing of their IDE backend, comprising a wrapper around the GHC API.
- Jon Sterling at PivotCloud hits an STM TQueue bug initially reported by John Lato seven months ago. A sufficiently fast writer can cause the reader to never get scheduled, which leads to live-lock in Jon's production code. The fix looks to be as simple as lazifying a case into a let in readTQueue. Curiously, the code uses let in Simon Marlow's book on Haskell concurrency but not in the STM package you have on your machine.
Tweets of the week:
- Michael Neale: Haskell Quickcheck enters a bar, asks for 1 beer, 42 beers, -Inifinity beers, shaves bartenders beard, sets off a tactical nuke.
- Dierk König: #Haskell is the gold standard for programming languages and #Frege makes it available on the #JVM