Rust-lancet: Automated Ownership-Rule-Violation Fixing with Behavior Preservation
Rust is a young programming language with safety memory features by its ownership rules. However, both human-being and automated code generators easily violate ownership rules, and these violations can result in compilation errors. Although rustc, the official Rust compiler, offers some repair hints in its compilation error messages, on a set of 160 erroneous Rust programs, our experiment shows that the repair hint only fixes 45 (28.1%) programs. To enhance the usability of Rust, we present rust-lancet, the first template-based automated Rust ownership violation repair tool with behavior preservation. We introduce two novel components: (1) an iterative template based repair framework, (2) a mental semantic to model developer intention for the erroneous program, and the corresponding symbolic executor to preserve behavior between the pre-patched and patched program. The experiment was conducted on our dataset, 111 bugs from rustc test suits, and 42 additional bugs from StackOverflow. Our results show that Rust-lancet outperforms rustc in success repair rate by 37.2%, 26.79% on gpt-3.5-turbo, and 11.76% on gpt-4. We show that rust-lancet achieves the best performance.
Fri 19 AprDisplayed time zone: Lisbon change
16:00 - 17:30 | Program Repair 4Journal-first Papers / Research Track at Fernando Pessoa Chair(s): João Pascoal Faria Faculty of Engineering, University of Porto and INESC TEC | ||
16:00 15mTalk | Comprehensive Semantic Repair of Obsolete GUI Test Scripts for Mobile Applications Research Track Shaoheng Cao Nanjing University, Minxue Pan Nanjing University, Yu Pei The Hong Kong Polytechnic University, Wenhua Yang Nanjing University of Aeronautics and Astronautics, Tian Zhang Nanjing University, Linzhang Wang Nanjing University, Xuandong Li Nanjing University | ||
16:15 15mTalk | Exploring Experiences with Automated Program Repair in Practice Research Track Fairuz Nawer Meem George Mason University, Justin Smith Lafayette College, Brittany Johnson George Mason University | ||
16:30 15mTalk | PyTy: Repairing Static Type Errors in Python Research Track Yiu Wai Chow University of Stuttgart, Luca Di Grazia Università della Svizzera italiana (USI), Michael Pradel University of Stuttgart Link to publication DOI Pre-print File Attached | ||
16:45 15mTalk | Rust-lancet: Automated Ownership-Rule-Violation Fixing with Behavior Preservation Research Track Wenzhang Yang University of Science and Technology of China, Linhai Song Programme Committee, Yinxing Xue University of Science and Technology of China | ||
17:00 7mTalk | Improving Automated Program Repair with Domain Adaptation Journal-first Papers | ||
17:07 7mTalk | Invalidator: Automated Patch Correctness Assessment Via Semantic and Syntactic Reasoning Journal-first Papers Le-Cong Thanh The University of Melbourne, Duc-Minh Luong Hanoi University of Science and Technology, Xuan-Bach D. Le University of Melbourne, David Lo Singapore Management University, Nhat-Hoa Tran Hanoi University of Science and Technology, Quang-Huy Bui Hanoi University of Science and Technology, Quyet Thang Huynh Hanoi University of Science and Technology Media Attached |