Monday, November 12, 2012

Debugging using runtime assertions

During the past week Jan presented the ongoing work on Acumen's enclosure semantics at the CERES Open Day. Jan has also been working on debugging the enclosure interpreter. Walid helped to identify and Jan corrected a bug in the way that default field components were handled by the enclosure interpreter.  Adam and Jan identified and corrected a bug in the way the enclosure interpreter was identifying and handling events that lead to inconsistent states. The highly effective method was to inject runtime assertions that encapsulate invariants of the program at boundaries between sub-programs of the interpreter. This way the offering states could easily be reported as assertion failures without the need to sift through what otherwise tend to be long and cluttered logs.