ECOOP 2022
Mon 6 June - Thu 7 July 2022 Berlin, Germany
Thu 30 Jun 2022 15:00 - 15:30 at Zoom - VCOOP 7 Chair(s): Philipp Haller

Using a stack for managing the local state of procedures as popularized by Algol is a simple but effective way to achieve a primitive form of automatic memory management. Hence, the call stack remains the backbone of most programming language runtimes to the present day. However, the appealing simplicity of the call stack model comes at the price of strictly enforced limitations: since every function return pops the stack, it is difficult to return stack-allocated data from a callee upwards to its caller—especially variable-size data such as closures.

This paper proposes a solution by introducing a small tweak to the usual stack semantics. We design a type system that tracks the underlying storage mode of values, and when a function returns a stack-allocated value, we just don’t pop the stack! Instead, the stack frame is de-allocated together with a parent the next time a heap-allocated value or primitive is returned. We identify a range of use cases where this delayed-popping strategy is beneficial, ranging from closures to trait objects to other types of variable-size data. Our evaluation shows that this execution model reduces heap and GC pressure and recovers spatial locality of programs improving execution time between 10% and 25% with respect to standard execution.

Thu 30 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

15:00 - 16:30
VCOOP 7Research Papers at Zoom
Chair(s): Philipp Haller KTH
What If We Don’t Pop the Stack? The Return of Second-Class ValuesArtifacts Evaluated - FunctionalVCOOP 2022
Research Papers
Anxhelo Xhebraj Purdue University, Oliver Bračevac Purdue University, Guannan Wei Purdue University, Tiark Rompf Purdue University
Link to publication DOI
NWGraph: A Library of Generic Graph Algorithms and Data Structures in C++20VCOOP 2022
Research Papers
Andrew Lumsdaine TileDB, Inc., University of Washington, Pacific Northwest National Laboratory, Luke Dalessandro Indiana University, Jesun Sahariar Firoz Pacific Northwest National Lab, Xu Liu University of Washington, Phil Ratzloff SAS, Scott McMillan Carnegie Mellon University, Marcin Zalewski, Kevin Deweese Cadence
Prisma: A tierless language for enforcing contract-client protocols in decentralized appsArtifacts Evaluated - ReusableArtifacts Evaluated - FunctionalVCOOP 2022ECOOP 2022
Research Papers
David Richter Technical University of Darmstadt, David Kretzler Technical University of Darmstadt, Pascal Weisenburger University of St. Gallen, Guido Salvaneschi University of St. Gallen, Sebastian Faust Technical University of Darmstadt, Mira Mezini TU Darmstadt
Pre-print Media Attached