LitmusKt: Concurrency Stress Testing for Kotlin
- URL: http://arxiv.org/abs/2501.07472v2
- Date: Tue, 22 Apr 2025 09:57:15 GMT
- Title: LitmusKt: Concurrency Stress Testing for Kotlin
- Abstract summary: We present LitmusKt - the first tool for testing concurrent programs in Kotlin.<n>Our tool allows litmus tests in a single custom DSL, and these tests are then run in Kotlin/Native and Kotlin/JVM.<n>Using LitmusKt, we discovered novel bugs in the Kotlin compiler, which we then fixed and they are no longer present.
- Score: 0.8312192184427764
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: We present LitmusKt - the first tool for litmus testing concurrent programs in Kotlin. The tool's novelty also lies in the fact that Kotlin is a multiplatform language, i.e., it compiles into multiple platforms, which means that the concurrency has to be tested on several of them. Our tool allows writing litmus tests in a single custom DSL, and these tests are then run in Kotlin/Native and Kotlin/JVM, two main platforms for concurrent programming in Kotlin. Using LitmusKt, we discovered novel bugs in the Kotlin compiler, which we then fixed and they are no longer present. Moreover, LitmusKt was integrated into the CI pipeline for Kotlin. LitmusKt is available on GitHub: https://github.com/JetBrains-Research/litmuskt. The demo is available on YouTube: https://youtu.be/oWCZp_Huwss.
Related papers
- CrossLangFuzzer: Differential Testing of Cross-Language JVM Compilers [6.138794721766494]
CrossLangFuzzer is a differential testing framework for cross-language compilation.<n>It synthesizes cross-language test programs using the Kotlin compiler's unified intermediate representation.<n>CrossLangFuzzer uncovered 32 confirmed bugs, including 15 in Kotlin, 4 in Groovy, 7 in Scala 3, 2 in Scala 2, and 4 in Java.
arXiv Detail & Related papers (2026-06-26T14:33:52Z) - TaoBench: Do Automated Theorem Prover LLMs Generalize Beyond MathLib? [104.38098884163541]
We evaluate the robustness of current ATP systems when applied to a novel definitional framework.<n>We introduce TaoBench, an undergraduate-level benchmark derived from Terence Tao's Analysis I.<n>For fair evaluation, we build an agentic pipeline that automatically extracts a compilable, self-contained local environment for each problem.
arXiv Detail & Related papers (2026-03-13T07:39:47Z) - CodeMonkeys: Scaling Test-Time Compute for Software Engineering [45.84513832258217]
Scaling test-time compute is a promising axis for improving LLM capabilities.
Here, we explore this problem in the context of solving real-world GitHub issues from the SWE-bench dataset.
Our system, named CodeMonkeys, allows models to iteratively edit a by jointly generating and running a testing script alongside their draft edit.
arXiv Detail & Related papers (2025-01-24T18:58:40Z) - PyPulse: A Python Library for Biosignal Imputation [58.35269251730328]
We introduce PyPulse, a Python package for imputation of biosignals in both clinical and wearable sensor settings.
PyPulse's framework provides a modular and extendable framework with high ease-of-use for a broad userbase, including non-machine-learning bioresearchers.
We released PyPulse under the MIT License on Github and PyPI.
arXiv Detail & Related papers (2024-12-09T11:00:55Z) - Kotlin's Type System is (Also) Unsound [0.19116784879310028]
A type checker for a sound type system is expected to issue a warning on every type error.
In 2016, Amin and Tate presented the first unsoundness proof for two major industry languages: Java and Scala.
We present an unsoundness proof for Kotlin, which relies on a previously unknown unsound combination of language features.
arXiv Detail & Related papers (2024-08-20T12:54:12Z) - KGym: A Platform and Dataset to Benchmark Large Language Models on Linux Kernel Crash Resolution [59.20933707301566]
Large Language Models (LLMs) are consistently improving at increasingly realistic software engineering (SE) tasks.
In real-world software stacks, significant SE effort is spent developing foundational system software like the Linux kernel.
To evaluate if ML models are useful while developing such large-scale systems-level software, we introduce kGym and kBench.
arXiv Detail & Related papers (2024-07-02T21:44:22Z) - Kotlin ML Pack: Technical Report [5.691600667043724]
We present three novel datasets of Kotlin code: KStack, KStack-clean, and KExercises.
We also present a version of the HumanEval benchmark rewritten by human experts into Kotlin.
arXiv Detail & Related papers (2024-05-29T16:33:50Z) - Cross-Language Dependencies: An Empirical Study of Kotlin-Java [1.5680371708311132]
Since Google introduced Kotlin as an official programming language for developing Android apps in 2017, Kotlin has gained widespread adoption in Android development.
There is limited research on how Java and Kotlin interact with each other in real-world projects.
We conducted an empirical study of 23 Kotlin-Java real-world projects with 3,227 Java and 8,630 Kotlin source files.
arXiv Detail & Related papers (2024-05-07T18:26:24Z) - Depends-Kotlin: A Cross-Language Kotlin Dependency Extractor [3.0915964434574175]
Depends-Kotlin supports extracting entities' dependencies in Kotlin code.
It can also extract dependency relations between Kotlin and Java.
Depends-Kotlin demonstrates high accuracy and performance in resolving Kotlin-Kotlin and Kotlin-Java dependencies relations.
arXiv Detail & Related papers (2024-01-30T10:15:35Z) - Compiler Testing With Relaxed Memory Models [0.0]
We present the T'el'echat compiler testing tool for concurrent programs.
T'el'echat compiles a concurrent C/C++ program and compares source and compiled program behaviours.
arXiv Detail & Related papers (2023-10-18T21:24:26Z) - LongBench: A Bilingual, Multitask Benchmark for Long Context Understanding [58.20031627237889]
LongBench is the first bilingual, multi-task benchmark for long context understanding.
It comprises 21 datasets across 6 task categories in both English and Chinese, with an average length of 6,711 words (English) and 13,386 characters (Chinese)
arXiv Detail & Related papers (2023-08-28T11:53:40Z) - Binding Language Models in Symbolic Languages [146.3027328556881]
Binder is a training-free neural-symbolic framework that maps the task input to a program.
In the parsing stage, Codex is able to identify the part of the task input that cannot be answerable by the original programming language.
In the execution stage, Codex can perform versatile functionalities given proper prompts in the API calls.
arXiv Detail & Related papers (2022-10-06T12:55:17Z) - Continual Learning in Multilingual NMT via Language-Specific Embeddings [92.91823064720232]
It consists in replacing the shared vocabulary with a small language-specific vocabulary and fine-tuning the new embeddings on the new language's parallel data.
Because the parameters of the original model are not modified, its performance on the initial languages does not degrade.
arXiv Detail & Related papers (2021-10-20T10:38:57Z) - Mining Knowledge for Natural Language Inference from Wikipedia
Categories [53.26072815839198]
We introduce WikiNLI: a resource for improving model performance on NLI and LE tasks.
It contains 428,899 pairs of phrases constructed from naturally annotated category hierarchies in Wikipedia.
We show that we can improve strong baselines such as BERT and RoBERTa by pretraining them on WikiNLI and transferring the models on downstream tasks.
arXiv Detail & Related papers (2020-10-03T00:45:01Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.