Skip to content
This repository

Ceylon runtime environment around bootstrapping and module isolation

tree: 7f9639b83b

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 api
Octocat-spinner-32 bootstrap
Octocat-spinner-32 debug
Octocat-spinner-32 dist
Octocat-spinner-32 impl
Octocat-spinner-32 lib
Octocat-spinner-32 spi
Octocat-spinner-32 testsuite
Octocat-spinner-32 .classpath
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .project Made it possible to use ANT to build the project January 17, 2012
Octocat-spinner-32 README
Octocat-spinner-32 build.xml
Octocat-spinner-32 pom.xml

This project atm uses Maven for its build.
There are a few steps needed to be able to build and test the project.

1) We need to install Ceylon Language and Common into our local Maven repository.

mvn install:install-file -DgroupId=ceylon.language -DartifactId=ceylon-language -Dversion=0.5 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true

mvn install:install-file -Dfile=com.redhat.ceylon.common-0.5.jar -DgroupId=com.redhat.ceylon -DartifactId=ceylon-common -Dversion=0.5 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true

2) We need to checkout and build (mvn clean install) Ceylon Module Resolver project (CMR).

The CMR build version must match the one used in this project -- see root pom.xml.

The Runtime uses JBoss Modules to build modular runtime system.
Initially JBoss Modules uses out dist/ directory as its modules repository.
This includes modules we need on the "bootstrap":
 * Ceylon Language
 * Ceylon Module Resolver
 * Ceylon Runtime
 * JBoss Modules (as a module info, actual classes are part of system classpath)

 dist/ repository is built as part of the testsuite sub-project build.
 jars are copied from our Maven repository, while the module.xml information is static.

 This is the part that the user needs locally.
 To ease things, we create a zipped version of dist/ repository,
 and place it under <CEYLON_REPOSITORY>/ceylon-runtime-bootstrap/
 In order to use this zipped module repository we need to use custom ModuleLoader - DistributionModuleLoader.
 (see script for the actual usage)
 DistributionModuleLoader explodes (if not already present) this zipped repository at initialization,
 and places the exploded repository under <CEYLON_REPOSITORY>/ceylon-runtime-bootstrap/ceylon-runtime-bootstrap-exploded directory.
 You can force update with -Dforce.bootstrap.update=true system property flag.

 Afterwards Ceylon Runtime uses Ceylon Module Resolver to get its modules.
 By default we use ~/.ceylon/repo as local CMR repository, but different repositories can be mounted.
 (proper mounting API is wip)

 In order to run your Ceylon app / module, you need to first place it into ~/.ceylon/repo.
 Then you can use dist/bin/ to run the app / module. expects module name and version as its only parameter.
 e.g. ./ hello/1.0.0 --> [full module name]/[version], where default version is 0.0.0 if left out

 (I think the version atm needs to be in the form x.y.z[.qualifier]).

Something went wrong with that request. Please try again.