{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,16]],"date-time":"2026-10-16T02:58:24Z","timestamp":1792119504921,"version":"4.4.0"},"publisher-location":"New York, NY, USA","reference-count":93,"publisher":"ACM","license":[{"start":{"date-parts":[[2020,6,11]],"date-time":"2020-06-11T00:00:00Z","timestamp":1591833600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2020,6,11]]},"DOI":"10.1145\/3385412.3386036","type":"proceedings-article","created":{"date-parts":[[2020,6,6]],"date-time":"2020-06-06T21:40:10Z","timestamp":1591479610000},"page":"763-779","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":113,"title":["Understanding memory and thread safety practices and issues in real-world Rust programs"],"prefix":"10.1145","author":[{"given":"Boqin","family":"Qin","sequence":"first","affiliation":[{"name":"Pennsylvania State University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Yilun","family":"Chen","sequence":"additional","affiliation":[{"name":"Purdue University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Zeming","family":"Yu","sequence":"additional","affiliation":[{"name":"Pennsylvania State University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Linhai","family":"Song","sequence":"additional","affiliation":[{"name":"Pennsylvania State University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Yiying","family":"Zhang","sequence":"additional","affiliation":[{"name":"University of California at San Diego, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,6,11]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"AFL. 2019. American fuzzy lop. http:\/\/lcamtuf.coredump.cx\/afl\/."},{"key":"e_1_3_2_1_2_1","volume-title":"Automated Technology for Verification and Analysis (ATVA \u201918).","author":"Baranowski Marek","unstructured":"Marek Baranowski, Shaobo He, and Zvonimir Rakamari\u0107. 2018. Verifying Rust Programs with SMACK. In Automated Technology for Verification and Analysis (ATVA \u201918). Los Angeles, CA."},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3144555.3144560"},{"key":"e_1_3_2_1_4_1","volume-title":"Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI \u201908)","author":"Cadar Cristian","year":"2008","unstructured":"Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI \u201908). Berkeley, CA, USA."},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2018.00046"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1755913.1755945"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502042"},{"key":"e_1_3_2_1_8_1","unstructured":"Yong Wen Chua. 2017. Appreciating Rust\u2019s Memory Safety Guarantees. https:\/\/blog.gds-gov.tech\/appreciating-rust-memory-safety- 438301fee097"},{"key":"e_1_3_2_1_9_1","unstructured":"Catalin Cimpanu. 2019. Microsoft to explore using Rust. https: \/\/www.zdnet.com\/article\/microsoft-to-explore-using-rust"},{"key":"e_1_3_2_1_10_1","unstructured":"Crossbeam. 2019. Tools for concurrent programming in Rust. https: \/\/github.com\/crossbeam-rs\/crossbeam"},{"key":"e_1_3_2_1_11_1","volume-title":"Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation (OSDI \u201918)","author":"Cui Weidong","year":"2018","unstructured":"Weidong Cui, Xinyang Ge, Baris Kasikci, Ben Niu, Upamanyu Sharma, Ruoyu Wang, and Insu Yun. 2018. REPT: Reverse Debugging of Failures in Deployed Software. In Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation (OSDI \u201918). Carlsbad, CA."},{"key":"e_1_3_2_1_12_1","unstructured":"CVE. 2019. Common Vulnerabilities and Exposures. https:\/\/cve.mitre. org\/cve\/"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.65"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924954"},{"key":"e_1_3_2_1_15_1","unstructured":"Ethereum. 2019. The Ethereum Project. https:\/\/www.ethereum.org\/"},{"key":"e_1_3_2_1_16_1","unstructured":"Firecracker. 2019. Secure and fast microVMs for serverless computing. https:\/\/firecracker-microvm.github.io\/"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/964001.964023"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950394"},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2786815"},{"key":"e_1_3_2_1_20_1","volume-title":"Proceedings of the ACM Symposium on Cloud Computing (SOCC\u2019 14)","author":"Gunawi Haryadi S.","unstructured":"Haryadi S. Gunawi, Mingzhe Hao, Tanakorn Leesatapornwongsa, Tiratat Patana-anake, Thanh Do, Jeffry Adityatama, Kurnia J. Eliazar, Agung Laksono, Jeffrey F. Lukman, Vincentius Martin, and Anang D. Satria. 2014. What Bugs Live in the Cloud? A Study of 3000+ Issues in Cloud Systems. In Proceedings of the ACM Symposium on Cloud Computing (SOCC\u2019 14). Seattle, WA."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884811"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00095"},{"key":"e_1_3_2_1_23_1","unstructured":"IotEdge. 2019. IoT Edge Security Daemon. https:\/\/github.com\/Azure\/ iotedge\/tree\/master\/edgelet"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254075"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993544"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.5555\/2387880.2387902"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371109"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158154"},{"key":"e_1_3_2_1_29_1","volume-title":"K-Rust: An Executable Formal Semantics for Rust. CoRR","author":"Kan Shuanglong","year":"2018","unstructured":"Shuanglong Kan, David San\u00e1n, Shang-Wei Lin, and Yang Liu. 2018. K-Rust: An Executable Formal Semantics for Rust. CoRR (2018)."},{"key":"e_1_3_2_1_30_1","unstructured":"Steve Klabnik and Carol Nichols. 2018. The Rust Programming Language. https:\/\/doc.rust-lang.org\/stable\/book\/2018-edition\/"},{"key":"e_1_3_2_1_31_1","unstructured":"Kotlin. 2019. The Kotlin Language. https:\/\/kotlinlang.org\/"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"key":"e_1_3_2_1_33_1","unstructured":"Lazy-static. 2019. A macro for declaring lazily evaluated statics in Rust. https:\/\/github.com\/rust-lang-nursery\/lazy-static.rs"},{"key":"e_1_3_2_1_34_1","volume-title":"Proceedings of the 21th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS \u201916)","author":"Leesatapornwongsa Tanakorn","unstructured":"Tanakorn Leesatapornwongsa, Jeffrey F. Lukman, Shan Lu, and Haryadi S. Gunawi. 2016. TaxDC: A Taxonomy of Non-Deterministic Concurrency Bugs in Datacenter Distributed Systems. In Proceedings of the 21th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS \u201916). Atlanta, GA."},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3132747.3132786"},{"key":"e_1_3_2_1_36_1","volume-title":"JaConTeBe: A Benchmark Suite of Real-World Java Concurrency Bugs. In 30th IEEE\/ACM International Conference on Automated Software Engineering (ASE \u201915)","author":"Lin Ziyi","year":"2015","unstructured":"Ziyi Lin, Darko Marinov, Hao Zhong, Yuting Chen, and Jianjun Zhao. 2015. JaConTeBe: A Benchmark Suite of Real-World Java Concurrency Bugs. In 30th IEEE\/ACM International Conference on Automated Software Engineering (ASE \u201915). Lincoln, NE."},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950309"},{"key":"e_1_3_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.5555\/2591272.2591276"},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168864"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669181"},{"key":"e_1_3_2_1_42_1","unstructured":"Ricardo Martins. 2016. Interior mutability in Rust part 2: thread safety."},{"key":"e_1_3_2_1_43_1","unstructured":"https:\/\/ricardomartins.cc\/2016\/06\/25\/interior-mutabilitythread-safety"},{"key":"e_1_3_2_1_44_1","unstructured":"Miri. 2019. An interpreter for Rust\u2019s mid-level intermediate representation. https:\/\/github.com\/rust-lang\/miri"},{"key":"e_1_3_2_1_45_1","unstructured":"MSRC. 2019. Why Rust for safe systems programming. https:\/\/msrc-blog.microsoft.com\/2019\/07\/22\/why-rust-for-safesystems-programming"},{"key":"e_1_3_2_1_46_1","unstructured":"Octoverse. 2019. The State of Octoverse. https:\/\/octoverse.github.com\/"},{"key":"e_1_3_2_1_47_1","volume-title":"Stack Overflow Developer Survey","author":"Overflow Stack","year":"2016","unstructured":"Stack Overflow. 2016. Stack Overflow Developer Survey 2016."},{"key":"e_1_3_2_1_48_1","unstructured":"https:\/\/insights.stackoverflow.com\/survey\/2016#technologymost-loved-dreaded-and-wanted"},{"key":"e_1_3_2_1_49_1","volume-title":"Stack Overflow Developer Survey","author":"Overflow Stack","year":"2017","unstructured":"Stack Overflow. 2017. Stack Overflow Developer Survey 2017."},{"key":"e_1_3_2_1_50_1","unstructured":"https:\/\/insights.stackoverflow.com\/survey\/2017#most-loveddreaded-and-wanted"},{"key":"e_1_3_2_1_51_1","volume-title":"Stack Overflow Developer Survey","author":"Overflow Stack","year":"2018","unstructured":"Stack Overflow. 2018. Stack Overflow Developer Survey 2018."},{"key":"e_1_3_2_1_52_1","unstructured":"https:\/\/insights.stackoverflow.com\/survey\/2018\/#most-loveddreaded-and-wanted"},{"key":"e_1_3_2_1_53_1","volume-title":"Stack Overflow Developer Survey","author":"Overflow Stack","year":"2019","unstructured":"Stack Overflow. 2019. Stack Overflow Developer Survey 2019."},{"key":"e_1_3_2_1_54_1","unstructured":"https:\/\/insights.stackoverflow.com\/survey\/2019#most-loveddreaded-and-wanted"},{"key":"e_1_3_2_1_55_1","unstructured":"Alex Ozdemir. 2019. Unsafe in Rust: Syntactic Patterns. https: \/\/cs.stanford.edu\/~aozdemir\/blog\/unsafe-rust-syntax"},{"key":"e_1_3_2_1_56_1","unstructured":"Alex Ozdemir. 2019. Unsafe in Rust: The Abstraction Safety Contract and Public Escape. https:\/\/cs.stanford.edu\/~aozdemir\/blog\/unsaferust-escape"},{"key":"e_1_3_2_1_57_1","unstructured":"Parity-ethereum. 2019. The Parity Ethereum Client. https:\/\/github. com\/paritytech\/parity-ethereum\/pull\/11172"},{"key":"e_1_3_2_1_58_1","unstructured":"Parity-ethereum. 2019. The Parity Ethereum Client. https:\/\/github. com\/paritytech\/parity-ethereum\/pull\/11175"},{"key":"e_1_3_2_1_59_1","unstructured":"Parity-ethereum. 2019. The Parity Ethereum Client. https:\/\/github. com\/paritytech\/parity-ethereum\/issues\/11176"},{"key":"e_1_3_2_1_60_1","unstructured":"Quantum. 2019. Quantum. https:\/\/wiki.mozilla.org\/Quantum"},{"key":"e_1_3_2_1_61_1","unstructured":"Rand. 2019. Rand. A Rust library for random number generation. https:\/\/github.com\/rust-random\/rand"},{"key":"e_1_3_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2017.23404"},{"key":"e_1_3_2_1_63_1","unstructured":"Rayon. 2019. A data parallelism library for Rust. https:\/\/github.com\/ rayon-rs\/rayon"},{"key":"e_1_3_2_1_64_1","unstructured":"Redox. 2019. The Redox Operating System. https:\/\/www.redox-os.org\/"},{"key":"e_1_3_2_1_65_1","unstructured":"Redox. 2019. The Redox Operating System. https:\/\/gitlab.redoxos.org\/redox-os\/relibc\/issues\/159"},{"key":"e_1_3_2_1_66_1","volume-title":"Patina: A Formalization of the Rust Programming Language. Technical Report UW-CSE-15-03-02","author":"Reed Eric","year":"2015","unstructured":"Eric Reed. 2015. Patina: A Formalization of the Rust Programming Language. Technical Report UW-CSE-15-03-02. University of Washington."},{"key":"e_1_3_2_1_67_1","unstructured":"Rust-book. 2019. Fearless Concurrency. https:\/\/doc.rust-lang.org\/ book\/ch16-00-concurrency.html"},{"key":"e_1_3_2_1_68_1","unstructured":"Rust-book. 2019. Validating References with Lifetimes. https:\/\/doc. rust-lang.org\/book\/ch10-03-lifetime-syntax.html"},{"key":"e_1_3_2_1_69_1","unstructured":"Rust-clippy. 2019. A bunch of lints to catch common mistakes and improve your Rust code. https:\/\/github.com\/rust-lang\/rust-clippy"},{"key":"e_1_3_2_1_70_1","unstructured":"Rust-nomicon. 2019. The Rustonomicon. https:\/\/doc.rust-lang.org\/ nomicon\/"},{"key":"e_1_3_2_1_71_1","unstructured":"RustSec. 2019. Security advisory database for Rust crates. https: \/\/github.com\/RustSec\/advisory-db"},{"key":"e_1_3_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/265924.265927"},{"key":"e_1_3_2_1_73_1","unstructured":"Servo. 2019. The Servo Browser Engine. https:\/\/servo.org\/"},{"key":"e_1_3_2_1_74_1","unstructured":"Sid Shanker. 2018. Safe Concurrency with Rust. http:\/\/squidarth.com\/ rc\/rust\/2018\/06\/04\/rust-concurrency.html"},{"key":"e_1_3_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2016.23368"},{"key":"e_1_3_2_1_76_1","volume-title":"Stratis: Easy to use local storage management for Linux. https:\/\/stratis-storage.github.io\/","year":"2019","unstructured":"Straits. 2019. Stratis: Easy to use local storage management for Linux. https:\/\/stratis-storage.github.io\/"},{"key":"e_1_3_2_1_77_1","volume-title":"DEF CON China (DEF CON China \u201918\u2019).","author":"Sun Mingshen","unstructured":"Mingshen Sun, Yulong Zhang, and Tao Wei. 2018. When Memory-Safe Languages Become Unsafe. In DEF CON China (DEF CON China \u201918\u2019). Beijing, China."},{"key":"e_1_3_2_1_78_1","unstructured":"Benchmarks Game Team. 2019. Rust versus C gcc fastest programs. https:\/\/benchmarksgame-team.pages.debian.net\/ benchmarksgame\/faster\/rust.html"},{"key":"e_1_3_2_1_79_1","unstructured":"The Rust Team. 2019. Rust Empowering everyone to build reliable and efficient software. https:\/\/www.rust-lang.org\/"},{"key":"e_1_3_2_1_80_1","unstructured":"Threadpool. 2019. A very simple thread pool for parallel task execution. https:\/\/github.com\/rust-threadpool\/rust-threadpool"},{"key":"e_1_3_2_1_81_1","unstructured":"Tikv. 2019. A distributed transactional key-value database. https: \/\/tikv.org\/"},{"key":"e_1_3_2_1_82_1","unstructured":"Tock. 2019. Tock Embedded Operating System. https:\/\/www.tockos. org\/"},{"key":"e_1_3_2_1_83_1","unstructured":"Tock. 2019. unnecessary unsafe tag. Tock issue #1298. https:\/\/github. com\/tock\/tock\/issues\/1298"},{"key":"e_1_3_2_1_84_1","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180250"},{"key":"e_1_3_2_1_85_1","doi-asserted-by":"publisher","DOI":"10.1145\/3297858.3304069"},{"key":"e_1_3_2_1_86_1","unstructured":"Aaron Turon. 2015. FeFearless Concurrency with Rust. https:\/\/blog. rust-lang.org\/2015\/04\/10\/Fearless-Concurrency.html"},{"key":"e_1_3_2_1_87_1","doi-asserted-by":"publisher","DOI":"10.1145\/2976749.2978340"},{"key":"e_1_3_2_1_88_1","volume-title":"Proceedings of the 26th USENIX Conference on Security Symposium (Security \u201917)","author":"Xu Jun","year":"2017","unstructured":"Jun Xu, Dongliang Mu, Xinyu Xing, Peng Liu, Ping Chen, and Bing Mao. 2017. POMP: Postmortem Program Analysis with Hardware-enhanced Post-crash Artifacts. In Proceedings of the 26th USENIX Conference on Security Symposium (Security \u201917). Vancouver, Canada."},{"key":"e_1_3_2_1_89_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2019.00057"},{"key":"e_1_3_2_1_90_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555796"},{"key":"e_1_3_2_1_91_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095832"},{"key":"e_1_3_2_1_92_1","volume-title":"Proceedings of the 27th USENIX Conference on Security Symposium (Usenix Security \u201918)","author":"Yun Insu","year":"2018","unstructured":"Insu Yun, Sangho Lee, Meng Xu, Yeongjin Jang, and Taesoo Kim. 2018. QSYM: A Practical Concolic Execution Engine Tailored for Hybrid Fuzzing. In Proceedings of the 27th USENIX Conference on Security Symposium (Usenix Security \u201918). Berkeley, CA, USA."},{"key":"e_1_3_2_1_93_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950395"}],"event":{"name":"PLDI '20: 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation","location":"London UK","acronym":"PLDI '20","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3385412.3386036","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3385412.3386036","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T18:38:50Z","timestamp":1750185530000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3385412.3386036"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,6,11]]},"references-count":93,"alternative-id":["10.1145\/3385412.3386036","10.1145\/3385412"],"URL":"https:\/\/doi.org\/10.1145\/3385412.3386036","relation":{},"subject":[],"published":{"date-parts":[[2020,6,11]]},"assertion":[{"value":"2020-06-11","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}