Tux Machines
Programming Leftovers
Posted by Roy Schestowitz on Sep 25, 2024
Godot Engine â Godot SDK Integrations
A new Microsoft's proprietary prison GitHub organization to centralize the community efforts to provide support for third-party SDKs for Godot.
Buttondown LLC â Refactoring Invariants
(Feeling a little sick so this one will be short.)
I'm often asked by clients to review their (usually TLA+) formal specifications. These specs are generally slower and more convoluted than an expert would write. I want to fix them up without changing the overall behavior of the spec or introducing subtle bugs.
To do this, I use a rather lovely feature of TLA+. Say I see a 100-line Foo action that I think I can refactor down to 20 lines. I'll first write a refactored version as a separate action NewFoo, then I run the model checker with the property
Rlang â Exploding, Impacting: looking at bioRxiv preprint view dynamics with R
One of the joys of posting a preprint is seeing that people are viewing, downloading and (hopefully) reading your paper.
Rlang â New R Package: Data Science Looks at Discrimination (dsld)
Iâm very pleased to announce a new package, dsld, available on CRAN. This is the work of eight talented undergrad students. I provided the concept and some general guidance, but this is their work.
Red Hat â Register allocation in the Go compiler
As a maintainer of the GCC register allocator (RA), I naturally have a keen interest in the register allocators used in various industrial compilers. For some compilers, like LLVM and Cranelift, there is sufficient documentation, including papers and presentations, to gain a deep understanding of their register allocators (RAs).
Unfortunately, this is not the case for the Go compiler. To gather information about the RA in the Go compiler, I had to delve into its source code. This article outlines my findings.
In summary, the current Go register allocator operates on SSA (Static Single Assignment). The entire Go compiler optimization pipeline operates on SSA.
Taking a broader view, the current Go register allocator comprises the following components (passes), shown in Figure 1 and described below.
Dirk Eddelbuettel â Dirk Eddelbuettel: RcppFastAD 0.0.4 on CRAN: Updated Again
A new release 0.0.4 of the RcppFastAD package use from R in simple C++ applications. This release updates the quick fix in release 0.0.3 from a good week ago. James took a good look and properly disambiguated the statement that lead clang to complain, so we are back to compiling as C++17 under all compilers which makes for a slightly wider reach.