This is the 1.1 "Pif Gadget" release of the Ceylon command line tools (version 1.1.1). This is a production version of the platform.
Ceylon is a modern, modular, statically typed programming language for the Java and JavaScript virtual machines. The language features a flexible and very readable syntax, a unique and uncommonly elegant static type system, a powerful module architecture, and excellent tooling, including an awesome Eclipse-based IDE.
Ceylon enables the development of cross-platform modules which execute portably in both virtual machine environments. Alternatively, a Ceylon module may target one or the other platform, in which case it may interoperate with native code written for that platform.
Read more about Ceylon at http://ceylon-lang.org.
bin
- Unix/Windows commandscontrib
- Sample Ceylon command-line pluginsdoc
- Documentation about Ceylon including the spec in HTML and PDF formatlib
- Required libraries for the Ceylon commandsrepo
- Required bootstrap Ceylon modules (language, tools)samples
- Sample Ceylon modulestemplates
- Templates for new Ceylon projectsLICENSE-ASL
- The Ceylon ASL licenseLICENSE-GPL-CP
- The Ceylon GPL/CP licenseREADME.md
- This file
To begin, make sure you have:
- the Java 7 JDK and Ant 1.8+ installed, with both functioning correctly,
- Git set up correctly, and
- GitHub SSH access set up correctly.
For the rest of the steps we will assume you have cloned the
ceylon-dist
repository and you are currently inside it reading
this file. If not, first:
- create a new directory for the Ceylon project, and then
- inside that directory, clone
ceylon-dist
by typing:
$ git clone git@github.com:ceylon/ceylon-dist.git
Now you have everything you need continue with the following steps.
- Go into the newly created
ceylon-dist
directory and run the setup:
$ cd ceylon-dist ; ant setup
- Now, to build the complete distribution, run:
$ ant clean publish-all
After this you'll have a newly built distribution in the dist
folder of your current directory. You can run the ceylon
command
without any further setup or installation by simply running
$ dist/bin/ceylon
But it's advisable to add the ceylon
command to your PATH
environment variable (either by adding the bin
folder to your
PATH
or by creating a symbolic link to it in an appropriate place
like ~/bin/
).
If at any time you want to update the distribution to the latest code from GitHub just run
$ ant update-all
$ ant clean publish-all
NB: The update-all
command assumes that your projects are "clean",
that is you don't have uncommitted changes. If that's not the case
you'll have to manually update those projects or first stash your
changes (using git stash
).
After the build finishes the command line tools will be located in
the bin
directory.
bin/ceylon - The ceylon tool which provides at least the following subcommands: new
- Create a new Ceylon projectcompile
- Compile a Ceylon program for the Java backendcompile-js
- Compile a Ceylon program for the JavaScript backenddoc
- Document a Ceylon programimport-jar
- Import a Java.jar
file into a Ceylon module repositoryinfo
- Print information about modules in repositoriesnew
- Generate a new Ceylon projectplugin
- Package or install command-line pluginsrun
- Run a Ceylon program on the Java VMrun-js
- Run a Ceylon program on node.js (JavaScript)src
- Fetch source archives from a repository and extract themtest
- Test a Ceylon program on the Java VMversion
- Show and update version numbers in module descriptorshelp
- Displays help about another tool
The API documentation for the language module ceylon.language
may
be found here:
repo/ceylon/language/1.1.0/module-doc/api
To compile and run the samples, start from the distribution directory containing this file.
To run the "hello world" program, type:
cd samples/helloworld
For Java:
../../bin/ceylon compile com.example.helloworld
../../bin/ceylon doc --non-shared --source-code com.example.helloworld
../../bin/ceylon run com.example.helloworld/1.0.0 John
For JavaScript:
../../bin/ceylon compile-js com.example.helloworld
../../bin/ceylon run-js com.example.helloworld/1.0.0
To run a program defined in the default module, type:
cd samples/no-module
For Java:
../../bin/ceylon compile default
../../bin/ceylon doc --non-shared --source-code default
../../bin/ceylon run default
For JavaScript:
../../bin/ceylon compile-js default
../../bin/ceylon run-js default
To run the "Java interop" program, type:
cd samples/interop-java
../../bin/ceylon compile com.example.interop
../../bin/ceylon doc --non-shared --source-code com.example.interop
../../bin/ceylon run com.example.interop/1.0.0 John
Note: this is only available for the Java backend.
To see a list of command line options for a particular subcommand,
use the help
subcommand. For example, to get help on the compile
tool:
./bin/ceylon help compile
We include support for Ceylon ant tasks which are documented at http://ceylon-lang.org/documentation/1.0/reference/tool/ant/.
To run the "hello world" program using ant, type:
cd samples/helloworld
ant
Source code is available from GitHub:
Bugs and suggestions may be reported in GitHub's issue tracker.
Since Ceylon is running on the JVM it should work on every platform that supports a Java 7 compatible JVM. However we have tested the following platforms to make sure it works:
- Ubuntu "quantal" 12.10 (64 bit) JDK 1.7.0_09 (IcedTea) Node 0.10.15
- Fedora 17 (64 bit) JDK 1.7.0_09 (IcedTea)
- Fedora 16 (64 bit), JDK 1.7.0_b147 (IcedTea)
- Windows 7 (64 bit) 1.7.0_05 (Oracle)
- Windows Server 2008 R2 SP1 JDK 1.7.0_04
- OSX 10 Lion (10.8.5) JDK 1.7.0_40 (Oracle) Node 0.10.17
The Ceylon distribution is and contains work released
- partly under the ASL v2.0 as provided in the
LICENSE-ASL
file that accompanied this code, and - partly under the GPL v2 + Classpath Exception as provided in the
LICENSE-GPL-CP
file that accompanied this code.
This software uses a number of other works, the license terms of
which are documented in the NOTICE
file that accompanied this code.
The content of this code repository, available here on GitHub,
is released under the ASL v2.0 as provided in the LICENSE-ASL
file
that accompanied this code.
By submitting a "pull request" or otherwise contributing to this repository, you agree to license your contribution under the license mentioned above.
We're deeply indebted to the community volunteers who contributed a substantial part of the current Ceylon codebase, working often in their own spare time. The following people have contributed to this release:
Gavin King, Stéphane Épardaud, Tako Schotanus, Emmanuel Bernard, Tom Bentley, Aleš Justin, David Festal, Max Rydahl Andersen, Mladen Turk, James Cobb, Tomáš Hradec, Ross Tate, Ivo Kasiuk, Enrique Zamudio, Roland Tepp, Diego Coronel, Daniel Rochetti, Loic Rouchon, Matej Lazar, Lucas Werkmeister, Akber Choudhry, Corbin Uselton, Julien Viet, Stephane Gallès, Paco Soberón, Renato Athaydes, Michael Musgrove, Flavio Oliveri, Michael Brackx, Brent Douglas, Lukas Eder, Markus Rydh, Julien Ponge, Pete Muir, Henning Burdack, Nicolas Leroux, Brett Cannon, Geoffrey De Smet, Guillaume Lours, Gunnar Morling, Jeff Parsons, Jesse Sightler, Oleg Kulikov, Raimund Klein, Sergej Koščejev, Chris Marshall, Simon Thum, Maia Kozheva, Shelby, Aslak Knutsen, Fabien Meurisse, Sjur Bakka, Xavier Coulon, Ari Kast, Dan Allen, Deniz Türkoglu, F. Meurisse, Jean-Charles Roger, Johannes Lehmann, Alexander Altman, allentc, Nikolay Tsankov, Chris Horne, gabriel-mirea, Georg Ragaller, Griffin DeJohn, Harald Wellmann, klinger, Luke, Oliver Gondža, Stephen Crawley.