Brendon Costa wrote:
I believe we should first focus (when the runtime license will permit
that) on making whatever plugin machinery available and merged into
the trunk (when it comes back to stage one). This is not an easy task.
Isn't the point of this discussion to decide what features to put into a
plugin framework? I.e. We need a "whatever plugin machinery available"
to exist before we can even think about merging that into the trunk and
defining what that looks like is the point of this discussion i thought.
I entirely agree. Apologies to everyone if I badly expressed myself.
Possible steps for moving forward with this:
1) Define what features we need for the first release, and think about
what we may want in the future
2) See which frameworks currently exist and how each meets the necessary
features identified
3) Either use one of the above frameworks as a base or start a new
framework on the plugin branch
4) Work on the "base set of features" for a first release
5) Make sure the branch is up to date/tracking the trunk
6) Look at merging into the trunk when licensing is complete
We are still at 1 (and partially identifying projects for 2) as far as i
understand.
I also agree. What I don't understand is if having a simple crude plugin
mechanism make it easier to be accepted in the trunk. I don't understand
what makes features & code easy to be accepted in a stage one trunk. I
don't understand if havving a small plugin machinery (there already
exists some) make it easier to be accepted in the trunk.
I still do not understand how and when big patches get accepted in the
trunk. What are the social issues involved? What is the best way to get
code reviewers (those able to approve a patch) interested by any big
plugin patch? (And FYI I am asking myself the same question for MELT:
what should I do now to get some day in the future MELT accepted in the
trunk?).
So far, i think libplugin seems to be the most "general" plugin
framework for GCC i have had a chance to look at (It was easy to look at
because it has some decent documentation online).
In practice, I think that we should first try to get some code into
the trunk which make some plugin work on some common easy host system
(Linux), and only after try to generalize the work to harder hosts.
I agree, that providing working code for only simple to implement
platforms (and basic plugin features) at first is a good idea (but do so
on a branch first, then merge that to the trunk once it is operational).
However we do not want to start with a framework that will need to be
completely redesigned in the future to later support other platforms or
usages. I.e. Thinking ahead but not necessarily implementing ahead...
I fully agree. But who thinks that the libplugin patch (or any other
plugin machinery) could be accepted into the trunk?
My main concern is plugins & passes.
Yes. We have not really looked at this more important aspect in much
detail, how to manage passes with plugins. It looks like libplugin has
some ideas for pass management that may help? Any thoughts?
Apparently they have.
But we need to have a more exact picture of what the GCC steering
commitee & the FSF wants (and even more importantly do not wants)
regarding plugins. I could imagine that they (& perhaps us) want some
tricks that make proprietary plugins impractical, but I have no idea of
what that would technically mean (because I have no understanding of the
legal & social system involved).
My hypothesis is that several plugin mechanisms for GCC already exist
(on some branches or somewhere else). If a small plugin patch has a
better chance to get accepted into the trunk, we should limit ourselves
to such a small thing. If big plugin machinery could be accepted (I
would prefer that) we should understand what would make them more
acceptable. In both cases, plugins have probably some requirements
defined by the future runtime license, which I don't know yet.
Regards.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***