• Memory errors are still one of the main causes of software vulnerabilities and bugs. Low-Fat bounds checking is a new approach for detecting spatial memory errors (bounds errors) using a novel pointer representation, low-fat pointers. The main advantages of Low-Fat bounds checking are: Compatibility: low-fat pointers look like ordinary pointers which helps to achieve high binary compatibility. Speed: it is fast relative to many bounds-checking systems Low Memory Usage: the memory overheads are low as very little meta-data is required. More details and a prototype release of the Low-Fat bounds checker are on GitHub.
    Read More
  • Effective solving of constraint problems often requires designing specific or choosing good search heuristics. Thus, developing general-purpose search strategies is an important component in Constraint Programming. We have introduced a new idea using correlation of conflicts between variables as the basis of search heuristics which can be recorded using a correlation matrix. We propose two specific new variable heuristics using the correlaton matrix, crbs-sum and crbs-max. Preliminary experiments on a variety of different problem benchmarks show that the correlation heuristics are competitive with existing well known and effective search heuristics. Although there are many search heuristics which have been shown effective. It is unclear which search heuristic should be applied on which problem. Furthermore, the performance between search heuristics can vary significantly which makes the wrong choice, non-robust. We propose to automatically select variable search heuristics using on-line reinforcement learning. This leads to several algorithms based on various multi-armed bandit techniques. We show that on-line learning leads to more robust variable search heuristics.
    Read More