Cooking the Books: Formalizing the JMM Implementation Recipes

Cooking the Books: Formalizing the JMM Implementation Recipes - Petri et al. 2015 A decade ago, the semantics of concurrent Java programs, the Java Memory Model (JMM), was revised and redefined... ... this refinement introduced a formalization called the Data-Race Free (DRF) guarantee. Programs that do not have data races (DRF) in their sequentially consistent … Continue reading Cooking the Books: Formalizing the JMM Implementation Recipes

Optimization Coaching for JavaScript

Optimization Coaching for JavaScript - St-Amour & Guo, 2015 Because modern programming languages heavily rely on compiler optimizations for performance, failure to apply certain key optimizations is often the source of performance issues. To diagnose these performance issues, programmers need insight about what happens during the optimization process. Consider the following program snippet from the … Continue reading Optimization Coaching for JavaScript

The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript

The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript - Pradel and Sen, 2015 Updated to fix conditional coercion example: "0" == "false" is false, but "0" == false is true. "JavaScript is notorious for its heavy use of implicit type coercions" - and many of those are … Continue reading The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript

Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes

Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes - Barnett et al. 2015 Earlier this week we saw that pull requests with well organised commits are strongly preferred by integrators. Unfortunately, developers often make changes that incorporate multiple bug fixes, feature additions, refactorings, etc.. These result in changes that are both large and … Continue reading Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes

The Art of Testing Less Without Sacrificing Quality

The Art of Testing Less Without Sacrificing Quality - Herzig et al. 2015 Why on earth would anyone want to test less? Maybe if you could guarantee the same eventually quality, and save a couple of million dollars along the way... By nature, system and compliance tests are complex and time-consuming although they rarely find … Continue reading The Art of Testing Less Without Sacrificing Quality

Work Practices and Challenges in Pull-Based Development

Work Practices and Challenges in Pull-based Development - Gousios et al. 2015 In the recent years, we are witnessing that collaborative, lightweight code review is increasingly becoming the default mechanism for integrating changes, in both collocated and distributed development. Effectively, the pull request (in various forms) is becoming the atomic unit of software change. How … Continue reading Work Practices and Challenges in Pull-Based Development