public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Eric S. Raymond" <esr@thyrsus.com>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Legacy Fishtank <garzik@havoc.gtf.org>,
	Dave Jones <davej@suse.de>,
	"Eric S. Raymond" <esr@snark.thyrsus.com>,
	Marcelo Tosatti <marcelo@conectiva.com.br>,
	linux-kernel@vger.kernel.org, kbuild-devel@lists.sourceforge.net
Subject: Re: State of the new config & build system
Date: Fri, 28 Dec 2001 14:12:11 -0500	[thread overview]
Message-ID: <20011228141211.B15338@thyrsus.com> (raw)
In-Reply-To: <20011228042648.A7943@havoc.gtf.org> <Pine.LNX.4.33.0112280948450.23339-100000@penguin.transmeta.com>
In-Reply-To: <Pine.LNX.4.33.0112280948450.23339-100000@penguin.transmeta.com>; from torvalds@transmeta.com on Fri, Dec 28, 2001 at 10:02:01AM -0800

Linus Torvalds <torvalds@transmeta.com>:
> My pet peeve is "centralized knowledge". I absolutely detested the first
> versions of cml2 for having a single config file, and quite frankly I
> don't think Eric has even _yet_ separated things out enough - why does the
> main "rules.cml" file have architecture-specific info, for example?

I'm not certain what you're objecting to, and I want to understand it.
There are rules that use architecture symbols to suppress things like
bus types.  I presume that's not a problem for you, but tell me if it is.

My best guess is that you're objecting to the archihacks and kernelhacking
menus, or the architecture-dependent derivations down around line 330.

In general what's going on here is actually the beginnings of an attempt to 
replace architecture-dependent questions with architecture-*independent*
questions.  It looks kind of ugly right now because it's too early in
the game to mess with the config-symbol namespace -- but, for example, I
want to merge the MATH_EMULATION and MATHEMU symbols eventually.  And 
there ought to be a generic set of toggles for kernel-debugging that
present to the user as cross-platform capabilities rather than platform-
specific switches.  

