ISSTA 2024 Workshops
33rd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2024)
Powered by
Conference Publishing Consulting

19th ACM International Workshop on Implementation, Compilation, Optimization of OO Languages, Programs and Systems (ICOOOLPS 2024), September 20, 2024, Vienna, Austria

ICOOOLPS 2024 – Proceedings

Contents - Abstracts - Authors

19th ACM International Workshop on Implementation, Compilation, Optimization of OO Languages, Programs and Systems (ICOOOLPS 2024)

Frontmatter

Title Page


Welcome from the Chairs
Welcome to the 2024 edition of International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS 2024), held on September 20th at the Vienna University of Technology, co-located with ECOOP and ISSTA 2024.

ICOOOLPS 2024 Organization
Welcome to the 2024 edition of International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS 2024), held on September 20th at the Vienna University of Technology, co-located with ECOOP and ISSTA 2024.

Keynote

Miri: Practical Undefined Behavior Detection for Rust (Keynote)
Ralf Jung
(ETH Zurich, Switzerland)
Rust is most well-known for it strong type system, guaranteeing memory safety and thread safety despite a low-level programming paradigm that does not require a garbage collector. However, not all code can be written in the confines of a safe type system: sometimes, the programmer has to be more clever than the compiler permits. This is where unsafe Rust comes in, a set of additional operations that come with great power and great responsibility. They give programmers the power to program directly against the underlying machine model, side-stepping all the limitations of the type system. However, it is the programmer’s responsibility to ensure that the preconditions of these unsafe operations are maintained, or else runtime behavior is entirely unconstrained – the infamous Undefined Behavior. Miri is a tool that helps programmers deal with this responsibility. Specifically, Miri can execute Rust code in a way that detects (almost) all Undefined Behavior. It is trivial to deploy, requiring no annotations and being distributed with the Rust nightly toolchain. Miri has found numerous bugs in real-world code and has become a standard tool for unsafe Rust programmers. That makes it the first practical tool for reliably detecting Undefined Behavior – in any language. In this talk, I will give an overview of what kinds of bugs Miri is able to find, how Miri works, and how it helps in the ongoing effort of formally specifying the Rust language.

Publisher's Version

Paper

Stack-Copying Delimited Continuations for Scala Native
Cao Nguyen Pham and Martin Odersky
(EPFL, Switzerland)
Scala, an industrial-strength functional and object-oriented programming language, is in need for an ergonomic approach to asynchronous programming. Project Loom provides direct-style concurrency to Scala on the JVM, which leaves its low-footprint high-performance backend Scala Native looking for an equivalent mechanism. We present a design and implementation of delimited continuations, a powerful control flow mechanism that provides the fundamental building block for direct-style concurrent and effectful programming, in Scala Native. Our implementation aims to preserve the unique advantages of the Native target: zero-cost C interoperability, runtime modularity and debugger compatibility. Through a detailed discussion of the implementation, we show that despite the limitations with stack address stability, it meets all the requirements of Scala Native while exhibiting comparable performance to our JVM counterpart.

Publisher's Version

proc time: 0.86