[SAGA-RG] saga core errata

Andre Merzky andre at merzky.net
Tue May 12 07:31:25 CDT 2009


Hi folx, 

I have no doubt that there is a fundamental reason why the
German language has such a large number of proverbs which
literally inspire procrastination ("Gut Ding braucht Weile",
"Was lange waehrt wird gut", "Rom wurde auch nicht an einem
Tag gebaut", usw.

In anyway, that is what you have to blame for the long delay
of the errata release of the SAGA core spec: my German
genes... ;-)

So, attached is the pdf which has all errata known to date
incorporated, and marked.  Also attached is a version which
has the markup removed, a changelog, and the original ERRATA
file from CVS, which documents the errata we received.

Please comment!  But as the errata have already been discussed
during the last two OGF meetings, I would also like to
declare this as a final call on the SAGA mailing list:
unless there are significant comments, I'll submit the doc
to the OGF editor after one week.

BTW: thanks to Mathijs, Paul, Hartmut, Steve, Ole, Joao,
Thilo, Ceriel, and PFA for reporting spec errors (hope I did
not forget anybody...).

Many thanks for your patience, best wishes, 

  Andre.


PS.: We have two SAGA sessions scheduled for OGF-26.  
 

-- 
Nothing is ever easy.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ERRATA.tex
Type: application/x-tex
Size: 22833 bytes
Desc: not available
Url : http://www.ogf.org/pipermail/saga-rg/attachments/20090512/ffa62e59/attachment-0001.tex 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: saga-core-api-v1.0-errata-markup.pdf
Type: application/pdf
Size: 982036 bytes
Desc: not available
Url : http://www.ogf.org/pipermail/saga-rg/attachments/20090512/ffa62e59/attachment-0002.pdf 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: saga-core-api-v1.0-errata.pdf
Type: application/pdf
Size: 950268 bytes
Desc: not available
Url : http://www.ogf.org/pipermail/saga-rg/attachments/20090512/ffa62e59/attachment-0003.pdf 
-------------- next part --------------

----------------------------------------------------------------------

1.0-errata

  The SAGA Core API 1.0 got several errata reports.  The
  following list describes how that errata have been applied.

  - typos, spelling and grammar have been fixed in several
    places.  These fixes are not listed individually.

  - The biggest change is that saga exceptions are now
    recursive objects, i.e. they can provide a list of lower
    level exceptions.  That change is backward compatible, and
    is introduced mainly for the sake of late binding
    implementations.  At the same time, the stricly prescribed
    exception precedence has been relaxed, and can be changed by
    the implementation.  The NotImplemented exception now has
    lowest precedence.

  - clarified what L&F classes MUST be implemented, and when
    NotImplemented exceptions MAY be thrown.

  - read_v method now throws BadParameter when "out of bounds":
    when  no len_in is specified, the buffer size is used
    instead as len_in.  If, in this case, 
    offset > 0, a BadParameter exception is thrown.

  - write_v method now throws BadParameter when "out of
    bounds": when  no len_in is specified, the buffer size is
    used instead as len_in.  If, in this case, 
    offset > 0, a BadParameter exception is thrown.

  - default flag for file open is now Read
  
  - Create flag now implies Write
  
  - CreateParents flag now implies Create

  - callbacks now can remove conditions to be called again, i.e.
    shut down the metric, read more than one message, etc.
    Implementations MUST be able to handle this.

  - clarified URL behaviour for relative path elements, and time
    of expansion.

  - task.get_result() now calls rethrow() if it is in Failed state.

  - url.get_xxxx() returns "" on undefined/unknown values, or -1
    for get_port()

  - add JobProject and WallTimeLimit to job_description
    attributes

  - run() postcondition is now 'left New state' instead of 'is in
    Running state', to avoid races with jobs entering a final state
    immediately.

  - url was added to the list of L&F packages/classes in
    paragraph 6 on page 17.

  - clarified behaviour of get_link(): resolves only one level

  - context c'tor does not call set_defaults() anymore.
    set_defaults() is now called on session.add_context() - the
    original context is left untouched (remeber: add_context
    performs a deep copy on the context to be added).
    complicates usage if default ctx cannot be initialized.

  - namespace got read/write flags after all, as they are
    needed for directories.

  - URL escaping has been clarified, and a get_escaped()
    method has been added, to enforce character escaping.

  - close() is not throwing IncorrectState anymore.

  - object.clone() does not copy the object id anymore, but
    assigns a new, unique one.

  - On page 225, the notes of NSDirectory.copy(source, target, flags)
    have been fixed.

  - RPC c'tor signature has been fixed (parameter name)

  - Signature for task_container.timeout() has been fixed
    (default value was missing)

  - URL was added to the class diagram, and iovec and parameter
    have been moved into their respective packages.

  - RPC, page 303 and 305: size parameter in the constructor
    fixed.

  - 'Exception' has been removed from object::type enum

  - job now provides the ServiceURL attribute which allows to
    re-create the job::service instance which handles the job.

  - a url::translate() variant with explicit session parameter
    has been added.
   
  - session.list_contexts() now returns deep copies of session
    contexts, not shallow copies.  
   

