mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Michael Elizabeth Chastain <mec@shout.net>
To: jgarzik@mandrakesoft.com
Cc: kbuild-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Re: [kbuild-devel] Re: Disgusted with kbuild developers
Date: Sun, 17 Feb 2002 21:05:18 -0600	[thread overview]
Message-ID: <200202180305.g1I35IS04421@duracef.shout.net> (raw)

Jeff Garzik replies to me:
mec> I believe that CML1 is rococo and I welcome a replacement.  I think that
mec> leapfrog development is a good strategy here, just as it was for ALSA.
jg> I think this is a key mistake.  See Al's message "Of Bundling, Dao,
jg> ...".

I am reading lkml from an archive and I saw only the Friday night messages.
I have caught up now.

I agree with Al's strategy in "Of Bundling, Dao, and Cowardice".

Let me talk about the list-based makefiles.  Long before I submitted the
first list-based makefile to the kernel tree (drivers/sound/makefile),
I had a whole rewrite of every makefile.  These were the "Dancing Makefiles"
and several ideas came out of them: CONFIG_SMP and list-based makefiles
in particular.

I never thought I'd be able to get the Dancing Makefiles adopted.  I spent
a whole year just getting CONFIG_SMP merged!  So I came to view it as
a useful laboratory project to show what kinds of things were viable or not.

Then 2.1.XX developed a real problem with drivers/sound/Makefile.  The
"if-statement" based approach was not working.  The "if-statements"
changed on every patch level and new bugs came in for every patch level.

I said to myself "aha, list-based makefiles will solve this problem".
I wrote a new drivers/sound/Makefile.  Here is the important point:
I did not touch Rules.make *at all*.  I put some translation lines
into drivers/sound/Makefile so that it would just work.

Between 2.2 and 2.4, several people -- including Jeff Garzik -- converted
a lot more makefiles incremenetally to the new style.  This process got
about 80% done incrementally.

Eventually one of the old-style Makefiles developed a similar problem
with new tweaks in every patch level leading to a new batch of bug
reports.  Linus said something like "to hell with this" and summarily
removed support for the old-style.

So ... I leapfrogged in my own work area, but I put out incremental
patches that solved problems that other people wanted solved.

It was also a very painful process for me.  My patches got black-holed
numerous times.

jg> It's impossible to prove that Eric's CML2 rulebase reflects a current
jg> CML1 rulebase, primarily for this reason.

That's an important property and I haven't given enough weight to it.  :-(

It would be nice if:

  The new tool reads both CML1 and CML2.
  Deploy the new tool.
  People could convert directories to CML2 one at a time.

jg> Those are meta-properties.

Indeed, all my criteria are meta-properties.

jg> CML2's syntax is not reflective of the direction of being able to plop
jg> down "driver.c" and "driver.conf" and having the config/make system
jg> magically notice it.

This "driver.conf" idea did not exist when CML2 was invented.

So it looks like there is a market opportunity here: a tool that
reads CML1 files and also reads some kind of new driver.conf files,
which can be written in a fresh new language.

jg> Would you support the replacement of in-kernel
jg> configure/Menuconfig/xconfig with in-kernel mconfig?

I believe that mconfig is best distributed as a semi-independent package,
distributed in the way that modutils is distributed today.  I think that's
better than in-kernel.  Between the choice of in-kernel
configure/menuconfig/xconfig and in-kernel mconfig, I would go for
in-kernel mconfig.

jg> If we want to migrate to a point where all kernel configuration is
jg> maintained solely outside the kernel, I actually support that.  But as a
jg> SEPARATE migration step.  I do not want to drop all config tools from
jg> the kernel and tell people "use mconfig" in the same breath.

My vision of the migration path was that mconfig would be distributed
separately and co-exist with configure/menuconfig/xconfig.  When the
market share of mconfig becomes high enough( (say, 80% to 90%),
then drop support for configure/menuconfig/xconfig.

Michael Elizabeth Chastain
<mailto:mec@shout.net>
"love without fear"

             reply	other threads:[~2002-02-18  3:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-18  3:05 Michael Elizabeth Chastain [this message]
     [not found] <fa.i8v9q2v.6g8h03@ifi.uio.no>
     [not found] ` <fa.hhvfopv.1f70hqv@ifi.uio.no>
2002-02-19  8:04   ` Giacomo Catenazzi
2002-02-19  9:15     ` Daniel Phillips
2002-02-19 10:16       ` [kbuild-devel] " Martijn van Oosterhout
2002-02-19 10:39         ` Alan Cox

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=200202180305.g1I35IS04421@duracef.shout.net \
    --to=mec@shout.net \
    --cc=jgarzik@mandrakesoft.com \
    --cc=kbuild-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /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

all inboxes | Powered by JetHome®