The SimGrid model checker uses memory introspection (of the heap, stack and global variables) in order to detect the equality of the state of a distributed application at the different nodes of its execution graph. One difficulty is to deal with uninitialised variables. The uninitialised global variables are usually not a big problem as their initial value is 0. The heap variables are dealt with by memseting to 0 the content of the buffers returned by malloc and friends. The case of uninitialised stack variables is more problematic as their value is whatever was at this place on the stack before. In order to evaluate the impact of those uninitialised variables, we would like to clean each stack frame before using them. This could be done with a LLVM plugin. Here is my first attempt to write a LLVM pass to modify the code of a function.
I had a few Joomla posts that I wanted to clean up semi-automatically. Here are a few scripts, to pass the content of the clipboard (or the current selection) through a UNIX filter.
There are some good plugins to export Joomla content to WordPress. However, the free version does not rewrite the URIs. It is quite simple to read the Joomla database and generates a bunch of Apache Redirect directives.
The Wine 🍷 wiki has instructions for building a shared WoW64 Wine : this needs two out of source builds. The issue is that some developement packages are not multiarch co-installable. Another wiki page for Ubuntu recommends setting up a 32-bit LXC. Here is how I did it without a 32-bit container on Debian 🍥 testing.
In the previous episode, I talked about the implementation of a same-page-merging page store. On top of this, we can build same-page-merging snapshots for the SimGrid model checker.
The first (lower) layer of the per-page snapshot mechanism is a page store: its responsibility is to store immutable shareable reference-counted memory pages independently of the snapshoting logic. Snapshot management and representation, soft-dirty tracking will be handled in higher layer.
Many recent games do not provide an option to map the keys/axes of the gamepad to specific actions. They assume that the gamepad is XBox compatible: if it is not the game is completely unusable. SDL2 provides a way to calibrate a gamepad 🎮 in order to map its keys/axes to the “standard” XBox ones.
Per-page shallow snapshots for the SimGrid model checker
Published:
I looked at my options to achieve efficient/cheap snapshots of the simulated application for the Simgrid model checker using copy-on-write. Here I look at another solution to achieve this without using copy-on-write.