----------------------------------------------------------------------

1.0-RC.7

  The SAGA Core API 1.0 RC.6 passed the public comment period.
  This changelog describes what changes have been applied to the
  document in reaction to the changes, and what additional
  editions took place.  The purpose of the document is to help
  the reader to understand the evolution of the document, and to
  simplify the progress of the specification in the OGF document
  process.  These changes are from version 1.0-RC.6 to 1.0-RC.7.

  - introduce a buffer class for uniform management of I/O
    buffers.
  - introduce a URL class for uniform parsing and handling of
    URLs and names.
  - radical overhaul of the permission model: ACLs are gone, and
    unix like permissions are introduced on all first class
    SAGA objects.
  - added PRECONDitions and PostConditions for all method calls.
  - added PERMissions for all method calls.
  - several SAGA interfaces now implement the task interface if
    they are used by classes which implement the task interface
    themself.
  - several SAGA interfaces now implement the permission
    interface if they are used by classes which implement
    permission task interface themself.
  - copy semantics for SAGA objects (shallow versus deep copy)
    has been clarified.
  - the lifetime of the default SAGA session has been clarified.
  - the SAGA class diagram has been updated.
  - the usage of URLs has been clarified.
  - byte ordering issues have been clarified.
  - relation of SAGA exceptions and middleware exceptions
    clarified.
  - fixed order/precedence of SAGA exceptions.
  - allow for nested exception in bindings (for implementations
    with late binding).
  - clarify usage of object types.
  - change saga::context to be more extensible and backend
    specific, while simplifying its attributes and
    initialization (set_defaults()).
  - clarify the formatting of user IDs for saga::context
    instances.
  - attributes cannot implicitely converted between vector and
    scalar attributes anymore - that was confusing.
  - simplified signature of find().
  - changed the task interface: return values for async ops are
    essentially created at the point where they are used.
  - updated/fixed all state diagrams according to the new task
    model.
  - get_object() has been re-introduced on the task.
  - clarified that asynch object construction is a matter for
    the language bindings.
  - added verbose description for all enum types.
  - allow bindings to inherit the task container from native
    containers.
  - added support for the JSDL SPMD extension to the job
    description.
  - removed some unusable job description attributes.
  - clarified consistency semantrics of saga::logical_file
    instances.
  - clarify why no raw JSDL is supported.
  - clarify semantics of find() calls.
	- the semantics of URLs was changed to follow RFC-3986.  That
	  implied a couple of changes to calls in the namespace package, in
		particular in respect to wildcard expansion.
  - removed (unused) attribute interface from file.
	- the metric type 'trigger' was changed to have no value.
	- the order of parameters for I/O operations was switched to allow
	  for better default values.
  - unified semantics over the various packages:
    - open on object construction
    - exception semantics
    - close() semantics
    - state management
    - bitwise ORing of flags
  - several examples have been clarified.  
  - countless spelling, grammar fixes and formatting fixes.



More information about the saga-rg mailing list