Open-source Implementation of the Java language in TypeScript. (https://docs.oracle.com/javase/specs/).
- NodeJS v22
- Python: On MacBook Pro with chip Apple M1 Pro, use python 3.10.12. Here is the correct way to set Python 3 as default on a Mac.
- yarn: use the version specified in
package.json. On macos, you may need to runcorepack enable.
To build,
$ git clone --recurse-submodules https://github.com/source-academy/java-slang.git
$ cd java-slang
$ yarn
$ yarn buildThis 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 --remotejava-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 --updateSnapshotjava-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.
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 linkThen, from your local copy of frontend:
$ cd frontend
$ yarn link path/to/java-slangReplace "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.
All sources in this repository are licensed under the Apache License Version 2.