Programming Leftovers
-
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 actionNewFoo
, 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.
Go's register allocator: A high-level view
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.