[gmpi] Re: Topic 3: Cross platform

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Tue, 11 Mar 2003 14:18:29 -0800

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 discussion
is 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

Other related posts: