• The Sad State of Symbol Aliases

    This point continues my quest to condense and write down some of the folklore surrounding assemblers & linkers. In this case, I recently came across a situation where it would be useful to be able to generate an object file that contained an alias for a symbol defined elsewhere. For example, I want an object file to export a symbol foo that aliases bar, such that when any use site of foo is linked against the object file that use site then behaves exactly as if it had referenced bar instead.

    Read on →

  • Everything You Never Wanted To Know About DLLs

    I’ve recently had cause to investigate how dynamic linking is implemented on Windows. This post is basically a brain dump of everything I’ve learnt on the issue. This is mostly for my future reference, but I hope it will be useful to others too as I’m going to bring together lots of information you would otherwise have to hunt around for.

    Read on →

  • Fixing "files could not be moved" error in Boot Camp Assistant

    Recently I’ve been trying to install Windows on an OS X laptop by using Boot Camp. However, every time the Boot Camp Assistant would tell me that “some files could not be moved” during the creation of the Windows partition. The most commonly suggested solution is a total reinstall of OS X, which I was absolutely not willing to perform.

    Read on →

  • Security implications of PEP 383

    I’ve been looking into improving GHC’s support for non-ASCII text, and my investigations have lead to me to PEP 383.

    Read on →

  • How to build 32/64 bit fat (universal) binaries

    The OS X version of the Glasgow Haskell Compiler compiles Haskell into 32-bit code. Unfortunately, this means that if you are on a system where it is the default for libraries to be built in 64-bit mode, you tend to get errors when linking Haskell code telling you that you are trying to link 32-bit code against 64-bit code.

    Read on →