• Hacked on brilhs. Moving forward I need to restructure the instruction data constructors to better reflect the real definition.

  • Hacked / experimented with wasmtime. Mostly writing some benchmarks and trying to figure out how Criterion decides how many iterations are ideal for each bench.

  • Hacked on a side project that I’m working on related to Crafting IDE-Ready Compilers. I’m mostly interested in the static analysis side of this subject.


  • Hacked a bit more on Bril. I’m happy with the way I have defined the data constructors for each instruction. Next steps:
    • Create a fromJSON function to load programs from their canonical JSON representation.
    • Create a toJSON function to convert programs to their canonical JSON representation.
    • Create a toText function to convert programs to their textual representation. (This is probably mostly a nice to have)


  • Hacked on brilhs; focused on implementing Aeson’s FromJSON for Program. I’ve used Aeson lightly in the past and didn’t realize until now that making use of Haskell’s pattern matching, it’s the right way to define parseJSON for a type when it can be constructed from several JSON values:

    instance FromJSON MyType where
      parseJSON (Strint s) =
      parseJSON (Object o) =


  • Hacked on benchmarks for Lucet, using WASI. I find Wasmtime’s API to be friendlier.