From: esr@thyrsus.com
To: Jeff Garzik <jgarzik@mandrakesoft.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
linux-kernel@vger.kernel.org, kbuild-devel@lists.sourceforge.net,
"Eric S. Raymond" <esr@snark.thyrsus.com>
Subject: Re: CML2 1.0.0 release announcement
Date: Wed, 11 Apr 2001 21:28:04 -0400 [thread overview]
Message-ID: <20010411212804.F9081@thyrsus.com> (raw)
In-Reply-To: <20010411191940.A9081@thyrsus.com> <E14nU6n-0007po-00@the-village.bc.nu> <20010411204523.C9081@thyrsus.com> <3AD4FC54.C86AACBE@mandrakesoft.com>
In-Reply-To: <3AD4FC54.C86AACBE@mandrakesoft.com>; from jgarzik@mandrakesoft.com on Wed, Apr 11, 2001 at 08:52:36PM -0400
Jeff Garzik <jgarzik@mandrakesoft.com>:
> esr@thyrsus.com wrote:
> > But, as a separate issue, the CML2 design *could* be reworked to support
> > a multiple-apex tree, if there were any advantage to doing so. I don't
> > see one. Do you?
>
> Yes, because the current system is directed not by a central file, but
> by an architecture-specific config.in. Compartmentalized Config.in
> files are easy to include and even easier to exclude selectively. It's
> pretty pointless for S/390 arch to parse a ton of driver config entries
> it will never present to the user; that wastes memory and slows down the
> configuration system.
The low-level answer is that the configurator doesn't pay the
parse-time cost; the CML2 compiler does all that and presents the
configurator with a rulebase object that is not large enough for the
incremental I/O or memory cost of the "useless" information to be
significant. (I'm not handwaving here, I've actually profiled this;
the rulebase object for 2.4.3 is only 342K on disk and less than that
in core.)
BTW, CML2 only has a "central file" in a rather trivial sense. Here's
what the code to include the port-specific rules looks like:
source "arch/i386/rules.cml"
source "arch/alpha/rules.cml"
source "arch/sparc/rules.cml"
source "arch/mips/rules.cml"
source "arch/ppc/rules.cml"
source "arch/m68k/rules.cml"
source "arch/arm/rules.cml"
source "arch/sh/rules.cml"
source "arch/ia64/rules.cml"
source "arch/parisc/rules.cml"
source "arch/s390/rules.cml"
source "arch/cris/rules.cml"
The real issue isn't that they're "centralized", it's that they're
siblings under a top-level architecture menu (which most users won't
see because normal invocations of the configurator supply that answer
from the command line, just as in CML1). Which brings me neatly
to my next point...
The higher-level answer is that you're confusing an implementation
issue with a design issue. Beware of such premature optimization, for
as the hierophant Knuth hath revealed unto us, it is the root of all
evil. To persuade me to go back to a multiple-apex tree you'd have to
show that there is a *design* or complexity-control advantage to
compartmentalizing the configuration information in that way. Maybe
there is one, but nobody's shown it to me yet.
(In truth I don't dismiss implementation concerns quite as cavalierly
as it might sound from the above. But buying a linear speedup wouldn't
be good enough to make me change the design. A quadratic speedup might
be, but none of CML2's algorithms are quadratic in the number of symbols
in the rulebase.)
--
<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>
The men and women who founded our country knew, by experience, that there
are times when the free person's answer to oppressive government has to be
delivered with a bullet. Thus, the right to bear arms is not just *a*
freedom; it's the mother of all freedoms. Don't let them disarm you!
next prev parent reply other threads:[~2001-04-12 1:26 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-10 10:47 CML2 1.0.0 release announcement Eric S. Raymond
2001-04-10 12:14 ` Russell King
2001-04-11 19:43 ` davej
2001-04-11 20:04 ` Christoph Hellwig
2001-04-11 20:16 ` Dave Jones
2001-04-11 20:27 ` Christoph Hellwig
2001-04-11 22:23 ` Alan Cox
2001-04-11 23:19 ` esr
2001-04-11 23:30 ` Alan Cox
2001-04-11 23:33 ` Alan Cox
2001-04-12 0:45 ` esr
[not found] ` <3AD4FC54.C86AACBE@mandrakesoft.com>
2001-04-12 1:28 ` esr [this message]
2001-04-12 1:43 ` CML2 1.0.0 doesn't remember configuration changes jeff millar
2001-04-12 2:50 ` esr
2001-04-12 5:35 ` jeff millar
2001-04-12 2:06 ` esr
2001-04-12 21:20 ` Ingo Oeser
2001-04-14 2:11 ` Eric S. Raymond
2001-04-14 2:29 ` Jeff Garzik
2001-04-14 4:33 ` Nicolas Pitre
2001-04-12 10:45 ` CML2 1.0.0 release announcement Alan Cox
2001-04-11 22:20 ` esr
2001-04-12 7:09 ` Albert D. Cahalan
2001-04-12 8:57 ` Jamie Lokier
2001-04-12 10:57 ` esr
[not found] <fa.i13tmhv.9kga3t@ifi.uio.no>
[not found] ` <fa.g0offov.1jmmkh9@ifi.uio.no>
2001-04-12 8:50 ` Giacomo Catenazzi
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=20010411212804.F9081@thyrsus.com \
--to=esr@thyrsus.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=esr@snark.thyrsus.com \
--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