This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Plugins always enabled in GCC 4.8?


On Mon, Apr 02, 2012 at 05:40:37AM -0500, Gabriel Dos Reis wrote:
> On Mon, Apr 2, 2012 at 12:37 AM, Basile Starynkevitch
> <basile@starynkevitch.net> wrote:
> > On Sun, 01 Apr 2012 16:41:09 -0400
> > Diego Novillo <dnovillo@google.com> wrote:
> >
> >> On 3/31/12 1:51 PM, Basile Starynkevitch wrote:
> >>
> >> > If we want to aim towards a more modular GCC made of several shared libraries, it seems
> >> > that we are requiring the host system to have dynamic libraries (which is not a big deal
> >> > today; all the major OSes running on developers desktop or laptop have them).
> >>
> >> I don't follow. ?Modularity does not require shared libraries.
> >
> >
> > Indeed, but when GCC is made of several shared libraries, it would be modular, since each
> > such shared library would be defined by a module.
> 
> I feel that you are moving the goal post, and you are either
> confusing the notion of modularity with something else you have not
> been asking until now.  I find that a bit worrisome.

What I was just saying that if a software is properly organized as a set of
well defined shared libraries (on current GNU/Linux systems), then these
shared libraries are defining an organisation of modules and bring ipso
facto some modularity. Of course, a modular software can be linked
statically, because IMHO modules are mostly a property of the source code,
not of the binary. (And a set of dynamically linked libraries can stay messy,
e.g. if it had circular dependencies).

(For instance, ocaml may not have shared libraries, but does have modules at
the language level.)


I also am in favor of having a software linked dynamically with shared
libraries, for a very pragramtical reason: If a software has shared
libraries, then modifying one such library in its implementation (not its
interface) is very often easier for the developer, who can, thanks to the
dynamic linking, test and use his improved shared library more easily and
more quickly. In particular, if GCC were made of shared libraries, I believe
that the build time would be much faster for the developer (ie the GCC
contributor), and this is a big comfort in practice.



> 
> As pointed out by Diego, modularity and shared libraries are orthogonal
> notions.  Modularity does not require shared libraries, not does it
> provide them.

Indeed. But I would think that properly designed shared libraries make a
modular software (of course, the design could be poor; at the worst mutually
circularily depending shared libraries don't give any modularity).

> 
> A long time ago, GCC was designed on purpose in a way that entangled
> all levels of abstractions for fear that making it modular would encourage
> proprietary work based on GCC without the benefits of contribution back.

Yes, but I thought that position was de jure abandoned once the licence
permitted plugins (I was understoooding the heated debate on the runtime
exception license was exactly that, and also I understood that debate has
ended).


> Eventually the argument was won that we can make GCC follow
> less contrived software engineering practices without giving away the
> treasure. 

I certainly don't want to open that debate again, and I really think it was
settled long time ago (ie.e. when the runtime exception license has been
last published, legally enabling the possibility of plugins).

> You appear to be moving in directions that may give pause to
> those who championed better separation of concerns in GCC.


I am not sure to understand that last sentence (I had to read it 4 times,
with different ways of understanding it). But I certainly don't understand
why you feel that my wish of having a collection of named and identified
modules in GCC is not a way of wanting seperation of concerns in GCC. If GCC
had an organisation in well identified modules (each having a name), why
would that go against seperation of concerns? I feel quite the opposite (see
Gnome/Gtk as my favorite example). And if GCC had well identified modules,
it would be easy (useful, but not necessary, just possible & comfortable) to
make it a collection of shared libraries (of course, we still would give the
ability to disable shared libraries at configure time to those wanting
that).


Cheers

-- 
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} ***


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]