Welcome to Project Fortress

Fortress is a new programming language designed for high-performance computing (HPC) with high programmability. Fortress features include:

The current implementation of Fortress is a reference interpreter, which is released under a BSD License. Other software included in the distribution bears various open source licenses. All of these are included in the License File. The Sun Labs team is now hard at work on a compiler.

Announcements

October 23, 2009: We have started a blog. Click here or click the "Blog" item at the right-hand end of the menu bar at the top of this page. We hope to post interesting items at least once a week.

June 26, 2009: We have put up a web server that takes a Fortress source file and produces a pdf file:  fortifier. Consider this tool "beta" quality stuff. It's useful for quickly getting ahold of rendered versions of whole Fortress source files. For more sophisticated tasks, fortify, fortick, etc., are the way to go.

June 1, 2009: We are interested in seeing the  Lonestar benchmark suite written in Fortress. If you'd like to try your hand at writing an interesting Fortress program, please let us know. We're hoping to use these to help guide our future performance work with the Fortress compiler.

May 9, 2009: We recently ran a tutorial at MIT and have placed slides and exercises on the course Wiki page. A quick Fortress reference card is now available. A tutorial attendee  posted in the Cilk Arts blog.

January 30, 2009: Fortress now requires Java 1.6. This requires configuring Mac OS X to use 1.6 and when building from source you should set up .antrc.

Previous announcements

Learning About Fortress

Fortress is a large language and learning about it can be daunting. Here are some resources to get you started:

Fortress Users

An updated version of Fortress 1.0 is now available for download as a 2009-06-30 pre-compiled zip file. This includes the first work towards a compiler (it compiles very simple programs), some interpreter updates, much improved parser error messages and static analysis.

If you download the zip file, consider signing up on  some of the mailing lists, or checking back from time to time, because we are continuing to find and fix bugs, add features, and improve the performance. And please, use the "New Ticket" tab above to report bugs.

String is now a trait. A primitive string, as you get from a string literal, is now a JavaString, a subtype of String. More information ...

Fortress Developers

Eclipse users will need to install the  scala plugin. The repository contains changes and additional files (.project, .classpath, .settings, .externalToolBuilders) to make this happen. This has not yet been shown to work with Eclipse 3.3. There's at least  one known bug that you must train yourself to ignore. In addition, the "Refresh" command (after external builds) is not longer adequate; for unknown reasons, perhaps a bug (but who can tell?) it is now sometimes necessary to perform "Project > Clean...". Debugging and rebuilds after saves still seem to work, at least for Java source files.

Netbeans users will need to install the  Netbeans Scala plugin. When you click through to the download, be sure to get the zip file and unpack it; there are dependences on other plugins, and the zip file contains all of them.

AST restructuring design notes and plans

Compiler design notes and plans

Understanding how function and method application work in the interpreter

 Performance testing measures are now available from our cruise control builds.

Fortress Community

The Fortress community aims to be as completely open as is practical. Anyone who wants to can look around this site; there is no need to register. This site is built using  Trac, and permits free browsing of project activity ("Timeline", in the header bar), project source ("Browse source"), and bug reports ("View Tickets"). Anyone who registers can modify this site. Registration requires that you read, understand, and agree to the Terms of use; once registered, you may create or modify wiki content and tickets (bug reports). If you can register, please do, we welcome your questions, your code samples, your requests for enhancement and bug reports, and so on.

The Fortress community interacts in several ways

  • The mailing lists:  subscribe here. We will update GMane information soon.
  • The Discussion Forums on this site are currently read-only; we decided that we preferred to have discussion on the mailing lists instead.
  • Some "discussions" will also take the form of tickets, which are like generalized bug reports. For example, proposed language changes can be filed as "language change" tickets, and intended code cleanups will be listed as "cleanup" tickets. You can comment on tickets filed by others.
  • Through the source code subversion repository. Anyone may check-out from the subversion repository:
    svn checkout https://projectfortress.sun.com/svn/Community/trunk PFC
    
  • If you wish to contribute to the repository, complete a Sun Contributor Agreement, fax or mail it in, and we'll enable write privileges for the name you chose at registration.

Who we are

Project Fortress is led by the  Programming Language Research Group of  Sun Microsystems  Labs. Our work was originally funded by the  DARPA HPCS project, and has continued as a Sun Labs project.

What's here

For a complete list of local wiki pages, see TitleIndex.

Fortress in the press

pages that refer to Project Fortress

Attachments