Adding JSON 5 to json.h

I’ve added JSON 5 support to my json.h library. For those not in the know, JSON 5 (http://json5.org/) is a modern update to the JSON standard, including some cool features like unquoted keys, single quoted keys and strings, hexdecimal numbers, Infinity and NaN numbers, and c style comments! As is sticking with the design of my lib - each of the features can be turned on individually if you don’t want the full shebang, or just add json_parse_flags_allow_json5** **to enable the entire feature set.

Adding loops (MPC -> LLVM for the Neil Language #5)

This is part of a series, the first four parts of the series can be found at: Hooking up MPC & LLVM Cleaning up the parser Adding type identifiers Adding branching In this post, we’ll cover how to add loops to our little toy language I’m calling Neil - Not Exactly an Intermediate Language. To keep things simple, I’ve decided to add loops of the form: Grammar Changes We need to add a new kind of statement to the grammar, one for our while loops:

Adding branching (MPC -> LLVM for the Neil Language #4)

This is part of a series, the first three parts of the series can be found at: Hooking up MPC & LLVM Cleaning up the parser Adding type identifiers In this post, we’ll cover how to add branching support to our little toy language I’m calling Neil - Not Exactly an Intermediate Language. To keep things simple, I’ve decided to add branching of the form: With the following caveats: we will not support else branches we will only support <.

Introducing YARI-V - an experiment on SPIR-V compression

SPIR-V is a simple binary intermediate language used for graphics shaders and compute kernels. Wearing my work hat (I work at Codeplay Software Ltd.) I have been contributing to the SPIR-V specification since 2014 as one of the authors. SPIR-V’s primary goals are (as according to me): Have a regular binary structure. Be easily extendable. Be easy to validate for correctness. Be easy to produce from compiler toolchains. Be easy to consume in tools and drivers.

spirv-stats update - exposing more information

In a previous post I introduced a little command line tool spirv-stats I’ve been working on. Since doing the initial version, I’ve extended the information the tool will give you based on some queries I had on the SPIR-V binaries we were using - in the GitHub pull request here. For the most commonly used opcodes, I’ve tried to break them down to understand a little more about the shape of the opcodes.