Skip to content

source-academy/java-slang

Repository files navigation

java-slang

Open-source Implementation of the Java language in TypeScript. (https://docs.oracle.com/javase/specs/).

Table of Contents

Prerequisites

Usage

To build,

$ git clone --recurse-submodules https://github.com/source-academy/java-slang.git
$ cd java-slang
$ yarn
$ yarn build

This repository uses git submodules. To update existing repositories with a submodule,

# Init is only required on the very first time.
$ git submodule update --init --recursive
# Required subsequently every time you want to update the submodules.
$ git submodule update --recursive --remote

Testing

java-slang comes with an extensive test suite. To run the tests after you made your modifications, run yarn test. Regression tests are run automatically when you want to push changes to this repository. The regression tests are generated using jest and stored as snapshots in src/\_\_tests\_\_. After modifying java-slang, carefully inspect any failing regression tests reported in red in the command line. If you are convinced that the regression tests and not your changes are at fault, you can update the regression tests as follows:

$ yarn global add jest
$ yarn test --updateSnapshot

Using your java-slang in Source Academy

java-slang is used by the Source Academy, the immersive online experiential environment for learning programming. For this, java-slang is deployed as an NPM package. The frontend of the Source Academy then includes the java-slang package in its deployment bundle.

Using your java-slang in your local Source Academy

A common issue when developing modifications to java-slang is how to test it using your own local frontend. Assume that you have built your own frontend locally, here is how you can make it use your own java-slang, instead of the one that the Source Academy team has deployed to npm.

First, build and link your local java-slang:

$ cd java-slang
$ yarn build
$ yarn link

Then, from your local copy of frontend:

$ cd frontend
$ yarn link path/to/java-slang

Replace "path/to/java-slang" with the path to the java-slang repository. After running the command, start the frontend and the new java-slang will be used.

License

License

All sources in this repository are licensed under the Apache License Version 2.

About

Implementation of the Java language in TypeScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9