The Scala Workshop 2025
as the organisers put it
The Scala Workshop is the continuation of the Scala Symposium, providing a forum for researchers and practitioners to discuss the design, implementation, and applications of the Scala programming language. Topics include language features, compiler internals, type systems, libraries, tools, and industrial applications. This year, the workshop follows a simplified format, focusing on talk proposals rather than full papers. The goal is to facilitate discussion and exchange of ideas without the overhead of formal publications. Talks can cover ongoing research, practical experience, or perspec ...
who it's for
Scala developers, compiler engineers, language designers, library authors, tooling and build engineers, educators and mentors
topics
scala.meta refactoring suggestions; educational Scala language fragment; debugging control-flow DSLs with DAP; refinement types for Scala 3; Mill deterministic build caching; capability-based mutation control; mentoring practices for open-source contributors; ScaIR: Scala reimplementation of MLIR; direct-style structured concurrency library; LLM-driven migration to explicit nulls; capture-tracking for ownership and borrowing; Scala 3 capture types and effects API
| title | author | length |
|---|---|---|
| ScalaF: Functional Refactoring Suggestions for Scala | Shiv Kiran Bagathi, Shrikha Mahanty, Dasari Gnana Heemmanshuu, Manas Thakur | 10m |
A VSCode extension called ScalaF detects imperative patterns (mutable loops, nested conditionals) and suggests concrete refactorings to map/pattern-match and… | ||
| Towards an Educational Fragment of Scala | Youyou Cong | 22m |
Proposal for an educational Scala fragment that restricts syntax and semantics to make beginner errors actionable and outputs easier to explain, inspired by… | ||
| Debugging for Scala Control Flow DSLs | Finn Hackett, Ivan Beschastnikh | 16m |
A prototype instruments a Scala control‑flow DSL (reimplemented with the standard tail‑calls module) to emit source locations and captured locals, then serves… | ||
| Logically Qualified Types for Scala 3 | Matt Bovel | 19m |
Prototype adds compiler-integrated refinement types to Scala 3, letting types carry boolean predicates that the compiler checks. Implementation uses a… | ||
| Simpler Scala Builds with Functional and Object-Oriented Programming | Li Haoyi | 45m |
Mill is a Scala JVM build tool that proves clean compile in ~24s on a realistic port of Gatling (one‑day port), by auto‑managing a background daemon and… | ||
| Taking away Mutation | Edward Lee, James You, Dimi Racordon, Ondřej Lhoták | 21m |
Presents an encoding that ties mutation rights to explicit capability objects using singleton types so mutable fields can be constructed in-place then rendered… | ||
| Mentoring in the Scala Ecosystem: Insights from Google Summer of Code | Kannupriya Kalra | 21m |
Two years of hands‑on mentoring for Google Summer of Code with the Scala Center, working on Scaladex, Scala CLI and LLM4S, produces concrete practices: a… | ||
| ScaIR: Type-safe Compiler Framework Compatible with MLIR | Maks Kret, Emilien Bauer, Jackson Woodruff, Amir Shaikhha | 24m |
ScaIR is a Scala-based reimplementation of MLIR that embeds compile-time typed operations into case classes, derives companion typeclasses via Scala 3 quotes… | ||
| How Functional is Direct-Style? | Adam Warski | 23m |
Argues that direct-style in Scala is casually functional rather than purely functional, and demonstrates a working proof-of-concept library ox (open source… | ||
| Migrating Large-scale Scala Projects to Explicit-nulls with the Help from LLMs | Yaoyu Zhao | 23m |
Migrates the Scala standard library (~200k LOC) to Scala 3 explicit nulls using an LLM-driven, iterative workflow that groups error messages, sends focused… | ||
| System Capybara: Capture Tracking for Ownership and Borrowing | Yichen Xu, Oliver Bračevac, Martin Odersky | 20m |
System Capybara extends capture checking to track ownership and borrowing by adding access-mode-qualified captures (read vs owned), enforcing separation and… | ||
| Where Are We With Scala's Capabilities? | Martin Odersky | 41m |
Scala 3 uses using clauses and context functions to pass capabilities implicitly, and a capture type system that tracks which capabilities lambdas and objects… | ||
| nothing matches | ||