From: David P G. <gr...@us...> - 2010-04-16 18:00:08
|
We're happy to announce that X10 version 2.0.3 is now available for download. This release contains a number of bug fixes and improvements to the code base. For more details, please see the X10 2.0.3 release page at http://x10-lang.org/X10+2.0.3+Release. A 2.0.3 release of X10DT is expected the middle of next week. The X10 2.0.3 Release Notes are appended. This release includes both the C++ and Java code generation backends. The following significant language changes were made since the 2.0.2 release: - To simplify the initial development of X10 programs, we have enhanced the compiler to automatically insert dynamic checks when it is unable to statically verify that type constraints of an invoked method are satisfied. The most obvious manifestation of this feature is with place types, where the compiler will automatically insert a dynamic place check when a non-global method is being invoked on a receiver object that is not known statically to be in the current place. By default, the compiler will insert the dynamic checks and report a summary of the total number of such checks inserted in each file compiled. Two command line arguments are available to modify this behavior: -VERBOSE_CALLS : verbose messages when dynamic checks are inserted -STATIC_CALLS : do not insert dynamic checks and instead treat non-entailment as a compilation error (the default behavior of X10 2.0.2). The intent is that programmers will initially develop with the default settings, but as the code matures, -VERBOSE_CALLS can be used to reduce the number of dynamic checks and in production-level code, -STATIC_CALLS can be used to take full advantage of the static type systems ability to verify static properties of the code. - There have been significant design changes and performance improvements in the x10.array class library. -- Array, Dist, Region, and Point have all been moved into the x10.array package. -- The x10.array package is imported by default (same as x10.lang). -- We have separated single place and multi-place arrays. x10.array.Array is a local (single place) array. x10.array.DistArray is a distributed (multi-place) array. -- x10.array.Array is defined over a Region and no longer has a Dist. -- x10.array.DistArray continues to have a Dist. -- Enhancements to the compiler and to the structure of the Array implementation have significantly improved the performance of Array. -- We have removed some of the more complex Dist and Region operations. In X10 2.0.4 (early June) we will be focusing on improving the performance of DistArray. In X10 2.1.0 (late July) we will be bringing back higher performance versions of additional Dist and Region operations. - We have enhanced the mechanisms used to integrate X10 code with native C/C++ libraries. Details can be found on this web page: http://x10-lang.org/NativeCodeIntegration. If you have code using the X10 2.0.2 @NativeRep annotation, you will need to add a @NativeCPPCompilationUnit annotation as well. For details on these and other more minor changes, please consult the language specification included in the X10 release. The following features described in the 2.0 language manual do not currently work and will be fixed in the subsequent releases: - Non-static type definitions as class or interface members (static type defs do work) - Type definitions as package members (i.e., in the outermost scope of a compilation unit) - AST externalization to XML - Shared local variables - Extern methods Additionally, the following features described in the language manual do not currently work with the C++ backend and will be fixed in the subsequent releases: - Garbage collection on AIX - Generic virtual methods - Exception stack traces on Cygwin and AIX The generated C++ code requires g++ 4.2 or better to be compiled; we do almost all of our testing against g++ 4.3.2. On AIX, you may either use g++ 4.2 or better or xlC 10.01.0000.0004 or better. Below is a summary of JIRA issues addressed for the X10 2.0.3 release. Release Notes - X10 - Version X10 2.0.3 ** New Features and Improvements * [XTENLANG-402] - Eliminate x10.array.FastArray; we should be striving to make x10.array.LocalArray just as fast... * [XTENLANG-582] - Improve type inference/conversion for ValRail literal being used as Point through local variable * [XTENLANG-733] - Constraints need more explanation, about just what is constrained. * [XTENLANG-905] - Reduce code space impact of Rail copyTo/from templated functions * [XTENLANG-1018] - Create java backend specific scheduler * [XTENLANG-1113] - Avoid duplicate copy of sample programs in x10.tests/examples/Misc * [XTENLANG-1143] - Reduce communication overhead of ateach * [XTENLANG-1163] - New forms-based build/launch configuration mechanism * [XTENLANG-1179] - Generate struct methods into header files where possible to enable inlining by g++ post-compiler ** Bug * [XTENLANG-215] - Accessing field of outer class in initializer of inner class causes null pointer exception * [XTENLANG-242] - Object.className() gives different results in C++ * [XTENLANG-336] - Overriding Throwable.printStackTrace(Printer) does not work for Java backend * [XTENLANG-369] - Generate line number maps for C++ code * [XTENLANG-569] - placeCheck/nullCheck on expressions of generic type when generic is instantiated on a struct * [XTENLANG-601] - class Parameters uses an instance of the class ParameterReader which is in the very same package, but I get the error message "Cannot find type ParameterReader". * [XTENLANG-621] - 'new' sometimes compiles for structs * [XTENLANG-708] - P && !P * [XTENLANG-709] - Constraint checker doesn't know |Boolean|==2 * [XTENLANG-743] - "value parameters" != "val", right? * [XTENLANG-765] - (T):T or (T)=>T for function type? * [XTENLANG-772] - Misdescription of evaluation of a function literal * [XTENLANG-776] - "final"? * [XTENLANG-782] - Precisely specify what statements can be labelled. * [XTENLANG-785] - Case labels needn't *just* be Ints. * [XTENLANG-790] - Java mention in 13.5.1 * [XTENLANG-814] - Manual should mention that some casts are illegal. * [XTENLANG-826] - Poor phrasing in 'foreach' * [XTENLANG-830] - Manual doesn't say whether or not futures are allowed inside atomic sections * [XTENLANG-863] - "values as well as types?" * [XTENLANG-892] - Hitting the APGAS handler limit * [XTENLANG-909] - Update X10RT spec for recent changes * [XTENLANG-924] - Please document literals * [XTENLANG-941] - Null pointer exception when launching X10 program with C++ backend * [XTENLANG-947] - Persistence of X10 configuration parameters within metadata not appropriate for check-out from a repository * [XTENLANG-949] - Closure has trouble accessing variables from surrounding scopes * [XTENLANG-953] - New X10 Platform configuration for C++ back-end fails validation on Mac OS X Leopard at link step * [XTENLANG-954] - "Configuration name" field in "New X10 Platform Configuration" adds Return key to name * [XTENLANG-970] - Variable visibility rule not enforced -- enforce it or abandon it. * [XTENLANG-972] - Typechecker doesn't seem to know that arg==arg * [XTENLANG-980] - Compiler doesn't understand negative type constraints very well. * [XTENLANG-990] - Null pointer exception in X10DocProvider * [XTENLANG-1015] - X10DT: Cannot find classes in the same or other package * [XTENLANG-1017] - Typechecker fails to reject program that uses an "erased" generic type in instanceof/as operation * [XTENLANG-1021] - Long typechecker error message * [XTENLANG-1024] - Hyperlinking from a reference to the corresponding declaration doesn't work * [XTENLANG-1053] - Type system is confused by constrained argument * [XTENLANG-1099] - Java backend: instanceof Object returns true for a type parameter instantiated on a user-defined Struct * [XTENLANG-1105] - Grammar clarifications * [XTENLANG-1106] - Stackoverflow when initializing cyclic runtime types in C+ backend * [XTENLANG-1114] - Rail.copyTo without finder with notifier does not exist anymore (needed for LU) * [XTENLANG-1117] - Bad Java code generation for increment of byte * [XTENLANG-1119] - Method comments stripped away from some classes * [XTENLANG-1121] - ValRail literals of more than 6 non-primitive elements not supported by C++ backend/runtime system. * [XTENLANG-1122] - Field comments not shown * [XTENLANG-1141] - Sending multiple copies of the same reference to some place and back results in inconsistent received references * [XTENLANG-1145] - Coercion of a large floating-point number to a byte gives -1, not the largest byte * [XTENLANG-1156] - Returning a numeric primitive from a method with return type Any results in bad generated C++ code * [XTENLANG-1157] - Inline optimization broken: "Cannot refer to |this| from the context" * [XTENLANG-1159] - Bad AST transfromation for local class remove * [XTENLANG-1161] - Hover help should show accurate type information, etc. for all entities * [XTENLANG-1170] - creating a Stack of struct fails * [XTENLANG-1172] - Comparing a value of a generic parameter type with null fails in the C++ backend when the generic is instantiated on a struct * [XTENLANG-1180] - Assertion error/NullPointerException attempting to iterate over a non-iterable entity * [XTENLANG-1182] - Invalid C++ code generated for a place type cast in a loop header * [XTENLANG-1186] - X10DT: editor sometimes draws a solid red line for a compile error * [XTENLANG-1187] - X10DT: Font changes in the editor when restarting the workbench * [XTENLANG-1208] - X10DT editor: ParseController does not behave correctly * [XTENLANG-1209] - X10DT editor: Wrong icon displayed for a file with a compilation error * [XTENLANG-1217] - Point.hashCode() not implemented * [XTENLANG-1237] - Place types not properly infered for val field with initializers. * [XTENLANG-1255] - File.lines() should return a ReaderIterator [String]! For the details of JIRA issues fixed in this release, see http://jira.codehaus.org/browse/XTENLANG/fixforversion/16215 Please use the X10 JIRA to report bugs, after ensuring the problem is not already reported: http://jira.codehaus.org/secure/IssueNavigator.jspa?reset=true&&pid=11812&resolution=-1 |