In those two menus I've gathered together architecture-specific
symbols that I think ought to merge into cross-platform capabilities.
But I know there is other cruft in there for historical reasons.  Since
you've brought up the point, I'll do a cleanup pass on these and see
how much I can exile to the arch/*/rules.cml files.

There isn't really any help for the ceoss-platform derivations.  There
are exactly four of these. I've worked hard at holding them to a
minimum:

derive HAVE_DEC_LOCK from (SMP and (ALPHA or X86_CMPXCHG)) or SPARC or PPC
derive HIGHMEM from HIGHMEM4G or HIGHMEM64G or SPARC
derive MAC_HID from (ALL_PPC and INPUT!=n) or (MAC and INPUT_ADBHID)
derive PC_KEYB from ARM_PC_KEYB or MIPS_PC_KEYB

If you notice that each right-hand part includes port symbols from at
least two different architectures, I think it will be clearer why these
are necessary. 

CML1's way of doing this had the problem that it was hard to know by
inspection of the rulebase under what circumstances a given symbol was
actually turned on.  This is why CML2 has a rule that each symbol is
derived (or occurs in a menu) exactly once.  With some work I could
relax this restriction, but I don't want to -- it's a major factor in
keeping the rulebase's complexity down in the range that a human brain
can mentally model.

> That's a big step backwards as far as I'm concerned - we didn't use to
> have those stupid global files, and each architecture could do it's own
> config rules. Eric never got the point that to me, modularity is _the_
> most important thing for maintenance.

Oh, no, I got that all right.  What I have been trying to do is trade
off correctly between modularity (which helps maintenance) and the
advantages to the configurator *users* of having a global capability
namespace, single-apex menu structure, and the symbols-to-prompts
mapping in one file.  These choices weren't made at random.

You don't readily see their advantages because you have a
nose-to-the-code, maintainer perspective (quite properly so, in most
cases).  But in designing the configuration system, simplifying life
for *users* is just as important, if not more so.  Sometimes this
implies not going as far in the direction you favor direction as you
might like (monolithic Configure.help is an example).

> Something I also asked for the config system at least a year ago was to
> have Configure.help split up. Never happened. It's still one large ugly
> file. Driver or architecture maintainers still can't just change _their_
> small fragment, they have to touch a global file that they don't "own".

Yes, there are two reasons for this.

The contingent, historical reason is that I wanted to get
Configure.help in good shape before thinking about dispersing it.
That work is now done (though you haven't kept up to date with it).

The design reason is that having a single file with all the symbol-to-prompt
mappings in it is really helpful when you want to localize the rulebase for
another language.  I'm still leaning towards keeping symbols.cml together
just to make it easier for people to do and distribute translations of it.

I think this is an issue that is rising in importance.  I have no problem
with assuming that kernel hackers are English-literate, but it's no longer
an assumption we should make about people *building* kernels.  I want
to encourage CML2 and question-string localizations for French.  And
German.  And Thai.  And Ethiopian.
-- 
		<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>

If I were to select a jack-booted group of fascists who are 
perhaps as large a danger to American society as I could pick today,
I would pick BATF [the Bureau of Alcohol, Tobacco, and Firearms].
        -- U.S. Representative John Dingell, 1980

  parent reply	other threads:[~2001-12-28 19:29 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-12-28  0:24 State of the new config & build system Eric S. Raymond
2001-12-28  0:54 ` Dave Jones
2001-12-28  0:57   ` Eric S. Raymond
2001-12-28  1:15     ` Larry McVoy
2001-12-28  1:35       ` Keith Owens
2001-12-28  1:37         ` Larry McVoy
2001-12-28  1:41           ` Keith Owens
2001-12-28  1:47             ` Larry McVoy
2001-12-28  1:57               ` Keith Owens
2001-12-28  2:01                 ` Larry McVoy
2001-12-28 14:14                   ` Alan Cox
2001-12-28 14:16                     ` Keith Owens
2001-12-28 17:14                     ` Christer Weinigel
2001-12-28 17:39                       ` Alan Cox
2001-12-29  1:44                         ` Keith Owens
2001-12-29  4:09                           ` Legacy Fishtank
2001-12-30  3:34                             ` Viktor Rosenfeld
2001-12-30  4:24                               ` Dave Jones
2001-12-30 14:37                                 ` Viktor Rosenfeld
2001-12-29 17:11                           ` Christer Weinigel
2001-12-28 17:43                     ` Larry McVoy
2001-12-28 18:17                       ` Alan Cox
2001-12-28 20:54                       ` Larry McVoy
2001-12-29  9:24                       ` Anton Blanchard
2001-12-29 16:28                         ` Larry McVoy
2002-01-01  4:03                 ` Mike Touloumtzis
2002-01-01  8:26                   ` Keith Owens
2002-01-06  8:55                     ` [kbuild-devel] " Martin Mares
2002-01-06 22:19                       ` Keith Owens
2002-01-09 17:16                         ` Martin Mares
2002-01-01  8:55                   ` Peter Samuelson
2001-12-28 22:31               ` Martin Dalecki
2001-12-28 23:02                 ` Eric S. Raymond
2001-12-28 14:24             ` Alan Cox
2001-12-28 20:56         ` Kai Germaschewski
2001-12-28 21:16           ` Legacy Fishtank
2001-12-28 22:17             ` Linus Torvalds
2001-12-28 23:44               ` Kai Germaschewski
2001-12-30 12:05                 ` [kbuild-devel] " Christoph Hellwig
2001-12-29  1:27               ` Keith Owens
2001-12-29  1:53                 ` Alan Cox
2001-12-29  1:57                   ` Keith Owens
2001-12-29  2:10                     ` Alan Cox
2001-12-29  4:06                 ` Legacy Fishtank
2001-12-29 13:32                 ` Rik van Riel
2001-12-29 20:23                 ` Linus Torvalds
2001-12-29  1:26             ` Keith Owens
2001-12-29  3:58               ` Legacy Fishtank
2001-12-29  4:21                 ` Mike Castle
2001-12-29  4:44                   ` Keith Owens
2001-12-29  4:52                     ` Arnaldo Carvalho de Melo
2001-12-29 11:10                       ` PORTUGUês EM?? Astinus
2001-12-29  6:59                     ` State of the new config & build system Nicholas Knight
2001-12-29  7:42                       ` Miles Lane
2001-12-29  8:02                         ` Nicholas Knight
2001-12-29  8:11                           ` Mike Castle
2001-12-29  7:41                     ` Legacy Fishtank
2001-12-29  8:13                       ` Andrew Morton
2001-12-29  9:40                         ` Daniel Phillips
2002-01-03 10:46                           ` Pavel Machek
2002-01-03 20:29                             ` Dave Jones
2002-01-03 20:35                               ` Alexander Viro
2002-01-03 20:46                                 ` Keith Owens
2002-01-03 21:30                                   ` Alexander Viro
2002-01-03 21:50                                     ` Keith Owens
2002-01-03 22:11                                       ` Alexander Viro
2002-01-03 22:44                                         ` Keith Owens
2002-01-04  1:49                                       ` Andreas Bombe
2002-01-04  2:31                                         ` Keith Owens
2002-01-04 21:40                                           ` Andreas Bombe
2001-12-28 22:51           ` Larry McVoy
2001-12-29  2:54             ` Keith Owens
2001-12-29 12:43               ` Kai Germaschewski
2001-12-28  1:22     ` Dave Jones
2001-12-28  1:36       ` [kbuild-devel] " Tom Rini
2001-12-28  1:36         ` Eric S. Raymond
2001-12-28  1:38       ` Keith Owens
2001-12-28  1:30   ` [kbuild-devel] " Keith Owens
2001-12-28  9:26   ` Legacy Fishtank
2001-12-28  9:42     ` Keith Owens
2001-12-28 16:34       ` Alan Cox
2001-12-28 20:01       ` Larry McVoy
2001-12-28 20:38         ` Richard Gooch
2001-12-29  0:50         ` Keith Owens
2001-12-29  0:55           ` Larry McVoy
2001-12-28 18:02     ` Linus Torvalds
2001-12-28 18:24       ` Alan Cox
2001-12-28 22:06         ` Linus Torvalds
2001-12-28 22:08           ` [kbuild-devel] " Eric S. Raymond
2001-12-28 22:29             ` Larry McVoy
2001-12-28 22:29             ` Linus Torvalds
2001-12-28 22:58               ` Eric S. Raymond
2001-12-29  9:18                 ` Giacomo A. Catenazzi
2001-12-31 22:51         ` Horst von Brand
2001-12-31 22:55           ` Arnaldo Carvalho de Melo
2002-01-01  1:21             ` Peter Samuelson
2001-12-28 19:08       ` Riley Williams
2001-12-28 19:12       ` Eric S. Raymond [this message]
2001-12-28 20:26         ` Alexander Viro
2001-12-28 20:39           ` Eric S. Raymond
2001-12-30 13:58             ` [kbuild-devel] " Christoph Hellwig
2001-12-30 17:50               ` Jeff Garzik
2001-12-30 20:53                 ` Hartmut Holz
2001-12-30 20:15               ` Adrian Bunk
2002-01-01  4:29               ` Horst von Brand
2001-12-31 23:32             ` Horst von Brand
2001-12-28 23:20           ` Alan Cox
2001-12-30 11:42             ` [kbuild-devel] " Kai Henningsen
2001-12-31  8:24               ` GOTO Masanori
2001-12-31  6:50           ` GOTO Masanori
2001-12-28 22:11         ` Linus Torvalds
2001-12-28 22:31           ` Eric S. Raymond
2001-12-29 21:24             ` [kbuild-devel] " Tom Rini
2001-12-29 22:43               ` Eric S. Raymond
2001-12-29 23:12                 ` Tom Rini
2001-12-30  0:22                 ` Russell King
2001-12-30  0:11                   ` Eric S. Raymond
2001-12-30  5:39                 ` Rob Landley
2001-12-30 13:59                   ` Alan Cox
2001-12-30 17:14             ` David Woodhouse
2001-12-30 17:32               ` Tom Rini
2001-12-30 17:44               ` Russell King
2001-12-28 20:39       ` Legacy Fishtank
2001-12-28 20:41       ` Legacy Fishtank
2001-12-28 20:45         ` Eric S. Raymond
2001-12-28 21:19           ` Legacy Fishtank
2001-12-28 21:12             ` Eric S. Raymond
2001-12-28 22:27               ` Linus Torvalds
2001-12-28 23:05                 ` Benjamin LaHaise
2001-12-29  0:59                   ` Legacy Fishtank
2001-12-29 19:12                     ` Linus Torvalds
2001-12-29  3:21                 ` [kbuild-devel] " Keith Owens
2001-12-28 23:13           ` Alan Cox
2001-12-28 23:04             ` Eric S. Raymond
2001-12-28 23:10             ` Linus Torvalds
2001-12-28 23:12               ` Martin Dalecki
2001-12-29 13:01               ` Rik van Riel
2001-12-28 22:47       ` Martin Dalecki
  -- strict thread matches above, loose matches on Subject: below --
2001-12-28 23:25 Stewart Smith
2001-12-29 12:01 Wayne.Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20011228141211.B15338@thyrsus.com \
    --to=esr@thyrsus.com \
    --cc=davej@suse.de \
    --cc=esr@snark.thyrsus.com \
    --cc=garzik@havoc.gtf.org \
    --cc=kbuild-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo@conectiva.com.br \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox