VLDB 2026 Research / reviewers in the wild / expert
Sebastián Krynski
dblp:275/9939
· DBLP profile ↗
6ranked-venue papers
1as first author
5since 2021 · last 2026
0000-0002-4124-0225ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 6 · 1 first-author · 5 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Characterizing Type Feedback in Just-In-Time CompilationabstractArtifact for ECOOP paper 2026: Efficient Symbolic Execution of Software under Fault Attacks. Sebastián Krynski, Filip Ríha, Filip Krikava, Jan Vitek |
ECOOP | 1 |
| 2026 | A Typed Intermediate Representation for Dynamic LanguagesabstractDynamic programming languages pose significant challenges for optimizing compilers due to features such as dynamic typing, late binding, reflection, copy-on-write, and delayed evaluation. To generate efficient code, compilers must speculate on which dynamic features will be exercised and produce specialized code based on these assumptions. This article presents the design of a statically typed, high-level intermediate representation (IR) that makes dynamic behaviors explicit and amenable to static analysis. Our IR combines gradual typing with ownership tracking, and explicitly represents promises, multiple function versions, and contextual dispatch. Together, these features directly support optimizations such as specialization, inlining, scope elision, and copy elimination. We formalize a core calculus, called FIŘ, that captures the essential features required for these optimizations. We provide an operational semantics, a type system, and flow and reflection analyses, and we prove the soundness of the type system. Mickaël Laurent, Jakob Hain, Filip Krikava, Sebastián Krynski, Jan Vitek |
ACM Trans. Program. Lang. Syst. | 4 |
| 2023 | Reusing Just-in-Time Compiled CodeabstractMost code is executed more than once. If not entire programs then libraries remain unchanged from one run to the next. Just-in-time compilers expend considerable effort gathering insights about code they compiled many times, and often end up generating the same binary over and over again. We explore how to reuse compiled code across runs of different programs to reduce warm-up costs of dynamic languages. We propose to use speculative contextual dispatch to select versions of functions from an off-line curated code repository . That repository is a persistent database of previously compiled functions indexed by the context under which they were compiled. The repository is curated to remove redundant code and to optimize dispatch. We assess practicality by extending Ř, a compiler for the R language, and evaluating its performance. Our results suggest that the approach improves warmup times while preserving peak performance. Meetesh Kalpesh Mehta, Sebastián Krynski, Hugo Musso Gualandi, Manas Thakur, Jan Vitek |
Proc. ACM Program. Lang. | 2 |
| 2022 | Deoptless: speculation with dispatched on-stack replacement and specialized continuationsabstractJust-in-time compilation provides significant performance improvements for programs written in dynamic languages. These benefits come from the ability of the compiler to speculate about likely cases and generate optimized code for these. Unavoidably, speculations sometimes fail and the optimizations must be reverted. In some pathological cases, this can leave the program stuck with suboptimal code. In this paper we propose deoptless, a technique that replaces deoptimization points with dispatched specialized continuations. The goal of deoptless is to take a step towards providing users with a more transparent performance model in which mysterious slowdowns are less frequent and grave. Olivier Flückiger, Jan Jecmen, Sebastián Krynski, Jan Vitek |
PLDI | 3 |
| 2021 | Promises are made to be broken: migrating R to strict semanticsabstractFunction calls in the R language do not evaluate their arguments, these are passed to the callee as suspended computations and evaluated if needed. After 25 years of experience with the language, there are very few cases where programmers leverage delayed evaluation intentionally and laziness comes at a price in performance and complexity. This paper explores how to evolve the semantics of a lazy language towards strictness-by-default and laziness-on-demand. To provide a migration path, it is necessary to provide tooling for developers to migrate libraries without introducing errors. This paper reports on a dynamic analysis that infers strictness signatures for functions to capture both intentional and accidental laziness. Over 99% of the inferred signatures were correct when tested against clients of the libraries. Aviral Goel, Jan Jecmen, Sebastián Krynski, Olivier Flückiger, Jan Vitek |
Proc. ACM Program. Lang. | 3 |
| 2020 | Sampling optimized code for type feedbackabstractTo efficiently execute dynamically typed languages, many language implementations have adopted a two-tier architecture. The first tier aims for low-latency startup times and collects dynamic profiles, such as the dynamic types of variables. The second tier provides high-throughput using an optimizing compiler that specializes code to the recorded type information. If the program behavior changes to the point that not previously seen types occur in specialized code, that specialized code becomes invalid, it is deoptimized, and control is transferred back to the first tier execution engine which will start specializing anew. However, if the program behavior becomes more specific, for instance, if a polymorphic variable becomes monomorphic, nothing changes. Once the program is running optimized code, there are no means to notice that an opportunity for optimization has been missed. Olivier Flückiger, Andreas Wälchli, Sebastián Krynski, Jan Vitek |
DLS | 3 |