I don't see how it will possible to create anything other than very
limited plug-ins without some means of accessing a reasonable/small
set of system-supplied primitive services. I know from personal
experience that it is possible to efficiently abstract such services
in a cross-platform manner, and that if the set of services is kept
small and chosen carefully, the work to implement the layer for any
given platform can be pretty small. For example, the reason the
Beatnik engines can be ported to any platform is because of the
platform abstraction layer (glue to the native OS memory, file
system, time, thread, etc. services).
However, it may be possible that there already exists a good-enough
spec for such platform abstraction. I don't know of any, but maybe.
So I would suggest a mixture of b) and c), along these lines:
"In order to help simplify the porting of plug-ins to different
platforms, the GMPI specification should include the definition of a
standard mechanism for accessing a limited set of basic host system
services, including at a minimum memory and file system services, and
perhaps also time and thread services. If a suitable specification
for this already exists and has reliable implementations across the
targeted platforms, it should be given consideration; otherwise a new
minimal specification will need to be developed."
-- Chris
>To summarize this debate as a "requirement", which is what this discussionis supposed to be about... "The GMPI specification should define the calling convention to be used for the plugin interface. The calling convention should be chosen to allow <x y z> programming languages to be supported and <a b c> operating systems to be supported."
i agree with this wording, but the point i was trying to convey was that the calling convention is just one part of the cross-platform picture. its clear that we do have to define the calling convention to cover those platforms where it varies. but i've also tried to establish that there are other things that plugins need to do for which the only option right now is a platform-specific approach. so i guess to restate this in the form you've chosen, i can see 3 options:
a) the GMPI specification should not address how plugins access various system resources and configuration information.
b) the GMPI specification should include a definition of how a plugin can access various system resources and configuration information. it should also define which resources and information are available in this way.
c) the GMPI specification will reference/encourage use of another specification to allow plugins to access various system resources and configuration information.
which should it be?
---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission.
Archive: //www.freelists.org/archives/gmpi Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe