TracNav menu
Welcome to Project Fortress
This is the community site for Project Fortress.
Fortress is a new programming language designed for high-performance computing (HPC) with high programmability. Fortress features include:
- Implicit parallelism
- Transactions
- Flexible, space-aware, mathematical syntax
- Static type-checking (but with type inference)
- Definition of large parts of the language in its own libraries
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.
Announcements
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.
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.
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.
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.
Fortress now has Streams, which are used for standard output, error output, and file output. Fortress programs no longer share the interpreter's System.out. More information ...
The default getter for converting an object to a String is now asString, not toString. More information ...
This start page has been reorganized. If you have suggestions for improvement, please post a ticket
Learning About Fortress
Fortress is a large language and learning about it can be daunting. Here are some resources to get you started:
- A "Boot Camp" was held by the Programming Language Research Group of Sun Microsystems Labs — the purpose was to ramp up our summer interns. The boot camp material is available and can serve as a useful introduction to many aspects of Fortress.
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
Any 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
Attachments
- reference.pdf (158.7 kB) -
Project Fortress Reference Card
, added by sukyoungryu on 05/07/09 10:20:08.
