CLASS ACTIVITY
Threading Issue Research paper
NOVEMBER 1, 2023
Group Member Details:
1. Bisma Ali 452041
2. Anam Zulfiqar 451395
Research Paper details:
https://sci-hub.se/10.1145/3385412.3386036
Topic Name:
“Understanding Memory and Thread Safety Practices and Issues in Real-World
Rust Programs”
Issue That is specifically handled in this research paper:
• Concurrency Bugs in Rust: Investigating both non-blocking and blocking concurrency
issues, highlighting how these issues manifest in both safe and unsafe code segments
within Rust programs. The study focuses on the challenges arising from Rust's complex
lifetime and safety rules that contribute to concurrency bugs.
• Safety Practices in Rust Programs: Examination of real-world utilization of safe and
unsafe code in Rust.
• Impact of Unsafe Code: Investigating safety issues stemming from the use of 'unsafe'
code in Rust programs.
• Memory Safety Concerns: Analysis of memory-safety issues in Rust, often involving both
safe and unsafe code.
• Suggestions and Recommendations: Providing insights for Rust programmers and
language designers based on empirical study results, aiming to improve Rust software
development.
Improvement and Algorithm
• Safe and Unsafe Code Usage
• Transitioning to Safe Code
• Language and Tool Improvements
• Value for Other Languages
For example, languages like Kotlin also use lifetime to manage resources and can benefit
from our lifetime-related study results. Similarly, languages that have ownership features
(e.g., C++11 std:unique_ptr) can benefit from the ownership-related results.
OS-Specific Solutions:
• OS-Hardware Interfacing
• External Library Utilization
General Solutions:
• Encapsulating Unsafe Operations
• Transitioning to Safe Code
Both OS-specific and general solutions should ensure that unsafe code is minimally used,
thereby improving safety and security within Rust programming practices.
Testing:
• Bug Detection
• Memory and Thread Safety Testing
• Empirical Studies
• Performance Testing
Testing practices are fundamental to validating the safety, performance, and empirical
aspects of Rust code, ensuring its robustness and efficiency in real-world applications.
Limitations:
• Scope
• Incomplete Bug Detection
• Small-scale Empirical Study
Future Work:
• Enhanced Bug Detection
• Broadening Study Scope
• Optimizing Testing Techniques
• Tool Development
• Performance Profiling
• Safety Encapsulation
• Analyzing Language Evolution