We are in the process of implementing x10doc, a javadoc-like tool for X10 programs. You can access the most recent x10doc-generated html for the current X10 standard libraries by following the link below. Note that x10doc (and the X10 standard libraries themselves) are still a work-in-progress. Some of the main limitations of x10doc are enumerated below. Despite these known issues, we believe the x10doc-generated html is sufficiently useful to make it publicly available. If you have comments or ideas for improvements, please open a JIRA issue against the X10Doc component.

Online Documentation for the X10 Standard Library

Some of the main known limitations of x10doc are:

  • X10 features that are not present in Java, such as properties, closures, constraints, and type definitions, are specified in detail in associated comment lines.
    • Properties are shown as fields, but with an attached "Property." line in the comment.
    • Type definitions are shown as methods with an attached "Type Definition" comment line which also contains the X10 type definition.
    • Similarly, there are "Field Type" and "Declaration" comment lines to display details of field types, method/constructor return types, method/constructor parameter types, and class declarations that contain X10-specific features.
  • Class invariants, and method and field constraints are currently not displayed.
  • Constraints have blown-up representations, e.g.,
    Point{_self1408.x10.lang.Point#rank==x10.lang.Array#this.x10.lang.Array#dist.x10.lang.Dist#region.x10.lang.Region#rank}
    for
    Point{self.rank==this.dist.region.rank}. The succinct version can be obtained by removing the underscore and number around self, and removing all "package.class#" substrings. For example, _self1408.x10.lang.Point#rank is self.rank.
  • Sections "All Superinterfaces" for interfaces and "All Implemented Interfaces" for classes are incorrect. However, the declarations, "interface Foo extends ..." and "class Foo ... implements ..." provide accurate information about interfaces that are directly extended/implemented by interface/class Foo. In addition, Foo.html lists the members inherited from all superinterfaces.