Issue 32 2016-12-08
Subscribe now! We'll never send you spam. You can also follow us on Twitter or with our feed. Read more issues in the archives.
Introducing the Hamilton library
The hamilton library is on Hackage! It was mostly a proof-of-concept toy experiment to simulate motion on Bezier curves, but it became usable enough and accurate enough (to my surprise, admittedly) that I finished up some final touches to make it complete and put it on Hackage as a general-purpose physics simulator.
Dhall: A non-Turing-complete configuration language
I’m releasing a new configuration language named Dhall with Haskell bindings. Even if you don’t use Haskell you might still find this language interesting. This language started out as an experiment to answer common objections to programmable configuration files. Almost all of these objections are, at their root, criticisms of Turing-completeness.
The goals of this little hack, called Hyper, is to make use of row polymorphism and other tasty type system features in PureScript to enforce correctly stacked middleware in HTTP server applications. All effects of middleware should be reflected in the types to ensure that otherwise common mistakes cannot be made.
The problem is that even on my machine
ghc --make -j3works better than
ghc --make -j8and I could not get more than 1.5x speedup. I’d like to see 8x speedup. Another problem is quick performance degradation once you exceed number of CPUs. Running
ghc --make -j20on my machine makes things seriously worse: compilation time is longer than in non-parallel mode!
The HaLVM status report, issue 1
One of the things we’re trying to get better about, here at HaLVM headquarters, is communicating with the wider HaLVM and unikernel communities. In particular, during those periods when we’re slowing building out upgrades, documents, or other things for the HaLVM, we tend to go silent.
Golang’s real-time GC in theory and practice
The system we have been building is a pub/sub message bus with an in-memory store of published messages. This version in Go is a rewrite of our first implementation in Haskell. We stopped work on our Haskell version in May, after discovering fundamental latency problems with GHC’s garbage collector.
Two years ago, I wrote a series of blog posts inspired by Oliver Charles’ 24 Days of Hackage, to highlight some of the great work which was being done in the PureScript community. That original series focused on library development, but this year I’ve decided to write a series of short blog posts to highlight some of the work being done on the compiler itself.
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.