am now in the long process of translating frontend functions from using LMDB with specialized struct types to using the interpreter engine instead.

had to write a binding layer that takes care of conversions to/from string arrays, but now i'm in flow, and translating it all is straightforward.

struct definitions had to be changed to macros (example below) so we can generate all the code we need from them.

#devlog #tukan

i still need to add variadic arguments to the interpreter engine. it's a pretty good fit for datalog since we're only one implicit relation away from iterating through variadic columns, e.g.

element(x) :- some_table(args...), each(x, args...).

#devlog #tukan

table views for debug inspection are now entirely auto-generated. when no type schema for a column is available, formatting just guesses based on what the data looks like.

#devlog #tukan