ECOOP 2018
Sun 15 - Sat 21 July 2018 Amsterdam, Netherlands
co-located with ECOOP and ISSTA 2018
Wed 18 Jul 2018 11:20 - 11:40 at Zurich II - Porting and Repair Chair(s): Julian Dolby

Software typically outlives the platform that it was originally written for. To smooth the transition to new tools and platforms, programs should depend on the underlying platform as little as possible. In practice, however, software build processes are highly sensitive to their build platform, notably the implementation of the compiler and standard library. This makes it difficult to port existing, mature software to emerging platforms—web based runtimes like WebAssembly, resource-constrained environments for Internet-of-Things devices, or innovative new operating systems like Fuchsia.

We present Tuscan, a framework for conducting automatic, deterministic, reproducible tests on build systems. Tuscan is the first framework to solve the problem of reproducibly testing program builds cross-platform at massive scale. We also wrote a build wrapper, Red, which hijacks builds to automatically fix common failures that arise from platform dependence—allowing the test harness to ignore known errors and discover errors later in the build. On the platform on which the most programs failed to build, using Red rescued 48% of builds from failing, and allowed an additional 34% of builds to proceed further before failing. Authors of innovative new platforms can use Tuscan and Red to test the extent of platform dependence in the software ecosystem, and to quantify the porting effort necessary to build legacy software on new platforms.

We evaluated Tuscan by using it to build an operating system distribution, consisting of 2,699 Red-wrapped programs, on four platforms, yielding a `catalog’ of the most common portability errors. This catalog informs data-driven porting decisions and motivates changes to programs, build systems, and language standards; systematically quantifies problems that platform writers have hitherto discovered only on a costly and ad-hoc basis; and forms the basis for a common substrate of portability fixes that developers and distributors can apply to their software.

Wed 18 Jul

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

11:00 - 12:30
Porting and RepairISSTA Technical Papers at Zurich II
Chair(s): Julian Dolby IBM Thomas J. Watson Research Center
11:00
20m
Talk
Search-Based Detection of Deviation Failures in the Migration of Legacy Spreadsheet Applications
ISSTA Technical Papers
Mohammad M. Almasi University of Manitoba, Hadi Hemmati University of Calgary, Gordon Fraser University of Passau, Phil McMinn University of Sheffield, Janis Benefelds SEB Life and Pensions Holding AB
11:20
20m
Talk
Making Data-Driven Porting Decisions with Tuscan
ISSTA Technical Papers
Kareem Khazem University College London, Earl T. Barr University College London, Petr Hosek Google, Inc.
11:40
20m
Talk
Comparing developer-provided to user-provided tests for fault localization and automated program repair
ISSTA Technical Papers
René Just University of Massachusetts, USA, Chris Parnin NCSU, Ian Drosos University of California, San Diego, Michael D. Ernst University of Washington, USA
12:00
20m
Talk
Shaping Program Repair Space with Existing Patches and Similar Code
ISSTA Technical Papers
Jiajun Jiang Peking University, Yingfei Xiong Peking University, Hongyu Zhang The University of Newcastle, Qing Gao Peking University, Xiangqun Chen Peking University
Pre-print
12:20
10m
Q&A in groups
ISSTA Technical Papers