[Swift-devel] 0.9 release notes draft

Ben Clifford benc at hawaga.org.uk
Fri Apr 24 07:50:31 CDT 2009


Below are the draft release notes for 0.9. They need more formatting, but 
all the text is there.

I have said little about coasters other than document two new 
configuration parameters and 'substantial ongoing development work'. If 
there are any specific additional points to be made there, comment here.

======


User interface
==============

*** Added console text interface to provide live information about swift
    runs, which can be enabled with the -tui commandline parameter

*** when replication is enabled, swift will locally kill jobs that have
    run for twice their specified walltime

Execution modes
===============

*** Support for Condor-G submissions, by setting a job specification attribute
    of "grid" and specifying a gridResource attribute containing the string
    to be placed into the Condor-G grid_resource classad.

*** Support for submissions to a local condor pool

*** Coasters: substantial ongoing development work

Configuration parameters
========================

*** Environment variable SWIFT_EXTRA_INFO, when set in an environment profile,
    is executed with the result being recorded in wrapper logs. This allows
    arbitrary information about the remote environment to be gathered and
    returned to the submit side.

*** New configuration option wrapper.invocation.mode, specifiable either
    globally in the configuration file or per-site as a profile key,
    that configures whether wrapper script invocations are made with an
    absolute path (as was the behaviour in Swift 0.8) or with a relative
    path (as was behaviour in previous versions of Swift).

***     coasterWorkerMaxwalltime - a coaster parameter to explicitly set worker maxwalltime, overriding the default computation based on job walltimes. this should be useful when it is desirable to specify worker parameters based on the known properties of the target queue rather than on properties of the jobs to be executed inside coasters.

***     coasterInternalIP parameter that allows the IP address used by coaster workers to communicate to the coaster head job to be set explicitly. this can be used when running on a cluster which an internal network which cannot access the IP address that the head node picks

*** TODO maxheapsize setting on commandline...

*** property ticker.disable to disable runtime ticker display

*** strsplit function which will split the input string based on separators that match the given pattern and return a string array.

New commands
============

*** The log-processing code, primarily exposed as the swift-plot-log command,
    has been merged into the main Swift release, rather than being a separate
    download.

*** There is a new command swift-osg-ress-site-catalog which will generate
    a site catalog based on data gathered from OSG's ReSS information
    system. This can be used by OSG users to easily generate a large number
    of site catalog entries for sites that are likely to work.

Language changes
================

*** Procedure invocations can be made in any expression context now, rather
    than only directly in an assignment.

*** Mappings can now be made in any declaration, whether it has an assignment
    or not. Previous a procedure call assignment and a mapping could not be
    made in the same statement.

*** Handling of [*] and . has changed. [*] has been broken for several
    Swift releases, but now has some approximation of its former behaviour,
    in a cleaner implementation.
    [*] is now an identity operation, that is array[*] == array.
    The structure access operator . can now take an array on the left
    hand side. In situations where a[*].img was used, it is permissible
    to continue to write a[*].img, or to write a.img - both of these will
    return an array of img elements.

*** Tighter type checking on app blocks. Primitive types and arrays of
    primitive types are permitted. Other types are prohibited.

*** Arrays of primitive types can be passed to app blocks, and will be
    expanded into multiple command-line parameters, one parameter per
    array element.

*** != operator had been broken forever. It works now.

*** output of trace() is changed for non-primitive datasets:

    * Array handling:
    Previous to this, trace would show the Java object representation of a (Future)PairIterator for arrays, which is fairly useless for a user. This commit makes trace show more about the array, and only emit the trace when the array is closed.

    * Other datasets:
    Trace will wait for those datasets to be closed, and emit their default
    string representation (including the variable name and path used in
    SwiftScript)

*** loop condition in iterate statements can now refer to variables declared within the iteration body (this was bug 177)

***    Mappings can now be made in any declaration, whether it has an assignment or not.



Deprecations and removal of old functionality
=============================================

*** Removed support for .dtm file extension which was deprecated in Swift 0.4

Internal changes
================

*** The wrapper.sh and seq.sh scripts that are deployed to remote sites to
    help with execution have been renamed to more Swift specific names, to
    avoid collision with user-supplied files of the same name. The new names
    are _swiftwrap and _swiftseq

*** Recompilation will happen if a .kml file was compiled with a different
    version of Swift to the version being invoked. This is in addition to the
    existing behaviour where a .swift file will be recompiled if it is newer
    than the corresponding .kml file.

*** Added a throttling parallelFor and changed the swift foreach underlying
    implementation to it. The throttling parallelFor limits the number of
    concurrent iterations allowed, which should allow swift to scale better
    in certain cases. This is controlled by the configuration property
    foreach.max.threads

-- 




More information about the Swift-devel mailing list