This is a great blog post on the WellTyped blog on specialization in Haskell! It's a good reminder that I (or someone) should really get around to getting rid of -fexpose-all-unfoldings and -fspecialize-agressively in the Agda codebase.
The author explains how he is writing a new JIT compiler for PostgreSQL. The author uses a technics described in https://arxiv.org/pdf/2011.13127.pdf, called copy-patch. It’s an old idea with a new name, but it’s fun.
#Quiche#compiler is now alive! (At least Conway's variant of alive). The initial version was slow - about four seconds per generation. It was multiplying coordinates for each cell read and write.
The second variant uses offsets into each liner buffer, and only redraws changed cells. It's now running at three to four generations per second.
@RetroFunPL The syntax isn’t fully formed yet, but semicolons will be optional. It will use line endings as end of statement markers instead. Code can be split across lines either with an explicit \ character or if it ends with an incomplete expression.
One of a couple of features I’m taking from Ruby. A language which, mostly, makes very sensible choices.
This week I added the Peek() and Poke() intrinsics to the #Quiche#compiler. That means I can now write my first non-trivial program.
I spend this morning fixing a few bugs in the parser and code generator and it's successfully generating the assembler file.
The assembler is choking on a couple of issues with identifiers, and the output code has a couple of bugs to do with parameter parsing and result processing.
Now onto deployment ... it's a while since I've built for anything other than the emulator/raw binary.
I changed the deployment system after the last time I built for WinApe. And previously doing such builds was clunky. In theory the new deployment system should make this a lot easier.
@CodingThunder I found the issue immediately. But I won't ever get used to this. I've been a full-time C++ programmer for six years now. I will never get used to this.