Skip to Content Java Solaris Communities Partners My Sun Sun Store United States Worldwide

»  Spotlight Articles
»  Projects
»  Publications
»  People
»  Awards
»  Events
»  Downloads
»  Internships
»  Contrarian Minds
»  About Sun Labs
Sun Labs-An Open Letter: Project Fortress Version 1.0 Release
An Open Letter:
Project Fortress Version 1.0 Release

March 31, 2008 - Today we're announcing a major milestone for the Fortress team - the release of the first version of the Fortress specification with a compliant implementation: Fortress 1.0. Both the new specification and the 1.0 implementation, available both as a stand-alone download and through a Subversion repository, are available from the project website. By bringing the specification and the implementation into alignment, we hope to further enable community participation.

"Moving forward from the Fortress 1.0 release, our goal is to continue growing and working with our open source community to build the remaining infrastructure needed to support Fortress. There are already several Fortress plug-ins for the popular IDEs, as well as libraries and contributions to the interpreter source code, built entirely by the external community. And the rate of contributions appears to be increasing; it's an exciting time for our project."

Eric Allen
co-PI of Project Fortress
Sun Microsystems Laboratories

 

What's Next?
The team is working to leverage to interpreter infrastructure to develop an optimizing Fortress compiler. The first step involves completing the implementation of static type inference and syntactic abstraction for Fortress, and using the results of the static analyzer to produce a bytecode generator. Other projects include developing more library code and example code (among other things), and someone in the community has begun a NetBeans Plugin to support editing Fortress!

Eric Allen's message to the Project Fortress Community follows:

To Fortress Community Members:
Today, we are releasing the first version of the Fortress specification with a compliant implementation: Fortress 1.0. Both the new specification and the implementation are available from the project website.

The 1.0 implementation is available both as a stand-alone download and through a Subversion repository. Please follow the instructions on the website to get it.

Our tandem release of a specification and matching interpreter is a major milestone for the project; it is a goal we have been working toward for some time. All Fortress source code appearing in this specification has been tested by executing it with the open source Fortress implementation. Moreover, all code has been rendered automatically with the tool Fortify, also included with the standard Fortress distribution. (In case you haven't used it yet, Fortify is an open source tool contributed by Guy Steele that converts Fortress source code to LaTeX.) Also note that this release includes a Fortress mode for Emacs, contributed by Yuto Hayamizu, and over 10,000 lines of Fortress library code, contributed both by Sun and by Fortress community member Michael Spiegel.

Our reference implementation has evolved gradually, in parallel with the evolution of the language specification and the development of the core libraries. In order to synchronize the specification with the implementation, it was necessary both to add features to the implementation and to drop features from the specification. Most significantly, most static checks in the implementation are currently turned off, as we are in the process of completing the static type checker and the type inference engine. Static constraints are still included in the specification as documentation. Contrary to the Fortress Language Specification, Version 1.0.beta, inference of static parameter instantiations is based on the runtime types of the arguments to a functional call. Support for syntactic abstraction is not included in this release. We do not yet support nontrivial distributions, nor parallel nested transactions. Moreover, many other language features defined in the Fortress Language Specification, Version 1.0.beta have been elided. Many of these features require additional research before they can be implemented reliably; this research and development is a high priority.

With this release, our goal in moving forward is to incrementally add back features taken out of the specification as they are implemented. In particular, all language features included in the Fortress Specification version 1.0 beta remain goals for eventual inclusion in the language (perhaps with additional modification and evolution of their design). By proceeding in this manner, we hope that our implementation will be useful for more tasks more quickly, as it will comply with the public specification. Moreover, the Fortress community will be better able to evaluate the design of new features, as users will be able to use them immediately, and developers will be able to contribute to the implementation effort more easily, as they will be able to build off of a relatively stable and well-specified base.

Moving forward with the implementation, in concert with the open source community, our goal is to build off of the infrastructure of our interpreter to construct an optimizing Fortress compiler and to achieve our long-standing goal of constructing a new programming language with high performance and high programmer productivity, owned by the community that uses it, and able to grow gracefully with the tasks it is applied to.

Thanks to all those who sent feedback on earlier versions; many of your suggestions have influenced changes in this new version. Please keep the feedback coming! Watch this space for future news from the Fortress team.

-- Eric Allen

Related Links:

Would you recommend this Sun site to a friend or colleague?
Contact About Sun News Employment Privacy Terms of Use Trademarks Copyright 1994-2008 Sun Microsystems, Inc.