-
Asynchronous and non-blocking IO
This post aims to explain the difference between asynchronous and non-blocking IO, with particular reference to their implementation in Java. These two styles of IO API are closely related but have a number of important differences, especially when it comes to OS support.
-
Quirks of the Matlab file format
The Matlab file format has become something of a standard for data exchange in quant finance circles. It is not only handy for those who are using the Matlab interactive environment itself, but also to users working in a diverse spectrum of language, thanks to widespread availability of libraries for reading and writing the files. The format itself also has the handy property of supporting compression – an essential property for keeping disk usage reasonable with working with the highly compressible data that is typical of financial timeseries.
-
Rpath emulation: absolute DLL references on Windows
When creating an executable or shared library on Linux, it’s possible to include an ELF RPATH header which tells the dynamic linker where to search for the any shared libraries that you reference. This is a pretty handy feature because it can be used to nail down exactly which shared library you will link against, without leaving anything up to chance at runtime.
-
GHC-specific Alias Analysis for LLVM
The setup
-
Constraint Kinds for GHC
I recently implemented a powerful new extension to GHC HEAD called
ConstraintKinds
. This (Literate Haskell) post will explain what this means, and how we can exploit it to do some cool stuff.