Blog tagged release

Ceylon M3 and Ceylon IDE M3 released!

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:

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:

https://herd.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.

Second official release of Ceylon

Today, we're proud to announce the release of Ceylon M2 "Minitel". This is the second official release of the Ceylon command line compiler, documentation compiler, language module, and runtime, and a major step down the roadmap toward Ceylon 1.0, with most of the Java interoperability fully specified and implemented.

You can get it here:

http://ceylon-lang.org/download

We plan a compatible M2 release of Ceylon IDE later this week.

Language features

In terms of the language itself, M2 has essentially all the features of Java except enumerated types, user-defined annotations, and reflection. It even incorporates a number of improvements over Java, including:

  • JVM-level primitive types are ordinary classes in Ceylon
  • type inference and type argument inference based on analysis of principal types
  • streamlined class definitions via elimination of getters, setters, and constructors
  • optional parameters with default values
  • named arguments and the "object builder" syntax
  • intersection types, union types, and the bottom type
  • static typing of the null value and empty sequences
  • declaration-site covariance and contravariance instead of wildcard types
  • more elegant syntax for type constraints
  • top-level function and value declarations instead of static members
  • nested functions
  • richer set of operators
  • more elegant syntax for annotations
  • immutability by default
  • first-class and higher-order functions except anonymous functions
  • method and attribute specifiers
  • algebraic types, enumerated types, and switch/case

Support for the following language features is not yet available:

  • anonymous functions
  • multiple parameter lists
  • comprehensions
  • mixin inheritance
  • member class refinement
  • reified generics
  • user-defined annotations and the type safe metamodel

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

Java interoperability

There were many improvements to Java interoperability in this release, which makes it very easy to call Java from Ceylon.

Most of the interoperability issues with Java have been fixed, and there are very few remaining issues that we will fix for the next release, though they only concern corner-cases that we don't expect users to meet.

Performance

We spent a lot of time improving performance for this release, in particular arithmetic operator performance, but we still have a lot of areas we expect to improve for the next release, such as the speed of interoperability with Java arrays and improvements on boxing.

Modularity and runtime

Ceylon modules may be executed on any standard Java 6 compatible JVM. The toolset and runtime for Ceylon is 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.

This release of Ceylon includes support for local and remote module repositories, using the local file system, HTTP or WebDAV. In order to make it easy to use Java libraries from Ceylon you can even use Maven repositories.

Support for the shared community repository modules.ceylon-lang.org will be available in the next release.

Chapter 7 of the language specification contains much more information about the Ceylon module system and command line tools.

SDK

At this time, the only module available is the language module ceylon.language, included in the distribution.

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.

First official release of Ceylon IDE

Today, we're proud to announce the first official release of the Ceylon IDE.

teaser

This release is fully compatible with the already-released Ceylon M1 "Newton" command line distribution which contains the compiler, documentation compiler, language module, and runtime. On the other hand, Ceylon IDE can be used as a standalone Ceylon development tool, even if the full Ceylon distribution is not already separately installed.

You can install Ceylon IDE from our Eclipse plugin update site. The welcome page is a gentle way to get started with Ceylon.

Main features

A full list of features with screenshots can be found here.

Among the features that have greatly enriched the IDE since its first pre-release builds, the following stand out:

  • A Ceylon perspective, welcome page, and cheat sheets.
  • Wizards to create new Ceylon projects, modules, packages, and units.
  • Cross-project dependencies and navigation: add another Ceylon project on the build path, and dependencies are automatically handled.
  • Full integration with the Ceylon module architecture: resolve dependencies in an external module repository, and easily export your Ceylon project as a module to a selected repository.
  • Enhancements to refactorings, including the ability to refactor even in dirty (unsaved) editors.
  • New quick-fixes: for example, when an identifier is unknown, automatically create a new file containing a stub for the missing declaration.
  • Improved autocompletion: proposals are now sorted to prioritize those which are assignable to the expected type, as well as those which are declared nearby.
  • Customization: easily configure your own colors for syntax highlighting.
  • And, of course, many adjustments and bug fixes to provide a stable release.

About Ceylon

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

Source code

The source code for Ceylon, its specification, and its website, and its IDE 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

First official release of Ceylon

Today, we're proud to announce the release of Ceylon M1 "Newton". This is the first official release of the Ceylon command line compiler, documentation compiler, language module, and runtime, and a major step down the roadmap toward Ceylon 1.0.

You can get it here:

http://ceylon-lang.org/download

We plan a compatible M1 release of Ceylon IDE later this week.

Language features

In terms of the language itself, M1 has essentially all the features of Java except enumerated types, user-defined annotations, and reflection. It even incorporates a number of improvements over Java, including:

  • JVM-level primitive types are ordinary classes in Ceylon
  • type inference and type argument inference based on analysis of principal types
  • streamlined class definitions via elimination of getters, setters, and constructors
  • optional parameters with default values
  • named arguments and the "object builder" syntax
  • intersection types, union types, and the bottom type
  • static typing of the null value and empty sequences
  • declaration-site covariance and contravariance instead of wildcard types
  • more elegant syntax for type constraints
  • top-level function and value declarations instead of static members
  • nested functions
  • richer set of operators
  • more elegant syntax for annotations
  • immutability by default

Support for the following language features is not yet available:

  • first-class and higher-order functions
  • comprehensions
  • algebraic types, enumerated types, and switch/case
  • mixin inheritance
  • member class refinement
  • reified generics
  • user-defined annotations and the type safe metamodel

Furthermore, numeric operators are not currently optimized by the compiler, so numeric code is expected to perform poorly.

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

Modularity and runtime

Ceylon modules may be executed on any standard JVM. The toolset and runtime for Ceylon is 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.

This release of Ceylon includes support for local module repositories. Support for remote repositories and the shared community repository modules.ceylon-lang.org will be available in the next release.

Chapter 7 of the language specification contains much more information about the Ceylon module system and command line tools.

SDK

At this time, the only module available is the language module ceylon.language, included in the distribution.

Java interoperability

There are a number of issues that currently affect interoperability with Java. These issues are a top priority for the next release.

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:

Stephane Epardaud, Tako Schotanus, Gary Benson, Emmanuel Bernard, Andrew Haley, Tom Bentley, Ales Justin, David Festal, Flavio Oliveri, Sergej Koshchejev, Max Rydahl Andersen, Mladen Turk, James Cobb, Ben Keating, Michael Brackx, Ross Tate, Ivo Kasiuk, Gertjan Assies, Nicolas Leroux, Julien Viet