This readme describes how to build Keen from source.
For information about the language itself, visit the website.
To work on Keen, you'll need these tools:
git: Used to get this repository.java: Used to run Keen.node: Used to test JS builds and to build the VSCode extension.
Then run:
git clone https://github.com/andy-hanson/keen.git
cd keen
make testappis the source code forkeen(the program used inkeen run, etc.). More info in app/readme.md.editorcontains extensions for editors.libis the Keen standard library.testcontains unit tests of language features. These tests should not have diagnostics.test-casesis for tests that have diagnostics.test-cases/diagnosticsare checked as a single command with the output intest-cases/diagnostics/expected.txt.make test-diagnostics-overwriteupdates it.test-cases/end-to-endtests are each run independently, which makes them slow.make test-end-to-end-overwriteupdates it.test-cases/ideare used bytest/ide. They can't go there because they have diagnostics.
For most changes you just need to run make test.
For development, it's recommended to remove any other installed keen and instead add this repository's bin to the PATH.
(E.g., export PATH="$HOME/keen/bin:$PATH" in .bashrc, assuming you cloned this repository to your home directory.)
IDE extensions get keen from the PATH, so you can make bin/keen and reload the IDE and it will be using the latest code.
You don't need to reinstall the extension.
Keen is bootstrapped using keen-lkg ("last known good") which is excluded from .gitignore.
make update-lkg updates it. This should not be done often.