On 07.05.2009, at 17:38, Andreas Raab wrote:
Igor Stasenko wrote:
It makes absolutely no sense to say "oh, we'll all just look it up and then somehow it's going to magically work". Version information is *critical* if you want to play things together in the long term - it has allowed us to have a very smooth ride for a very long time in this area and I wish Squeak would have more of that in general.
Taking a function pointer by name, is nothing more than enumerating the VM capabilities. Take a look at OpenGL extension mechanism. Do they have to change the version of OpenGL each time they want to add new functionality? No. You can simply ask the library about support of certain capability - and depending on answer decide what to do.
Yes, OpenGL is a great example. Because what the OpenGL consortium does is moving extensions into core functionality, increasing the version number of OpenGL so that clients know they can rely on a documented and stable API. Exactly my point.
I have no problems with a named lookup mechanism in addition to a core interface. In fact we have one, it's ioLoadFunctionFrom. It solves a useful problem, namely that of how to support entry points where you don't know whether they will be available in the future or if it's only for use in this one version. But it's not a replacement for a documented core API.
+1
But back to the original question - do we want to change the plugin API for 4.0 VMs?
- Bert -