I looked to the different solutions in the wikipedia page and I though than that was actually one of the "semantic problems" computers does not face very well. So I spend sometime thinking about this and my conclusion was that the solution will depend on the intended use of the classes in a given application or model.
Then I'd got the idea of using AOP and dynamic inheritance to implement the semantics for a given application as an orthogonal feature, keeping the class hierarchy as isolated as possible. In other words, to extend a given model with aspects that encapsulates the semantics behind it.
So, I tried to implement this idea using GNU/EDMA
We have registered NetKitty in Savannah in order to make more easy the distribution of new releases and keep the sources under git.
For now we are just using the FTP and the git repository... maybe the mailing list will be interesting in the future
It took a bit more than expected but GNU/EDMA 0.18.0 is out. If you're curious you can download it here.
GNU/EDMA uses shared memory to keep its core classes repository. Using shared memory makes thinks like run-time installation and hotswap easier.
However, GNU/EDMA has had a problem because that from the very beginning... shared memory ownership. Whenever you create a shared memory block, that block belongs to the user that created it, and therefore, only that user (or root) can delete it.
There are three main ways to deal with this issue.
What I would like to show you is the object hot swap capabilities of the system. Such feature has been there for a while, but what is new, is that now the update scripts can be wrote in Python :). Check the image below
Yes, believe it or not, that small program has been one of the most useful applications I've ever used. I will tell you about the latest situations I used NetKitty (version 1.7-RSO :), and how it helped.
Thanks a lot for this great work!