Write a Blog >>
ICSE 2022
Sun 8 - Fri 27 May 2022
Tue 10 May 2022 22:10 - 22:15 at ICSE room 1-even hours - Mining Software Repositories 4 Chair(s): Joshua Garcia
Thu 12 May 2022 11:10 - 11:15 at ICSE room 2-odd hours - Mining Software Repositories 5 Chair(s): Sonia Haiduc

A decade after its first release, the Go programming language has become a major programming language in the development landscape. While praised for its clean syntax and C-like performance, Go also contains a strong static type system that prevents arbitrary type casting and arbitrary memory access, making the language type-safe by design. However, to give developers the possibility of implementing low-level code, Go ships with a special package called unsafe that offers developers a way around the type-safety of Go programs. The package gives greater flexibility to developers but comes at a higher risk of runtime errors, chances of non-portability, and the loss of compatibility guarantees for future versions of Go.

In this paper, we present the first large-scale study on the usage of the unsafe package in 2,438 popular Go projects. Our investigation shows that unsafe is used in 24% of Go projects, motivated primarily by communicating with operating systems and C code but is also commonly used as a source of performance optimization. Developers are willing to use unsafe to break language specifications (e.g., string immutability) for better performance and 6% of analyzed projects that use unsafe perform risky pointer conversions that can lead to program crashes and unexpected behavior. Furthermore, we report a series of real issues faced by projects that use unsafe, from crashing errors and non-deterministic behavior to having their deployment restricted from certain popular environments. Our findings can be used to understand how and why developers break type-safety in Go and help motivate further tools and language development that could make the usage of unsafe in Go even safer.

Tue 10 May

Displayed time zone: Eastern Time (US & Canada) change

22:00 - 23:00
Mining Software Repositories 4Technical Track / Journal-First Papers / SEIP - Software Engineering in Practice at ICSE room 1-even hours
Chair(s): Joshua Garcia University of California, Irvine
22:00
5m
Talk
Dependency Smells in JavaScript Projects
Journal-First Papers
Abbas Javan Jafari Concordia University, Canada, Diego Costa Concordia University, Canada, Rabe Abdalkareem Carleton University, Emad Shihab Concordia University, Nikolaos Tsantalis Concordia University
DOI Pre-print File Attached
22:05
5m
Talk
Assisting Example-based API Misuse Detection via Complementary Artificial Examples
Journal-First Papers
Maxime Lamothe Polytechnique Montréal, Heng Li Polytechnique Montréal, Weiyi Shang Concordia University
Link to publication DOI Pre-print Media Attached
22:10
5m
Talk
Breaking Type Safety in Go: An Empirical Study on the Usage of the unsafe Package
Journal-First Papers
Diego Costa Concordia University, Canada, Suhaib Mujahid Concordia University, Rabe Abdalkareem Carleton University, Emad Shihab Concordia University
Link to publication Pre-print Media Attached
22:15
5m
Talk
Mining Idioms in the Wild
SEIP - Software Engineering in Practice
Aishwarya Sivaraman University of California, Los Angeles, Rui Abreu Faculty of Engineering, University of Porto, Portugal, Andrew Scott Facebook, Tobi Akomolede Facebook, Satish Chandra Facebook
Pre-print Media Attached
22:20
5m
Talk
AutoTransform: Automated Code Transformation to Support Modern Code Review Process
Technical Track
Patanamon Thongtanunam University of Melbourne, Chanathip Pornprasit Monash University, Kla Tantithamthavorn Monash University
Pre-print Media Attached
22:25
5m
Talk
What Makes a Good Commit Message?Distinguished Paper Award
Technical Track
Yingchen Tian Beijing Institute of Technology, Yuxia Zhang Beijing Institute of Technology, Klaas-Jan Stol University College Cork, Lero, SINTEF, Lin Jiang Beijing Institute of Technology, Hui Liu Beijing Institute of Technology
Pre-print Media Attached

Thu 12 May

Displayed time zone: Eastern Time (US & Canada) change

11:00 - 12:00
11:00
5m
Talk
Assisting Example-based API Misuse Detection via Complementary Artificial Examples
Journal-First Papers
Maxime Lamothe Polytechnique Montréal, Heng Li Polytechnique Montréal, Weiyi Shang Concordia University
Link to publication DOI Pre-print Media Attached
11:05
5m
Talk
What happens in my code reviews? An investigation on automatically classifying review changes
Journal-First Papers
Enrico Fregnan University of Zurich, Switzerland, Fernando Petrulio University of Zurich, Linda Di Geronimo University of Zurich, Switzerland, Alberto Bacchelli University of Zurich
Link to publication Pre-print Media Attached
11:10
5m
Talk
Breaking Type Safety in Go: An Empirical Study on the Usage of the unsafe Package
Journal-First Papers
Diego Costa Concordia University, Canada, Suhaib Mujahid Concordia University, Rabe Abdalkareem Carleton University, Emad Shihab Concordia University
Link to publication Pre-print Media Attached
11:15
5m
Talk
An Empirical Study of Release Note Production and Usage in Practice
Journal-First Papers
Tingting Bi Monash Univerity, Xin Xia Huawei Software Engineering Application Technology Lab, David Lo Singapore Management University, John Grundy Monash University, Thomas Zimmermann Microsoft Research
11:20
5m
Talk
Bus Factor In Practice
SEIP - Software Engineering in Practice
Elgun Jabrayilzade Bilkent University, Mikhail Evtikhiev JetBrains Research, Eray Tüzün Bilkent University, Vladimir Kovalenko JetBrains Research
Pre-print Media Attached
11:25
5m
Talk
BugListener: Identifying and Synthesizing Bug Reports from Collaborative Live Chats
Technical Track
Lin Shi ISCAS, Fangwen Mu Institute of Software Chinese Academy of Sciences, YuMin Zhang Institute of Software, Chinese Academy of Sciences, Ye Yang Stevens Institute of Technology, Junjie Chen Tianjin University, Xiao Chen Monash University, Hanzhi Jiang Institute of Software at Chinese Academy of Sciences, Ziyou Jiang Institute of Software at Chinese Academy of Sciences, Qing Wang Institute of Software at Chinese Academy of Sciences
Pre-print Media Attached

Information for Participants
Tue 10 May 2022 22:00 - 23:00 at ICSE room 1-even hours - Mining Software Repositories 4 Chair(s): Joshua Garcia
Info for room ICSE room 1-even hours:

Click here to go to the room on Midspace

Thu 12 May 2022 11:00 - 12:00 at ICSE room 2-odd hours - Mining Software Repositories 5 Chair(s): Sonia Haiduc
Info for room ICSE room 2-odd hours:

Click here to go to the room on Midspace