On 04/15/2015 11:53 AM, Mikhail Maltsev wrote:
You mentioned that you are planning to do reorganization of the
directory structure. That would be really helpful. LLVM has two separate
directories for utility classes, functions and custom datatypes
(llvm/include/llvm/ADT and llvm/include/llvm/Support). In GCC all those
useful things are scattered among 771 files in gcc directory, some are
in libiberty.
There are many intermediate projects that would help this reorganization. But
someone needs to do them. Anybody can come up with things to do and grand plans
(see https://gcc.gnu.org/wiki/ImprovementProjects and
https://gcc.gnu.org/wiki/ModularGCC and https://gcc.gnu.org/wiki/rearch and ).
Somebody needs to flesh out the details and start implementing them.
The "right" steps to see progress:
1. You think that some concrete change may improve GCC, for example, to move
vec.h and is-a.h to some gcc/include/core. Ask if the key people (Global
Reviewers in this case) will accept this change. Be concrete, say that you will
do it (not 'we could do it'). Perhaps even present a proof-of-concept to see
how difficult it will be.
2.1 If not, then goto 1 and think about something else (or perhaps people
misunderstood what you meant? See point 7 at
https://gcc.gnu.org/wiki/Community). It is not worth it fixating on something.
Moreover, your ideas will be judged according to your experience and past
successes. Start with something small and no contentious. Then, revisit the
more contentious things.
2.2 If yes, incorporate feedback (not include/core but include/support, or not
is-a.h but hash-map.h).
3. Sent a patch. The smaller, the better.
4. Repeat and rinse.
There is no need to wait for reorganization to at least create a list of
such support data structures and functions (something like this:
http://llvm.org/docs/ProgrammersManual.html). The good thing is that we
already have excellent documentation for some of them in source code
(for example vec.h and is-a.h), but we are missing the list.
No "maybe we", please :) (Point 11 here: https://gcc.gnu.org/wiki/Community)
Just do it. Sent a patch for gccint.texi or create a webpage in the wiki to
draft it or just draft it in plain-text and send it to the mailing list. Follow
the four steps above.
Cheers from someone that has said "maybe we" a lot, but got a few things
implemented in the end,
Manuel.