New #blog post alert!

I muse about research some of my grad students and I did around independently evaluating some #OpenBSD anti-ROP mitigations, and I bid farewell to being an OpenBSD developer.

https://briancallahan.net/blog/20260322.html

#freebsd #netbsd #dragonflybsd #bsd #unix #linux #compiler #compilers #rop #research

Semi-retirement, or, really, changing my relationship with the BSDs - Dr. Brian Robert Callahan

Okay, now I have a simple serialized form for the IR and a simple emulator that can execute that serialized IR.

Being able to validate the IR before and throughout optimization will hopefully save some time chasing (some) bugs in final output code backwards through the guts of the compiler....

https://github.com/swetland/spl/blob/dev/iremu/iremu.c

#Projects #Compiler

Think I probably should just go ahead and write a little interpreter for the IR, so I can use the same test suite to validate that the IR is correct... and that the optimized IR is still correct... before then validating the generated code from the IR...

#Projects #Compiler

GraphViz is both a very handy tool and almost always a "now you have two problems" situation...

Updated the compiler to be able to spit out .dot files of IR, took way too long fiddling with the generated dot descriptions, and I still don't really love the output, but it's nice to have graphs available.

#Projects #Compiler

Designing around with my own toy #programming language, #compiler and #devtools is my Roman Empire.
很多 Python 加速的方法

Gea-Suan Lin's BLOG

Some progress on the #fuzix #compiler again. The INS8070 now passes all the test sets, and 6502 has passed the main ones (need to do some coverage testing and the like plus a lot of tuning yet).

Still a few problems with the TMS7000 but it's also getting there.

Next job is mostly to tune the 6502 compiler, test it on a lot more code and see if the goal of getting code much denser than cc65 has worked out as well as I hope.

#retrocomputing #8bit

I occasionally run into bugs in the compiler while writing (more of) the compiler (compiled by the compiler), and if they're not critical, sometimes I'll lazily throw them on the TODO list so I can keep working on the New Shiny instead of pausing to bugfix.

Discovered some cases where the stage1/stage2 compiler's error detection is less robust than the stage0 transpiler, resulting in me wasting time debugging some dumb typos while working on stage3 IR generation today...

#Projects #Compiler

Finding the balance for writing-a-bunch-of-new-code in a personal project is always fun.

I want to checkpoint often enough that if I can recover from mistakes without too much pain, but I definitely don't want to be committing just a constant spew of super-tiny changes that do little in isolation.

I sort of split the difference by trying to reasonably summarize the component micro-commits, as it were. Also try to ensure everything stays buildable.

https://github.com/swetland/spl/commit/096751c191bb58dc22b6fdbf70cde6d8884b4262

#Projects #Compiler

IR generation now includes (often extraneous) phis, blocks are ordered reasonably, and overall shape is looking SSA-ish.

Using the Filled/Sealed approach from Braun 2013 for phi generation, and doing a bit of simple direct-to-SSA-from-AST assembly similar to that described in Brandis/Mössenböck 1994.

Need to explore some more complex test cases and finish up codegen for struct/array access, etc, and then it'll be on to adventures in register allocation.

#Projects #Compiler