Eclipse Ceylon™

The Eclipse Ceylon™ project encompasses development of the language itself (the language specification), the compiler frontend (typechecker), the compiler backends for Java and JavaScript, the module system, the command-line tooling, the SDK, and the Eclipse-based IDE. A future direction is tooling for Eclipse Che. The project also maintains the website and documentation for the language.

Eclipse Ceylon consists in a number of components:

  • The Ceylon distribution, which is composed of the following modules:

    • ceylon-typechecker (compiler front-end), which includes the parser, AST and type-checker

    • ceylon-model: describes a type-checked Ceylon program (this is what the type-checker outputs), and provides a facility for turning a JVM class into a Ceylon model

    • ceylon-compiler-java: produces JVM bytecode modules for Ceylon programs (the JVM back-end), also contains the API documentation generator

    • ceylon-compiler-js: produces JavaScript modules for Ceylon programs (the JS back-end)

    • ceylon.language: the base Ceylon language module implicitly imported by every Ceylon module, which contains the Ceylon basic types

    • ceylon-module-resolver: deals with module repositories reading and writing and contains optional plugins:

      • ceylon-module-resolver-aether for Maven interop

      • ceylon-module-resolver-javascript for JS interop

    • ceylon-common: a utilities module used by most other modules

    • ceylon-cli: the framework used by the Ceylon Command-Line Interface tools

    • ceylon-tools: most of the CLI tool implementations

    • ceylon-runtime: a JBoss Modules runtime for Ceylon

    • ceylon-main: a barebones ClassPath-based runtime for Ceylon

    • ceylon-tool-provider: APIs to invoke the compilers and runners

    • ceylon-module-loader: resolver that resolves the right versions for transitive dependencies of Ceylon modules

    • ceylon-bootstrap: support for auto-downloading the right Ceylon distribution in Ceylon projects

  • The Ceylon SDK: the Ceylon APIs that allow access to the file system, network, databases, http client and server, mathematics, testing framework and many other things.

  • The ceylon-lang.org website: static generated website based on Awestruct

  • The Ceylon Web IDE: allows you to try your Ceylon program in the browser, requires an OpenShift server that compiles the code and sends it back to the browser for execution.

  • The Ceylon Eclipse IDE: fully-featured Ceylon editor in Eclipse

  • The Ceylon IntelliJ IDE: fully-featured Ceylon editor in IntelliJ, newer than the Eclipse plug-in and still a little bit behind in terms of features

  • The Java2Ceylon converter: Ceylon module that converts Java code in to Ceylon. Used by the Eclipse/IntelliJ IDEs

  • The Ceylon formatter: Ceylon module that formats Ceylon code. Used by the Eclipse/IntelliJ IDEs

  • The ceylon-ide-common project: common Ceylon module used by the Eclipse/IntelliJ IDEs to share functionality

  • The Ceylon Herd project, which is a web server allowing publishing and consumption of Ceylon modules. Its functionality and scope is similar to Maven Nexus.

  • The modules.ceylon-lang.org and herd.ceylon-lang.org services which are running a Herd instance for Ceylon modules. It’s functionally equivalent to Maven Central for Ceylon.

State
Archived
Licenses
Apache License, Version 2.0

The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.

Active Member Companies

Member companies supporting this project over the last three months.