XPS Documentation

Roadmap To Release 1.0

XPS is currently a young software project. There is much work that needs to be done between its current state and the first production-ready release, 1.0. The table below describes the high level goals of each minor release on the road to 1.0. Refer to this page often as it is updated whenever the plans change and provides the master document for release planning.

Release Status Description and Deliverables
xps-0.1.1 100%
(2002-07-27)
XPL. This release provides a basis for discussion about the XPL language. The XPL Schema, and associated documentation, will be published for review. The build environment will also be set up so that we can start placing files into revision control and configuring XPS.
xps-0.1.9 100%
(2003-04-22)
XPL Revisions. This release was provided in preparation for 0.2.0. It contains a number of architectural changes, the most significant of which is the removal of the dependence on ACE. You no longer need ACE to build XPS. You do still need Xerces and ICU. XPS now contains its own operating system abstraction layer. This will allow XPS to shrink its foot print, be more easily configured, and allow optimization not otherwise available with ACE. This release passes "distcheck" and all programs link, however they don't do much. xplc can still be used as a syntax checker for XPL programs as in release 0.1.8.
xps-0.2.0 100%
(2005-05-24)
Framework. This release will prove the build environment by committing the framework software of the system. The framework will compile correctly to an XVM and XPLC that have little functionality. Additionally, architectural changes to further minimize the XPS footprint will be made. This release will provide a minimal version of xplc that will be able to correctly parse, validate and recreate XPL core programs.
xps-0.3.0 5% XPL Core. To get us started with compiling and running XPL programs, we will implement only "XPL Core" which is only a slight abstraction over the low-level, SSA based procedural capabilities of LLVM. Other aspects of the language may be parsed but ignored. There will be no extensibility of the compiler at this time. No object or concurrency constructs will be implemented at this stage. The goal is to get through a complete pass at compiling an XPL program and running it in such a way thati it actually does something useful. This release is expected to be the firsti release in which you can do something useful with XPS.
xps-0.4.0 0% OOP. Following on the procedural programming experience of the last release, the object-oriented programming (OOP) extension will be made so that XPL based language can include features like interfaces, classes, messages, methods, invariants, inheritance, polymorphism, abstraction, encapsulation, and etc. This release of XPS will be robust enough for general programming using modern techniques.
xps-0.5.0 0% XVM. This is the virtual machine release. Previous releases did not provide any memory management, synchronization, tasking, or advanced I/O features in the XVM. This release provides all those features and makes the virtual machine extensible through the use of plugin modules. Extensions to the XVM will permit tracing and remote debugging interfaces. The programming model for XPL and its extensions remains the same with only slight code generation changes in the compiler to adjust to the new virtual machine.
xps-0.6.0 0% Tools. At this point, attention will divert to providing tool support for users of XPS. The system will provide a complete distributed programming environment to support development, build, execute, and deployment services. Features such as configuration management, code versioning, build execution, promotion, execution environment support, and workspaces will all be completely flushed out. A "build server" daemon (XPSD) will implement a variety of services to permit remote XPS development and system control. A basic system monitor will be implemented to provide realtime status of the execution of XPL programs. At the end of the release, we have a programming system that can be used to build, execute, deploy, and manage large software systems.
xps-0.7.0 0% Security. The entire focus of this release will be the incorporation of security features into the system. All authentication, authorization, encryption, non-repudiation, and system-survival features will be implemented in this release.
xps-0.8.0 0% Quality. In the previous releases, we will have undoubtedly left things out, put some things off, and generally taken short cuts. This release will focus on the quality of the XPS software, filling in those holes. Coding standards will be enforced, test suites will be upgraded, documentation will be written, APIs will be explained, the structure will be simplified, redundancies will be eliminated, newer technologies and releases of foundation software will be incorporated, etc. In short, we won't be adding any features in this release, but we will be focusing on making XPS maintainable, extensible, usable, and understandable.
xps-0.9.0 0% Beta. This release will be the first feature complete and generally distributed release of XPS. No new features will be added before the 1.0 release. Instead we will focus on performance, scalability, portability, and correctness of function. This release will be widely publicized and we will work with early adopters to assist them in their deployments of XPS. There may be several point releases after 0.9 (i.e. 0.9.1, 0.9.2, etc.) that incorporate fixes discovered as users begin to use XPS more heavily.
xps-1.0.0 0% Production. This release contains no new functionality other than what was provided in the 0.9 release and subsequent bug fixes. Not until quality is deemed high enough, bug reports have slowed down, and beta users have dubbed the system stable will 1.0.0 be released.
xps-1.f.p 0% Subsequent. Releases subsequent to the 1.0 release will follow the Linux numbering scheme. Odd release numbers (e.g. 1.1.x) will be where developers work. Even release numbers (e.g. 1.2.x) will be stable for users and only contain bug fix patches. All releases after 1.0 will be feature driven by popular request of both developers and users.