YJIT Compiler for Ruby
After the Refactor: A Path to Faster Rendering with Liquid-C - Shopify

After the Refactor: A Path to Faster Rendering with Liquid-C - Shopify

3/10/2022

What this post added

This post details a refactor of the Liquid-C Virtual Machine to remove the constant pointer from its bytecode instructions. This change allows for more flexible instruction pointer movement, which is a prerequisite for implementing control flow tags like 'If' and 'For'. The refactor involves storing the index of constants in a hash table within the constants array, reducing duplicate elements and decreasing the size of the constants array. While this refactor slightly increased memory usage and parsing time, it is presented as a stepping stone for future performance improvements by enabling the implementation of control flow tags.

Read the original post ↗