Project Roadmap

This page summarizes the development plans and release schedules for the X10 project.

The most detailed and up-to-date information can be found in JIRA via inspecting the Roadmap views and the fix-for targets of various issues.

The overall tempo of the project is to plan for a major release every 9 to 12 months with minor releases every 3 to 4 months in between. We maintain a single stream of development, so features that are formally targeted at a particular major release may actually appear (or partially appear) in one or more minor releases before the major release.

X10 2.5

VersionDateComments
2.5.0 October 2014

X10 2.5 includes a redesign of several Place-related standard library APIs to better support Resilient and Elastic X10. The changes were made to more naturally support execution over a dynamically varying set of Places. As a result, minor adjustments may be needed to port code from X10 2.4.3 to X10 2.5.0.

2.5.1 December 2014

Enhancements to Resilient and Elastic X10

2.5.2 March 2015

Improvements to the x10rt_mpi implementation, class library changes in the x10.util.resilient package, and the movement of the implementation class for the X10 Runtime from x10.lang to the new x10.xrx package.

2.5.3 June 2015

Improved compiler support for X10DT features. The X10 Editor is now much more resilient to syntax errors: features such as outline, hyperlink, hover help, and content-assist continue to work in the face of compilation errors.

2.5.4 December 2015

Improvements in Resilient X10 including:

  • significant performance improvements to the implementations of resilient finish to eliminate resiliency overheads of local activity creation
  • the addition of ULFM-MPI as a network transport for Resilient X10 applications
  • enhanced standard library support for writing Resilient X10 applications and frameworks (see x10.util.resilient).

X10 2.4

VersionDateComments
2.4.0 September 2013

X10 2.4 contains a number of significant language and class library changes that together enhance X10's ability to effectively exploit the increased memory capacity of modern computers. Specifically,

  • All of X10's array types (Rail, Array, DistArray, Region, Point, etc) now use Long (64-bit) indexing.
  • The default type of an integral literal (e.g. 3) is a Long instead of an Int.
  • The addition of new high-performance implementations of one dimensional and multi-dimensional arrays that are optimized for zero-based dense index spaces

Unfortunately, porting programs from older version of X10 to X10 2.4 will require some effort. However, the new capabilities and higher performance enabled by true 64-bit addressing should justify the investment of effort.

2.4.1 December 2013

Bug fixes and performance improvements. First release with "Resilient X10" capabilities for managing Place failure.

2.4.2 February 2014

Bug fixes and performance improvements.

2.4.3 May 2014

X10DT supports source-level debugging of Managed X10 programs!

X10 2.3

VersionDateComments
2.3.0 October 2012

Significant improvements to X10/Java interoperability functionality that was first introduced in X10 2.2.2. Based on our experiences with large scale usage of X10/Java interoperability in the M3R project (see VLDB 2012 paper) we determined that a few backwards incompatible changes to the X10 standard library are desirable to improve Java interoperability. In particular,

  • We have added checked exceptions to X10 and reorganized the X10 exception hierarchy to directly mirror Java's.
  • We have changed the API of x10.lang.String to be a strict subset of java.lang.String.
  • We have removed the restriction that all X10 classes are subclasses of x10.lang.Object and removed x10.lang.Object from the standard library.

There will be no backwards incompatible language syntax changes with X10 2.2.3 in X10 2.3.0.

2.3.1 March 2013

Bug fixes and performance improvements. This is the last planned release of the X10 2.3 language specification.

X10 2.2

VersionDateComments
2.2.0 May 2011 First "forwards compatible" release.  The X10 language specification is now considered to be fairly stable, and we hope to make future language changes in a manner such that all valid X10 2.2 programs will still be valid in future releases.
2.2.1 September 2011 Bug fixes and performance improvements.
2.2.2 January 2012

Bug fixes and performance improvements. Initial implementation of Java interop.

2.2.3 August 2012 Bug fixes and performance improvements. This is the last planned release for the X10 2.2 language specification