Golo, a lightweight dynamic language for the JVM.
The world didn't need another JVM language. So we built yet another one. A simple one.
Golo is a simple dynamic, weakly-typed language for the JVM.
Built from day 1 with
invokedynamic, Golo takes advantage of the latest advances of
the JVM. It is also a showcase on how to build a language runtime with
Golo is a mature Eclipse Technology Project.
- Website: http://golo-lang.org/
- Twitter: @golo_lang
- Eclipse PMI: https://projects.eclipse.org/projects/technology.golo
- GitHub: https://github.com/eclipse/golo-lang
- Issues: https://github.com/eclipse/golo-lang/issues
- Mailing-list: https://dev.eclipse.org/mailman/listinfo/golo-dev
- Commits + new issues mailing-list: https://dev.eclipse.org/mailman/listinfo/golo-commit
- Wiki: https://github.com/eclipse/golo-lang/wiki
- Gitter.im chats: https://gitter.im/eclipse/golo-lang
- StackOverflow: questions with the
Golo follows the semantic versioning scheme.
Go to the Golo downloads page for general download instructions.
You can fetch Golo from Maven central under the
We also provide Docker images:
docker pull jponge/golo-lang (https://registry.hub.docker.com/u/jponge/golo-lang/)
Golo needs Java SE 8 or more to build and run.
./gradlew asciidoctor golodoc javadoc
- assemble a working distribution in
- generate a nice JaCoCo tests coverage report:
The complete list of tasks is available by running
Special build profiles
Working on the compiler may cause your build to fail because proper compilation and bytecode
generation doesn't work. In such cases the
goloc task is likely to fail, and a wide range of unit tests
will break because some Golo source files won't have been compiled.
You can activate the bootstrap mode for that, and focus solely on the Java parts:
./gradlew test -P bootstrap
Tests console output
By default Gradle redirects all tests console outputs, and makes them available from the HTML report
You can instead opt to have all console outputs:
./gradlew test -P consoleTraceTests
It is often desirable to get more outputs from tests, like dumps of intermediate representation trees or generated JVM bytecode.
Such verbosity can be activated using:
./gradlew test -P traceTests
Of course you can combine profiles, like:
./gradlew test -P traceTests -P consoleTraceTests -P bootstrap
Copyright (c) 2012-2020 Institut National des Sciences Appliquées de Lyon (INSA Lyon) and others This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0. SPDX-License-Identifier: EPL-2.0
We welcome contributions from the community!
CONTRIBUTING.md file for instructions.