[[TracNav]] = Welcome to Project Fortress = Fortress is a new programming language designed for high-performance computing (HPC) with high programmability. Fortress features include: * [ImplicitParallelismInFortress Implicit parallelism] * [TransactionsInFortress Transactions] * [MathSyntaxInFortress 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 [source:trunk/LICENSE License File]. The Sun Labs team is now hard at work on a compiler. = Announcements = '''October 23, 2009''': We have started a '''blog'''. [http://projectfortress.sun.com/Projects/Community/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: [http://projectfortress.sun.com/cgi-bin/fortifier 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 [http://iss.ices.utexas.edu/lonestar/ 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 [wiki:MITTutorialApril2009 slides and exercises] on the course Wiki page. [http://projectfortress.sun.com/Projects/Community/attachment/wiki/WikiStart/reference.pdf?format=raw A quick Fortress reference card] is now available. A tutorial attendee [http://www.cilk.com/multicore-blog/bid/9340/First-Impressions-of-the-Fortress-Language posted in the Cilk Arts blog]. '''January 30, 2009''': Fortress now requires Java 1.6. This [UsingJavaOnMac requires configuring Mac OS X to use 1.6] and when building from source you should [SuggestedAntRc set up .antrc]. [PreviousAnnouncements 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: * [http://projectfortress.sun.com/Projects/Community/attachment/wiki/WikiStart/reference.pdf?format=raw Project Fortress Reference Card] * [http://projectfortress.sun.com/Projects/Community/attachment/wiki/WikiStart/vocabulary.pdf?format=raw Project Fortress Quick Vocabulary Guide] * A "Boot Camp" was held by the [http://research.sun.com/projects/plrg Programming Language Research Group] of [http://www.sun.com/ Sun Microsystems] [http://research.sun.com/ Labs] — the purpose was to ramp up our summer interns. The [http://research.sun.com/projects/plrg/Publications/BootCamp2008.html boot camp material] is available and can serve as a useful introduction to many aspects of Fortress. * [FortressByExample Fortress by Example] * [source:trunk/Specification/fortress.1.0.pdf Fortress Specification] = Fortress Users = An updated version of Fortress 1.0 is now available for download as a [download:9 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 [http://projectfortress.sun.com/mailman/listinfo 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. [StringRestructuring More information ...] = Fortress Developers = Eclipse users will need to install the [http://www.scala-lang.org/scala-eclipse-plugin 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 [http://lampsvn.epfl.ch/trac/scala/ticket/1606 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 [http://www.scala-lang.org/node/353 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. [AstRestructuring AST restructuring design notes and plans] [CompilerDesignNotes Compiler design notes and plans] [UnderstandingApply Understanding how function and method application work in the interpreter] [http://projectfortress.sun.com/trac_static/performance/ 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 [http://trac.edgewall.org/ 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 [/Projects/AboutThisInstallation/chrome/site/TermsOfUse.html 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 [wiki:FortressQuestions questions], your [wiki:FortressByExample code samples], your [/Projects/Community/newticket requests for enhancement and bug reports], and so on. The Fortress community interacts in several ways * The mailing lists: [http://projectfortress.sun.com/mailman/listinfo 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 [report:1 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 [wiki:SCAInstructions 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 [http://research.sun.com/projects/plrg Programming Language Research Group] of [http://www.sun.com/ Sun Microsystems] [http://research.sun.com/ Labs]. Our work was originally funded by the [http://www.highproductivity.org/ 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 = [PressList pages that refer to Project Fortress]