Thilo,
I am happy to hear about the acceptance of BOOST. However, we have to be careful as we are working on standardizing the language-independent SAGA API here. The C++-related features should go to the C++ language binding. In there, we must use today's C++ standard, unless there is strong evidence that "tomorrow" (meaning: BOOST becoming standard) is going to happen really soon now. But this discussion should be deferred to the writing of the C++ language binding. (We just should keep the language-independent SAGA spec clean of this issue.)
We should keep Boost out of the spec. I agree here. And we should keep it out of the language binding as well (at least as far as a certain Boost feature isn't expected to be part of the next C++ Standard). I agree here as well. But we don't have to keep Boost out of our C++ implementation. That's the point where I disagree.
After another night of thinking:
I believe that the language-independent SAGA spec must not prescribe any memory management and object lifetime issues at all. This is purely to be addressed in the language bindings, same as with thread safety.
So, my revised suggestion is:
a) The SAGA specification does NOT address issues of object life cycle and memory management at all. It is subject to the language bindings of SAGA to define this in a way that suits the respective programming languages.
Agreed as long as we require some kind of generalized 'deep copy semantics' for all saga objects. Please don't get me wrong. That doesn't mean an implementation has really to use deep copy semantics, this only means, that for the application programmer it has to appear to have deep copy semantics (how this might be implemented is highly implementation defined).
Further, I think we should have a disclaimer in the SAGA spec like:
The programmaning examples used in this document are for illustrative purposes only. They do NOT prescribe any bindings to particular programming languages. These will be defined in companion documents.
Disclaimers are always a good thing! You should add something as: please use SAGA only if you know what you're doing :-P Regards Hartmut
Thilo -- Thilo Kielmann http://www.cs.vu.nl/~kielmann/