Demystifying Compiler Unstable Feature Usage and Impacts in the Rust Ecosystem
Rust programming language is gaining popularity rapidly in building reliable and secure systems due to its security guarantees and outstanding performance. To provide extra functionalities, the Rust compiler introduces Rust unstable features (RUF) to extend compiler functionality, syntax, and standard library support. However, these features are unstable and may get removed, introducing compilation failures to dependent packages. Even worse, their impacts propagate through transitive dependencies, causing large-scale failures in the whole ecosystem. Although RUF is widely used in Rust, previous research has primarily concentrated on Rust code safety, with the usage and impacts of RUF from the Rust compiler remaining unexplored. Therefore, we aim to bridge this gap by systematically analyzing the RUF usage and impacts in the Rust ecosystem. We propose novel techniques for extracting RUF precisely, and to assess its impact on the entire ecosystem quantitatively, we accurately resolve package dependencies. We have analyzed the whole Rust ecosystem with 590K package versions and 140M transitive dependencies. Our study shows that the Rust ecosystem uses 1000 different RUF, and at most 44% of package versions are affected by RUF, causing compiling failures for at most 12%. To mitigate wide RUF impacts, we further design and implement a RUF-compilation-failure recovery tool that can recover up to 90% of the failure. We believe our techniques, findings, and tools can help to stabilize the Rust compiler, ultimately enhancing the security and reliability of the Rust ecosystem.
Wed 17 AprDisplayed time zone: Lisbon change
16:00 - 17:30 | Analytics 2Research Track / Journal-first Papers / Demonstrations at Sophia de Mello Breyner Andresen Chair(s): Grace Lewis Carnegie Mellon Software Engineering Institute | ||
16:00 15mTalk | LogShrink: Effective Log Compression by Leveraging Commonality and Variability of Log Data Research Track Xiaoyun Li Sun Yat-sen University, Hongyu Zhang Chongqing University, Van-Hoang Le The University of Newcastle, Pengfei Chen Sun Yat-sen University Pre-print | ||
16:15 15mTalk | Demystifying Compiler Unstable Feature Usage and Impacts in the Rust Ecosystem Research Track Chenghao Li Zhejiang University, Yifei Wu Zhejiang University, Wenbo Shen Zhejiang University, China, Zichen Zhao Zhejiang University, Rui Chang Zhejiang University, Chengwei Liu Nanyang Technological University, Yang Liu Nanyang Technological University, Kui Ren Zhejiang University DOI Pre-print Media Attached | ||
16:30 15mTalk | Resource Usage and Optimization Opportunities in Workflows of GitHub Actions Research Track Pre-print | ||
16:45 15mTalk | Revealing Hidden Threats: An Empirical Study of Library Misuse in Smart Contracts Research Track Mingyuan Huang Sun Yat-Sen University, Jiachi Chen Sun Yat-sen University, Zigui Jiang Sun Yat-sen University, Zibin Zheng Sun Yat-sen University | ||
17:00 7mTalk | A Grounded Theory of Cross-community SECOs: Feedback Diversity vs. Synchronization Journal-first Papers Armstrong Foundjem Queens University, Ellis E. Eghan University of Cape Coast, Ghana, Bram Adams Queen's University | ||
17:07 7mTalk | Studying the Characteristics of AIOps Projects on GitHub Journal-first Papers Roozbeh Aghili Polytechnique Montréal, Heng Li Polytechnique Montréal, Foutse Khomh École Polytechnique de Montréal | ||
17:14 7mTalk | A First Look at Dark Mode in Real-World Android App Journal-first Papers Suyu Ma Monash University, Chunyang Chen Technical University of Munich (TUM), Hourieh Khalajzadeh Deakin University, Australia, John Grundy Monash University Link to publication DOI Pre-print | ||
17:21 7mTalk | GitBug-Actions: Building Reproducible Bug-Fix Benchmarks with GitHub Actions Demonstrations Nuno Saavedra INESC-ID and IST, University of Lisbon, André Silva KTH Royal Institute of Technology, Martin Monperrus KTH Royal Institute of Technology |