Skip to main content

Showing 1–13 of 13 results for author: Mössenböck, H

.
  1. Automated Profile-Guided Replacement of Data Structures to Reduce Memory Allocation

    Authors: Lukas Makor, Sebastian Kloibhofer, Peter Hofer, David Leopoldseder, Hanspeter Mössenböck

    Abstract: Data structures are a cornerstone of most modern programming languages. Whether they are provided via separate libraries, built into the language specification, or as part of the language's standard library -- data structures such as lists, maps, sets, or arrays provide programmers with a large repertoire of tools to deal with data. Moreover, each kind of data structure typically comes with a vari… ▽ More

    Submitted 27 February, 2025; originally announced February 2025.

    Journal ref: The Art, Science, and Engineering of Programming, 2025, Vol. 10, Issue 1, Article 3

  2. Control Flow Duplication for Columnar Arrays in a Dynamic Compiler

    Authors: Sebastian Kloibhofer, Lukas Makor, David Leopoldseder, Daniele Bonetta, Lukas Stadler, Hanspeter Mössenböck

    Abstract: Columnar databases are an established way to speed up online analytical processing (OLAP) queries. Nowadays, data processing (e.g., storage, visualization, and analytics) is often performed at the programming language level, hence it is desirable to also adopt columnar data structures for common language runtimes. While there are frameworks, libraries, and APIs to enable columnar data stores in pr… ▽ More

    Submitted 20 February, 2023; originally announced February 2023.

    Journal ref: The Art, Science, and Engineering of Programming, 2023, Vol. 7, Issue 3, Article 9

  3. Compilation Forking: A Fast and Flexible Way of Generating Data for Compiler-Internal Machine Learning Tasks

    Authors: Raphael Mosaner, David Leopoldseder, Wolfgang Kisling, Lukas Stadler, Hanspeter Mössenböck

    Abstract: Compiler optimization decisions are often based on hand-crafted heuristics centered around a few established benchmark suites. Alternatively, they can be learned from feature and performance data produced during compilation. However, data-driven compiler optimizations based on machine learning models require large sets of quality data for training in order to match or even outperform existing huma… ▽ More

    Submitted 28 June, 2022; originally announced June 2022.

    Journal ref: The Art, Science, and Engineering of Programming, 2023, Vol. 7, Issue 1, Article 3

  4. Capturing High-level Nondeterminism in Concurrent Programs for Practical Concurrency Model Agnostic Record & Replay

    Authors: Dominik Aumayr, Stefan Marr, Sophie Kaleba, Elisa Gonzalez Boix, Hanspeter Mössenböck

    Abstract: With concurrency being integral to most software systems, developers combine high-level concurrency models in the same application to tackle each problem with appropriate abstractions. While languages and libraries offer a wide range of concurrency models, debugging support for applications that combine them has not yet gained much attention. Record & replay aids debugging by deterministically rep… ▽ More

    Submitted 26 February, 2021; originally announced March 2021.

    Journal ref: The Art, Science, and Engineering of Programming, 2021, Vol. 5, Issue 3, Article 14

  5. Supporting On-Stack Replacement in Unstructured Languages by Loop Reconstruction and Extraction

    Authors: Raphael Mosaner, David Leopoldseder, Manuel Rigger, Roland Schatz, Hanspeter Mössenböck

    Abstract: On-stack replacement (OSR) is a common technique employed by dynamic compilers to reduce program warm-up time. OSR allows switching from interpreted to compiled code during the execution of this code. The main targets are long running loops, which need to be represented explicitly, with dedicated information about condition and body, to be optimized at run time. Bytecode interpreters, however, rep… ▽ More

    Submitted 19 September, 2019; originally announced September 2019.

    Comments: Accepted at MPLR 2019. This is the author's version of the work

  6. Asynchronous Snapshots of Actor Systems for Latency-Sensitive Applications

    Authors: Dominik Aumayr, Stefan Marr, Elisa Gonzalez Boix, Hanspeter Mössenböck

    Abstract: The actor model is popular for many types of server applications. Efficient snapshotting of applications is crucial in the deployment of pre-initialized applications or moving running applications to different machines, e.g for debugging purposes. A key issue is that snapshotting blocks all other operations. In modern latency-sensitive applications, stopping the application to persist its state ne… ▽ More

    Submitted 18 September, 2019; v1 submitted 18 July, 2019; originally announced July 2019.

    Comments: This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19), October 21-22, 2019, Athens, Greece, https://doi.org/10.1145/3357390.3361019

  7. arXiv:1907.00863  [pdf, other

    cs.PL cs.SE

    Understanding GCC Builtins to Develop Better Tools

    Authors: Manuel Rigger, Stefan Marr, Bram Adams, Hanspeter Mössenböck

    Abstract: C programs can use compiler builtins to provide functionality that the C language lacks. On Linux, GCC provides several thousands of builtins that are also supported by other mature compilers, such as Clang and ICC. Maintainers of other tools lack guidance on whether and which builtins should be implemented to support popular projects. To assist tool developers who want to support GCC builtins, we… ▽ More

    Submitted 1 July, 2019; originally announced July 2019.

    Comments: Accepted at ESEC/FSE 2019 (see https://esec-fse19.ut.ee/program/research-papers/)

  8. Debugging Native Extensions of Dynamic Languages

    Authors: Jacob Kreindl, Manuel Rigger, Hanspeter Mössenböck

    Abstract: Many dynamic programming languages such as Ruby and Python enable developers to use so called native extensions, code implemented in typically statically compiled languages like C and C++. However, debuggers for these dynamic languages usually lack support for also debugging these native extensions. GraalVM can execute programs implemented in various dynamic programming languages and, by using the… ▽ More

    Submitted 2 August, 2018; originally announced August 2018.

    Comments: 7 pages, 7 figures, accepted at 15th International Conference on Managed Languages & Runtimes (ManLang'18)

  9. Context-aware Failure-oblivious Computing as a Means of Preventing Buffer Overflows

    Authors: Manuel Rigger, Daniel Pekarek, Hanspeter Mössenböck

    Abstract: In languages like C, buffer overflows are widespread. A common mitigation technique is to use tools that detect them during execution and abort the program to prevent the leakage of data or the diversion of control flow. However, for server applications, it would be desirable to prevent such errors while maintaining availability of the system. To this end, we present an approach to handle buffer o… ▽ More

    Submitted 22 November, 2018; v1 submitted 23 June, 2018; originally announced June 2018.

    Comments: Accepted at the 12th International Conference on Network and System Security

  10. Efficient and Deterministic Record & Replay for Actor Languages

    Authors: Dominik Aumayr, Stefan Marr, Clément Béra, Elisa Gonzalez Boix, Hanspeter Mössenböck

    Abstract: With the ubiquity of parallel commodity hardware, developers turn to high-level concurrency models such as the actor model to lower the complexity of concurrent software. However, debugging concurrent software is hard, especially for concurrency models with a limited set of supporting tools. Such tools often deal only with the underlying threads and locks, which is at the wrong abstraction level a… ▽ More

    Submitted 20 August, 2018; v1 submitted 16 May, 2018; originally announced May 2018.

    Comments: International Conference on Managed Languages & Runtimes (ManLang'18)

  11. Introspection for C and its Applications to Library Robustness

    Authors: Manuel Rigger, Rene Mayrhofer, Roland Schatz, Matthias Grimmer, Hanspeter Mössenböck

    Abstract: Context: In C, low-level errors, such as buffer overflow and use-after-free, are a major problem, as they cause security vulnerabilities and hard-to-find bugs. C lacks automatic checks, and programmers cannot apply defensive programming techniques because objects (e.g., arrays or structs) lack run-time information about bounds, lifetime, and types. Inquiry: Current approaches to tackling low-level… ▽ More

    Submitted 4 December, 2017; originally announced December 2017.

    Journal ref: The Art, Science, and Engineering of Programming, 2018, Vol. 2, Issue 2, Article 4

  12. arXiv:1706.07372  [pdf, other

    cs.PL

    A Study of Concurrency Bugs and Advanced Development Support for Actor-based Programs

    Authors: Carmen Torres Lopez, Stefan Marr, Hanspeter Mössenböck, Elisa Gonzalez Boix

    Abstract: The actor model is an attractive foundation for developing concurrent applications because actors are isolated concurrent entities that communicate through asynchronous messages and do not share state. Thereby, they avoid concurrency bugs such as data races, but are not immune to concurrency bugs in general. This study taxonomizes concurrency bugs in actor-based programs reported in literature. Fu… ▽ More

    Submitted 24 April, 2018; v1 submitted 22 June, 2017; originally announced June 2017.

    Comments: - Submitted for review - Removed section 6 "Research Roadmap for Debuggers", its content was summarized in the Future Work section - Added references for section 1, section 3, section 4.3 and section 5.1 - Updated citations

  13. A Concurrency-Agnostic Protocol for Multi-Paradigm Concurrent Debugging Tools

    Authors: Stefan Marr, Carmen Torres Lopez, Dominik Aumayr, Elisa Gonzalez Boix, Hanspeter Mössenböck

    Abstract: Today's complex software systems combine high-level concurrency models. Each model is used to solve a specific set of problems. Unfortunately, debuggers support only the low-level notions of threads and shared memory, forcing developers to reason about these notions instead of the high-level concurrency models they chose. This paper proposes a concurrency-agnostic debugger protocol that decouple… ▽ More

    Submitted 29 October, 2017; v1 submitted 1 June, 2017; originally announced June 2017.

    Comments: International Symposium on Dynamic Languages