On Friday 25 June 2004 08:48, Michael Latta wrote:
I am considering creating a VM for Self with some language extensions and would like comments:
- I am considering making the inheritance of structural slots
declarative. Rather than listing the copydowns in each child object, allowing the parent to annotate a slot as copied. The child objects would still need to be able to exclude those they replace with behavior.
- I am considering adding an annotation to a slot that will cause it
to be cloned when the object is cloned.
These ideas come from working with modeling where there is more declarative work. The items above would also need syntax to support textual definition of those aspects. For example 2 above could be <slot>+ to indicate aggregation. The idea is to reduce errors and reduce code to manage these aspects of a system.
Let me know what you think, or if there are good reasons to leave it in code.
A little off track, but, I'd like to see the following in Self:
1) a drastically simplified VM so that it can be more easily ported. All ports but the Sparc and Mac are a little flaky in my experience (sometimes a lot flaky). Having a VM that is so difficult to port makes support and expansion of the Self "marketplace" more difficult.
2) move more of the optimization into Self rather than hardcoded in the VM in C++.
I like your ideas about the language! While I like Self's simplicity a lot, it is often nice to have reasonable short cuts for very common idioms like those you've covered above.
I'm unclear on what the current license of Self is. It was a bit restrictive at one point, but that was a long time ago.