This SkillsCast is currently only available to registered attendees of Haskell eXchange 2020
It will be freely available to all Skills Matter members once the Haskell eXchange 2020 early-access window expires on December 04, 2020.
Winter is a WebAssembly interpreter. It was too slow for my use-case, so this is the tale of how I made it 700× faster, with 7 different optimizations.
Winter is a Haskell port of the reference implementation of WebAssembly, and I wanted to use it in one of my projects. It runs small examples just fine, but once they get a bit larger, it was just too slow. So I pulled out the profiler and went hunting for low-hanging fruit, and also less low-hanging fruit, plucking 7 in total:
- Using Vectors instead of Lists
- Difference lists
- Export lists
- Eta-Expanding ReaderT
- Simpler code
- …and a zipper.
YOU MAY ALSO LIKE:
Winter is Coming – Even Faster
Ever since Joachim Breitner got infected with the Haskell fever in 2005, he has been an active part of the community, with many contributions to GHC, and currently most active driving the GHC proposal process. He obtained a PhD in Karlsruhe, Germany, for the inception and formal verification of the Call Arity program transformation, has worked as a post-doc with Stephanie Weirich at the University of Pennsylvania to make formal verification of Haskell practical, and is currently a Senior Researcher and Engineer at the DFINITY Foundation. If this year’s Haskell eXchange were live in London, you might stumble across him in the evening dancing Swing or Tango Argentino, or performing at a stand-up comedy open mic.