← Back to JetBrains/kotlin

How to Deploy & Use JetBrains/kotlin

Kotlin Programming Language - Deployment and Usage Guide

Prerequisites

Before building Kotlin from source, ensure you have the following installed:

  • Java Development Kit (JDK): Java 17 or later is required to build Kotlin
  • Git: For cloning the repository
  • Build tool: Gradle (version 8.x) is used for building Kotlin
  • Operating System: Kotlin can be built on Linux, macOS, and Windows

Installation

1. Clone the Repository

git clone https://github.com/JetBrains/kotlin.git
cd kotlin

2. Build Kotlin

Kotlin uses Gradle for building. Run the following command to build the project:

./gradlew build

On Windows, use:

gradlew.bat build

3. Install Dependencies

The build process will automatically download all necessary dependencies. No manual dependency installation is required.

Configuration

Environment Variables

No specific environment variables are required for building Kotlin from source.

Configuration Files

Kotlin's build configuration is managed through Gradle build files. No manual configuration is typically needed.

API Keys

No API keys are required for building or running Kotlin locally.

Build & Run

Development Build

To build Kotlin in development mode:

./gradlew build

This command compiles the compiler, runs tests, and creates distribution packages.

Running the Compiler

After building, you can run the Kotlin compiler from the build output:

./dist/kotlinc/bin/kotlinc -version

Production Build

For a production build with optimizations:

./gradlew build -Pteamcity=true

This creates optimized distribution packages in the dist directory.

Running Tests

To run the comprehensive test suite:

./gradlew test

Deployment

Local Development

For local development, simply use the built compiler from the dist directory. You can add it to your PATH for convenience:

export PATH=$PATH:$(pwd)/dist/kotlinc/bin

Distribution

Kotlin distributions are created in the dist directory after building. These can be:

  1. Shared locally: Copy the dist/kotlinc directory to other machines
  2. Integrated into IDEs: The compiler can be integrated into development environments
  3. Used as a library: Kotlin's compiler and libraries can be used programmatically

Platform Considerations

Kotlin is platform-agnostic and can be deployed on:

  • Linux: Use the Linux build artifacts
  • macOS: Use the macOS build artifacts
  • Windows: Use the Windows build artifacts

Troubleshooting

Common Build Issues

1. Java Version Mismatch

Issue: Build fails with Java version errors Solution: Ensure you're using Java 17 or later. Check with java -version

2. Insufficient Memory

Issue: Build fails due to OutOfMemoryError Solution: Increase heap size by setting JAVA_OPTS="-Xmx4g" before building

3. Gradle Daemon Issues

Issue: Gradle daemon fails to start Solution: Run ./gradlew --stop to stop the daemon, then retry the build

Compilation Issues

1. Symbol Resolution Errors

Issue: Errors related to symbol resolution during compilation Solution: Check the IrBodyDeserializer.kt file for issues with symbol deserialization

2. Type Mismatch Errors

Issue: IrSymbolTypeMismatchException during compilation Solution: Verify that symbol types match during deserialization in the compiler backend

3. IR Tree Rendering Issues

Issue: Problems with IR element rendering Solution: Check the RenderIrElement.kt file for issues with IR tree visualization

Testing Issues

1. Test Failures

Issue: Some tests fail during the build Solution: Run specific failing tests with ./gradlew :compiler:tests:test --tests "com.example.TestClass"

2. FIR Resolution Issues

Issue: Errors in FIR (Frontend Intermediate Representation) resolution Solution: Check the FirCallResolver.kt file for issues with call resolution

Performance Issues

1. Slow Builds

Issue: Compilation takes too long Solution: Use incremental compilation by running ./gradlew build --no-daemon or consider using build caching

2. Memory Issues During Compilation

Issue: High memory usage during compilation Solution: Adjust memory settings in JAVA_OPTS and consider using a machine with more RAM

IDE Integration Issues

1. IDE Not Recognizing Kotlin

Issue: IDE doesn't recognize the Kotlin installation Solution: Ensure the IDE is configured to use the correct Kotlin compiler from the dist/kotlinc directory

2. Plugin Compatibility

Issue: Kotlin IDE plugins not working correctly Solution: Update IDE plugins to the latest version compatible with your Kotlin build