Ad infinitum
Quality is fundamental in any job, and software is no exception. Although fairly good software is relatively easy to do, really good software is an art that few can truly reach. While in some places...
View ArticleThe LLVM compilation infrastructure
I’ve been playing with LLVM (Low-Level Virtual Machine) lately and have produced a simple compiler for a simple language. The LLVM compilation infrastructure (much more than a simple compiler or...
View ArticleSLC 0.2.0
My pet compiler is now sufficiently stable for me to advertise it as a product. It should deal well with the most common cases if you follow the syntax, as there are some tests to assure minimum...
View ArticleBarrelfish
Minix seems to be inspiring more operating systems nowadays. Microsoft Research is investing on a micro-kernel (they call it multi-kernel, as there are slight differences) called Barrelfish. Despite...
View ArticleProbabilistic processor and the end of locks
Every now and then, when I’m bored with normal work, I tend to my personal projects. For some reason, that tends to be mid-year, every year. So, here we go… Old ideas, new style This time was an old...
View ArticleZero-cost exception handling in C++
C++ exception handling is a controversial subject. The intricate concepts are difficult to grasp, even to seasoned programmers but, in complexity, nothing compares to its implementation. I can’t...
View ArticleC++ class sizes
In a recent struggle to define the class size in C++, I thought would be good to share some of my findings, since there isn’t much about it on the net. The empty class size is all over the place,...
View ArticleFreeCell puzzles solver API
This is a little pet project I did a while ago. It’s a FreeCell puzzle‘s solver API. The idea is to provide a basic validation engine and board management (pretty much like my old chess validation), so...
View ArticleK-means clustering
Clustering algorithms can be used with many types of data, as long as you have means to distribute them in a space, where there is the concept of distance. Vectors are obvious choices, but not...
View ArticleLLVM Vectorizer
Now that I’m back working full-time with LLVM, it’s time to get some numbers about performance on ARM. I’ve been digging the new LLVM loop vectorizer and I have to say, I’m impressed. The code is well...
View Article