This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 5 & modularity
On 3/18/2012 12:56 PM, Basile Starynkevitch wrote:
* you can name and count the modules of a software
Well in a hierarchical system this is not so clear, since modules may
exist at different levels of abstraction. For instance in a compiler,
at one level of abstraction, the front end is a module, at another
level of abstraction, e.g. in the compiler, the semantic analysis for
chapter 7 constructs in the RM could be considered as a module.
* given a source line, or function, you can decide at a glance to which one module it
belongs
This seems totally bogus, if you have something like
n++;
you can't tell what module that belongs to, and if your idea is that
all variables should be long enough to know immediately what module
something is in, I would regard that as plain horrible and highly
undesirable.
* the interface between modules is well documented
Sure that's apple pie and motherhood, so it says nothing
I'm sorry to say that, but current GCC (ie 4.7 or today's trunk) is *not* modular.
Modularity is not a binary quality, so this is not a helpful statement
Don't
feel injured by that fact. Indeed, GCC is a little less messy than it was a few years
ago, but being less messy is not being modular IMHO. And something cannot be
"half-modular".
Absolutely it can, parts of the system can be arranged nicely into
modules, and parts of the system may not be.
So I would be delighted if GCC was made of modules. But I have no idea of how that can be
done.
Then your comments are not at all helpful, since they just
reflect vague goals which everyone agrees on.
I do believe that identifiers in GCC should be organized in such a way that the module
they belong to is visible at once. I think that a prefix (à la GTK) or a C++ namespace
should be great. In particular, this means that most GCC identifiers should change
(which means that any such evolution is not syntactically gradual; it has to be made by
huge, but "easy", patches).
I am of the opinion that this would severely damage readability, it's
the same sort of thing that leads people in Ada to avoid use clauses
completely.
Since in any decent IDE it's just a single click to find out where a
variable is declared, it's just noise to include this information in
every variable name. Of course global variables with wide visibility
should have appropriate names, but the idea that all identifiers
should be prefixed is horrible IMO