---------------------------------------------------------------------- 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.