[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