2012-06-25

Ceylon M3 "V2000" is now available for download, along with a
simultaneous compatible release of Ceylon IDE. The compiler now
implements almost all of the language specification, and Ceylon now
fully supports both Java and JavaScript virtual machines as execution
environments. The first three Ceylon platform modules are available
in Ceylon Herd, the community module repository.

You can download the Ceylon command line distribution here:

http://ceylon-lang.org/download

Or you can install Ceylon IDE from Eclipse Marketplace or from our
Eclipse update site.

Ceylon M3 and Ceylon IDE M3 require Java 7.

The Ceylon team hopes to release Ceylon 1.0 beta in September or
October.

Language features

M3 is is an almost-complete implementation of the Ceylon language,
including the following new features compared to M2:

mixin inheritance (concrete interface members)

comprehensions

anonymous functions

curried functions

inline function and object declarations in named argument lists

a streamlined syntax for declaring parameters that initialize
class attributes

nested interfaces

a streamlined syntax for refining formal members

self types

"indirect" invocation of function references

Set operators

outer instance references

The following language features are not yet supported in M3:

member class refinement and type families

type aliases

reified generics

user-defined annotations, interceptors, and the type safe metamodel

serialization

This page
provides a quick introduction to the language. The draft language specification
is the complete definition.

Ceylon IDE

Ceylon IDE is a complete development environment for Ceylon based
on the Eclipse platform. This release of Ceylon IDE introduces:

support for interoperation with Java,

integration with Ceylon Herd,

many new Quick Fixes and Quick Assists, and

many, many bugfixes.

Ceylon IDE now automatically fetches module archives from Ceylon Herd
to satisfy dependencies declared in the module descriptor.

It's now possible to write Ceylon code that calls a Java binary,
navigate to its attached source code, autocomplete its declarations,
hover to view its JavaDoc, etc. It's even possible to have a project
that mixes Ceylon code with Java code.

Ceylon IDE M3 requires Java 7. Users of Ceylon IDE on Mac OS should
install Eclipse Juno. Users on other
platforms may run Ceylon IDE in either Eclipse Indigo or Eclipse Juno
on Java 7. Ceylon IDE will not work if Eclipse is run on Java 6.

Support for JavaScript virtual machines and Node.js

The Ceylon command line compiler now integrates support for compilation
to JavaScript. All supported language features, and all features of the
Ceylon language module are supported on JavaScript.

Ceylon programs compiled to JavaScript execute on standard JavaScript
virtual machines. The Ceylon command line distribution includes a
launcher for running Ceylon programs on Node.js.

Interoperation with Java

Interoperation with Java code is now robust and well-tested. This
release fixes a number of bugs and corner cases that affected Java
interoperation in the previous release. Ceylon now requires Java 7.

Platform modules

The following platform modules are now available in Ceylon Herd:

ceylon.math provides arbitrary precision numeric types and numeric
functions

ceylon.file defines an API for interacting with heirarchical
filesystems

ceylon.process defines an API for starting native child processes.

The language module, ceylon.language is included in the distribution.

Modularity and runtime

The toolset and runtime for Ceylon are based around .car module
archives and module repositories. The runtime supports a modular,
peer-to-peer class loading architecture, with full support for module
versioning and multiple repositories, including support for local and
remote module repositories, using the local file system, HTTP, WebDAV,
or even Maven repositories for interoperation with Java.

The shared community repository, Ceylon Herd is now online:

http://modules.ceylon-lang.org

Source code

The source code for Ceylon, its specification, and its website, is
freely available from GitHub:

https://github.com/ceylon

Issues

Bugs and suggestions may be reported in GitHub's issue tracker.

Community

The Ceylon community site includes
documentation,
the current draft of the language specification,
the roadmap,
and information about getting involved.

http://ceylon-lang.org

Acknowledgement

We're deeply indebted to the community volunteers who contributed a
substantial part of the current Ceylon codebase, working 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, Flavio Oliveri,
Max Rydahl Andersen, Mladen Turk, James Cobb, Tomáš Hradec,
Michael Brackx, Ross Tate, Ivo Kasiuk, Enrique Zamudio,
Julien Ponge, Julien Viet, Pete Muir, 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.

Show more