gitmyhub

scala

Scala ★ 15k updated 1d ago

Scala 2 compiler and standard library. Scala 2 bugs at https://github.com/scala/bug; Scala 3 at https://github.com/scala/scala3

This is the source code for the Scala 2 compiler and standard library, the tools that convert Scala programs into JVM bytecode, used by teams wanting expressive functional and object-oriented programming on the Java platform.

ScalaJavaJVMsetup: hardcomplexity 5/5

This repository is the source code for Scala 2, a programming language that runs on the Java Virtual Machine (the software that executes Java programs). Scala blends two programming styles that are sometimes thought of as opposites: object-oriented programming, where code is organized around objects and their behaviors, and functional programming, where computation is expressed as a series of transformations on data with minimal side effects. The result is a language popular with teams that need Java's performance and ecosystem but want more expressive syntax and stronger tools for handling complexity.

This specific repository holds the Scala 2 compiler and standard library. The compiler is the program that reads Scala source code and converts it into something the Java Virtual Machine can execute. The standard library is a collection of built-in tools and data structures that all Scala programs can use without installing anything extra. A separate repository handles Scala 3, which is the newer major version with a redesigned compiler.

Contributing to this project follows a structured process. You file or find a bug in a dedicated issue tracker at scala/bug, fork the repository to your own GitHub account, make your changes, and submit a pull request. The project also requires signing a contributor license agreement before any changes are merged, which is a legal document protecting the project's open-source status. There is a Discord server and a Discourse forum where contributors coordinate work.

The codebase is organized into clearly labeled directories: the compiler, the standard library, the reflection API, the test suite, the documentation tool, the REPL (a tool that lets you run Scala code interactively one line at a time), and the formal language specification. Most ongoing development targets the 2.13.x branch, with version 2.12.x receiving only minimal maintenance.

Where it fits