These are categorised release note for the Swift 0.4 release. Items listed below are changes since Swift 0.3. Swift can be downloaded from http://www.ci.uchicago.edu/swift/ ========== Language and library ========== *** @arg now takes a second optional argument which stands for a default value in case the command line argument is missing. *** Overloaded '+' operator to allow string concatenation *** Multidimensional array handling. Can now declare arrays like this: file f[][]; and refer to elements like this: f[1][1] f[1] refers to a one dimensional array, in the style of Java arrays. *** Added readData function *** Added an external mapper to allow invoking a script to do the actual mapping ========== Configuration ========== *** Added -runid parameter that specifies the run identifier on the command line, rather than having it automatically generated. This must be unique for every invocation of a workflow and is used in several places to keep files from different executions cleanly separated. By default, a datestamp and random number are used to generate a run identifier. When using this parameter, care should be taken to ensure that the run ID remains unique with respect to all other run IDs that might be used, irrespective of (at least) expected run location, workflow or user. *** new parameter, execution.retries to specify the number of time a job will be retried if it fails (giving a maximum of 1 + execution.retries attempts at execution) *** Added filesystem site catalog element. Looks like 'execution' and allows, for example, SSH to be used for remote filesystem access. *** Many unused fields in the sites catalog, sites.xml, are now optional. *** Profile names/keys in tc.data are now case insensitive ========== Filesystem layout ========== *** Stage out wrapper log files in a similar fashion to kickstart records. *** Store kickstart records in a subdirectory with the same base name as is used for log files. *** Concurrent mapper now generates filenames in a relatively deep directory hierarchy in order to reduce the number of files in each directory. There is a (hard-coded) parameter which determines how many files and subdirectories will be permitted at each level. This parameter is set to 25. *** move various job related directories into subdirs on site-side. at present, the subdirs are named by a single digit directory. ========== Deprecation of unsupported features ========== *** Complete removal of "while" statements from the language. They do not seem to have a use, and haven't worked for some months due to their removal from the XML intermediate form. *** Nested statement blocks are no longer supported. These saw little use and were buggy. *** Deprecated use of .dtm extension for source files. Use .swift instead. Support for .dtm will be dropped eventually. ========== User interface ========== *** Progress ticker on stderr every 10..60 seconds ========== Compiler ========== *** SwiftScript source file line numbers are now passed deeper into the compiler in order to give location information in more error messages. This has resulted in a schema change for the XML intermediate form. *** Better compile-time checking of variable usage. Use of undeclared variables and multiple assignments to the same variable will now result in a compile-time error (close to the start of a run), rather than an error during execution (which may be many hours later). *** r1214 made type specification illegal in a foreach but still recognised it and threw an error. This commit removes recognition of that from the parser entirely (as was intended to eventually happen when r1214 was made) For further information, consult the documentation and mailing lists linked from http://www.ci.uchicago.edu/swift --