-
Proposal to Stress-Test Implementations of C++11 Concurrency
I recently submitted a proposal to NSF’s “small” Computer Systems Research solicitation. The rest of this post contains the body of the proposal, edited a bit for formatting (citations are missing and there are no doubt some leftover latex-isms) and to remove some sections that are tedious to people not sitting on an NSF panel.…
-
What PC-lint is Really For: Enforcing Language Dialects
John Carmack’s piece about using static analyzers is really nice, and he’s right that applying PC-lint to a significant piece of C code results in page after page of warnings. Faced with this problem on a code base I cared about, and not wanting to give up, I first created a config file for PC-lint…
-
Book Beginnings
If a book starts out just right, I’ll keep going back and rereading the first few sentences long after I’ve finished the book. Here are a few that did that to me. Fagles’ translation of the Odyssey: Sing to me of the man, Muse, the man of twists and turns driven time and again off…
-
Bit Puzzle Results
This is the followup piece to Monday’s bit puzzle. First off, the spec for this problem wasn’t clear what to return when both arguments are the same. But let’s look at Carlos’s comment about where this code would be used: If you think of a binary number as a sequence of binary tree decisions on the…
-
Mount Olympus
Today I got out of Salt Lake City’s stifling inversion for a little while.
-
A Bit Puzzle
I love a good bit-level puzzle. Today’s is one I learned about from a comment in a Google+ discussion: Given two words a and b, return the high bits that they have in common, with the highest bit where they differ set, and all remaining bits clear. So 10101 and 10011 yields 10100. Then do…
-
A Different Approach to System Security
I enjoy it when science fiction has something useful to say about computer security. Towards the end of Iain M. Banks’ Matter, there’s a big space battle and we find this passage: “Compromised,” Hippinse told him. “Taken over by the other side. Persuaded by a sort of thought-infection.” “Does that happen a lot, sir?” “It…
-
Pluggable Domain-Specific Testcase Reducers
An important part of effective random testing is providing developers with actionable testcases, and a big part of creating actionable testcases is testcase reduction. Delta debugging, as exemplified by the delta tool, is a good generic reduction technique. However, in many cases, as I discussed the other day here, a domain-specific reducer can do a…
-
How Integers Should Work (In Systems Programming Languages)
My last post outlined some of the possibilities for integer semantics in programming languages, and asked which option was correct. This post contains my answers. Just to be clear: I want practical solutions, but I’m not very interested by historical issues or backwards compatibility with any existing language, and particularly not with C and C++.…