schilk happens



Tags:

Stuff

Progressive encoding and decoding of 'repeated' protobuffer fields.

Saturday, 24 January 2026

I have found Google's Perfetto trace viewer to be a really useful tool to visualize arbitrary time-based traces by converting them into the protobuffer-based format that Perfetto uses. This is how both Tonbandgerät and CircumSpect work.

Especially with CircumSpect, the traces I am generating quickly reach into the millions of TracePacket messages, and upwards of a gigabyte in size. This makes bundling them all into a single Trace message that gets encoded or decoded in a single pass infeasible, which lead me to dig into the encoding scheme to manually implement a streaming encoder and decoder.

Read More...

Working with external warnings and diagnostics in NVIM.

Tuesday, 20 January 2026    Tags: nvim, rtl

Compilers and tools in the VLSI and RTL world often produce a very large number of warnings and errors when run. I was interested in being able to quickly see all and navigate these diagnostics directly in (Neo)Vim.

This is easily achievable using the :make command and compiler plugins, or by manually generating diagnostics with a lua script.

Read More...

Managing project-specific NVIM configuration.

Monday, 19 January 2026    Tags: nvim

While my neovim configuration works out of the box for most of my projects, I have increasingly encountered situations where I need to adjust certain aspects on a per-project basis.

As with anything related to neovim configuration there are about 50 different ways this can be achieved, and because neovim is usually configured with executable code instead of declarative config files, a few gotchas that might not be immediately obvious.

Read More...

Tags: