ICFP/SPLASH 2025
Sun 12 - Sat 18 October 2025 Singapore

This program is tentative and subject to change.

Sun 12 Oct 2025 09:00 - 10:30 at Seminar Room 5 - Tutorial 1A
Sun 12 Oct 2025 11:00 - 12:30 at Seminar Room 5 - Tutorial 1B

Lincheck is a practical and user-friendly model-checking framework for testing concurrent algorithms on the JVM. Its general API allows testing any concurrent code, while the data structures API takes a list of operations, auto-generates random concurrent scenarios, studies them with the model checker, and verifies each outcome for linearizability.

The framework was introduced at CAV ’23, is maintained on GitHub, and features in recent KotlinConf and Hydra (1, 2) talks.

The workshop drills into both APIs. Participants will: (1) learn Lincheck’s fundamentals and develop an intuition for the Lincheck internals; (2) write tests for generic concurrent code; (3) use the data‑structure API to verify queues, hash tables, and similar structures under constraints such as single‑writer and checking for lock‑freedom; and (4) reproduce and analyze a real race condition in the Java standard library. All tasks run locally on attendees’ laptops. By the end, participants will be equipped to integrate Lincheck into their own projects to systematically validate concurrent behavior.

This program is tentative and subject to change.

Sun 12 Oct

Displayed time zone: Perth change

09:00 - 10:30
09:00
90m
Talk
Testing concurrent code on JVM with Lincheck
Tutorials
Evgenii Moiseenko JetBrains Research, Nikita Koval JetBrains
11:00 - 12:30
11:00
90m
Talk
Testing concurrent code on JVM with Lincheck
Tutorials
Evgenii Moiseenko JetBrains Research, Nikita Koval JetBrains