Haven’t updated my blog lately. I was mostly busy with a paper submission due a few days ago. Now that paper is submitted, I am ready to prepare for another one.
Time flies, and my happy summer time is less than 1.5 months remaining. I am hoping to finish one paper (expecting to get this done by end of July), and start to work on another, and help my labmates with others.
Template specialization is useful but sometimes hard to master. Today I bumped into a situation I did not fully understand before but managed to resolve after all. I’d like to share some experiences here:
Throughout the upper half of 2013, I was mainly working on two things: performance optimization and API.
Performance has been improved by nearly 20 fold since last September. We were able to diagnose the performance bugs in the original Mace code, and also found a better architecture of the fullcontext runtime. Maybe I would write a paper about the optimization some time.
I am recently working on a better fullcontext C++ API. The goal is, without impacting the performance, make the fullcontext API much easier so that writing a fullcontext application in C++ is straightforward and does not require much effort. In particular, previously most of the features were generated from the perl compiler, which translates the Mace syntax into corresponding (simple) C++ constructs. Because C++ is such a feature-rich language, it makes sense to implement most of features in C++ constructs. After several iteration of reimplementation, it is now possible to directly exploit C++ language features: overloading, overriding, inheritance, templates, template metaprogramming to provide an API straightforward to C++ programmers.
After TIME’s Mar. 4 special issue “Bitter Pill”, the US government published a list of actual medical cost of the most common treatments, compiled from the data submitted from the hospitals for medicaid/medicare reimbursement. Since hospitals in the US are mostly either nonprofit/government-owned, in theory the cost should be equal to the bill. However, the data shows great disparity between the price tag that hospitals bill patients, partly because insurance companies typically negotiate deep discount with hospitals.
The great news is that the report has triggered public awareness, and the medical cost should become more transparent (hopefully).
Backward is a useful tool for C++ developers for diagnosing bugs.
In a nut shell, when a program terminates abnormally, Backward prints out the line in the source code that causes the trouble. It does this by catching signals and relies on either elfutils or GNU/binutils libraries to print out the debugging symbols in the executable.
To use it is as simple as 1, 2 3:
include backward.hpp in the source file
compile the source code with debugging symbols. i.e. compile with -g flag.