Mailing List Archive

Announcing CML2, a replacement for the kbuild system
For some weeks now, I have been developing a replacement for the kbuild
system used to configure Linux kernels. This effort has had the support of
Michael Elizabeth Chastain, the principal kbuild maintainer, and has
benefited from input by others on the kbuild list.
The project is not yet complete, but it has reached a beta stage at
which it is usable and in significant ways functionally superior to the
present system. I am confident that it will complete. I am announcing
now rather than holding off until I'm completely done because there
are some preparations which, if begun now, will significantly reduce
total transition costs. These preparations will *not* break the
present kbuild system.
Why this project at all? It all started when I realized that building
kernels is way too hard. I wanted to simplify the configuration task
enough to make configuration accessible to non-gurus. It needs to
have more policy options. Rather than hundreds of questions like
"Include FOOBAR2317 driver?", the novice should see stuff like
"Compile in all modular drivers as modules without prompting?"
This just can't be done with the existing kbuild system. The existing
config-language programs are hard to read and modify, and the code
that interprets them has become a huge, unmaintainable hairball of
Tcl/Tk, C, makefiles, and shell. It has all become terminally
brittle, and the maintainers agree that it needs to be nuked and
rebuilt from scratch.
It happens that I love writing domain-specific minilanguages, so I have
tackled this problem head-on. I have designed a new configuration
language I call CML2 (the existing language I have retrospectively
named CML1). The implementation has two parts:
1. I have implemented a CML2 compiler that validates CML2 rulesets and
generates a rulebase that can be used to drive a configuration
process. I have translated almost all of the 7049 lines of CML1 in
the 2.3.99-pre9 source tree to validated CML2 (and *that*, believe me,
was hard work -- it took longer than the CML2 design and coding!).
2. I have written a configurator that is ready for testing. This
program reads in the rulebase and uses it to do the actual config-file
generation from a dialog with the user. Though not yet equipped with a
Tk interface, this program fully demonstrates the capabilities of
CML2. It runs in either line-oriented or curses mode depending on the
display environment (line-oriented mode can be forced with a
command-line switch).
The line-oriented mode of the new configurator is much more powerful
than the original Configure. It's possible to move backward or jump
around in the configuration sequence; the constraints that were
expressed by if-then-else logic in CML1 are now checked every time the
value of a relevant symbol is changed. It also has full access to the
help system.
The curses mode, unlike the old menuconfig code, also has full access
to the help text. It reports attempts to set symbol combinations that
would result in an invalid configuration.
The configurator should be able to present a Tk-based menu interface
when it detects that it's running on an X display. This is the part
I haven't written yet.
The code needs more testing, which is one reason I am announcing now.
It would be useful for configure maintainers to begin running through
odd configurations to see if they can get it to misbehave.
The first alpha of CML2 is available at
http://www.tuxedo.org/~esr/kbuild/
It includes the alpha implementation, documentation, and a transition
guide for maintainers of CML1 code.
OK, here's the bad news: the new system will not be an instant,
painless replacement for the old. I tried hard, but there was just
too much cruft to clean up for that to be possible.
The major source of problems is, as you might expect, that 6747-line
mass of old code -- the new language is nontrivially different than
the old, and the CML1 corpus is so tangled and nasty that I am certain
I have made at least a few mistakes in the translation. There are
a couple of places where I didn't understand the author's intentions
well enough to translate some particularly grotty CML1 code. I'll need
some help untangling these knots.
I apologize for this, but the translation overhead would only have
been avoidable if CML1 had been good enough not to replace. It's a
cost we have to pay to clean up a mess that would otherwise only have
gotten worse, and eventually have become a serious drag on kernel
development and porting.
There are some other minor problems, which we can fix up front. Mostly
they have to do with cleaning up the configuration-symbol namespace (which
would be a good idea even if we planned to keep CML1).
Now the good news: we will win big by changing over. Here are some
of the advantages of the new language:
1. Single parser and front end
CML1 had three different interpreters, none perfectly compatible with
any of the others. CML2 has one rule compiler and one rulebase-interpreter
front end. This will be good for consistency and economy.
2. A more expressive, easier-to-program configuration language
The rather spiky and cluttered shell-like syntax of CML1 is replaced
with a much simpler and more regular format resembling that of .netrc or
.fetchmailrc. More importantly, the semantics of the language are
declarative rather than imperative -- a better match for the problem
domain, and thus more expressive and easier to code in.
3. Drastic reduction in code size and complexity
The 7049 lines of CML1 in the 2.3.99-pre9 kernel translate to a hair
less than 2400 lines of CML2, a reduction by a factor of about three.
The CML2 compiler and prototype interpreter are the same factor of
three smaller than the nearly 10,000 lines of code in the CML1
interpreters and tools. Where CML1 is a complex mixture of C, shell,
Tcl/Tk, and Makefiles, CML2 is all be written in a single language
(Python).
4. Eliminates (or at least drastically reduces) lag between port configurations
The fact that the top-level CML1 files of the nine ports in the kernel
tree are separate means there have been plenty of opportunities for
the common code in them to suffer from version skew -- I point out
about a dozen bugs of this kind in the list of errors at the end of
this post. CML2's design and compilation rules should effectively
prevent future bugs of this kind.
5. Clean separation between configuration language and configuration UI
CML decouples the configuration language from the configuration user
interface (they communicate with each other only through the compiled
rulebase). This means that it will be relatively easy to improve the
UI and the language separately.
6. Internationalization
CML2 query prompts and menu banners are separated from the symbol
dependency declarations. Thus CML2 system definitions can be
internationalized and localized.
7. Language is fully documented
CML2 has a complete, explicit description. Syntax, language semantics,
and front-end policy options are all discussed in detail.
8. Policy-based options
The declarative semantics of CML2 makes it much easier to set up
and check interdependencies among symbols. I have done only
enough of this in the CML1 translation for demonstration purposes (there
are new symbols TUNING, EXPERT and WIZARD that change some visibilities).
Once CML2 is in place, it should be a relatively small effort to
give the user a rich set of policy and don't-bother-me options.
So, how do we get there from here?
Obviously, I have to finish the CML2 front end. This is not a large
job; I already have a demonstrable prototype that runs in tty and
curses modes, and even on my heavy travel schedule I expect to have
the Tk version ready in about two weeks.
I have designed the CML2 implementation to coexist with CML1, so both
methods can be used while CML2 is being field-tested and debugged. I
anticipate a phase-in over three or four point releases during 2.5.x,
followed by a back-port to 2.4.x. Once CML2 is reported OK by the
various porting groups, Linus can quietly nuke the CML1 machinery.
There are a couple of preparation steps that can fruitfully begin now
and should happen before 2.4 in order to minimize backporting hassles
later.
1. Notably, I would appreciate it if config-file maintainers made
the following changes in those files and relevant C code:
CONFIG_6xx -> CONFIG_PPC_6xx
CONFIG_4xx -> CONFIG_PPC_4xx
CONFIG_PPC64 -> CONFIG_PPC_64
CONFIG_8260 -> CONFIG_PPC_8260
CONFIG_8xx -> CONFIG_PPC_88x
CONFIG_060_WRITETHROUGH -> CONFIG_M68060_WRITETHROUGH
CONFIG_21285_WATCHDOG -> CONFIG_DC21285_WATCHDOG
CONFIG_3C515 -> CONFIG_ISA3C515
CONFIG_8139TOO -> CONFIG_RTL8139
CONFIG_82C710_MOUSE -> CONFIG_CT82C710_MOUSE
CONFIG_977_WATCHDOG -> CONFIG_WB83C977_WATCHDOG
CONFIG_3215 -> CONFIG_IBM3215
CONFIG_3215_CONSOLE -> CONFIG_IBM3215_CONSOLE
The reason for these is that CML2 symbol names drop the CONFIG_
prefix. It's unneeded clutter, and made CML1 programs harder to read
(the eye-brain systems that handle spelling look for prefix matches to
recognize things).
Also, I had to change the KEYBOARD and MOUSE symbols used in the MIPS branch
to MIPS_KEYBOARD and MIPS_MOUSE. This is because the MOUSE symbol
seems to be used in different ways on different architectures (notably
in the Intel branch).
2. I also found some apparent errors. I need these explained so I'll
know how to handle them in the translation. A summary of these apparent
errors is included at the end of this post.
3. Those are the easy parts. The hard part is that I'd like to ask
config maintainers to eyeball-check the CML2 translation of their work
*now*. Where I am most likely to have erred is in setting visibility
constraints by architecture. Ideally, I'd like everyone to have
confidence that the translation is correct by the time the Tk-based
front end comes out.
Presently the entire CML2 translation lives in a single file, rather than
being distributed into per-subdirectory files like the CML1 corpus. This
is a temporary expedient to make the transition easier. CML2's "source"
facility is quite powerful enough to support distributing the information
later on.
The current CML2 menu tree is ugly and poorly organized -- that is to
say, it has changed relatively little from the CML1 version. I am
deliberately refraining from large changes yet. Once we have tested
and switched over to CML2, it will be possible to do a complete
redesign of the kbuild user experience. The most important feature of
CML2 is that it will give us the capability to explore that design
space without risking breaking the ability to build kernels at all.
Here are the apparent errors I found in the CML1 corpus:
-----------------------------------------------------------------------------
There is what appears to be an error in the M68K configuration sequence.
Inside a PARPORT guard, the question 'Q40 Parallel port' sets PARPORT again.
I created a PARPORT_Q40 symbol and set it from this question.
The symbols SGI occurs in conditionals in config files but are never
set or associated with a query, nor are they used in C code anywere.
The symbol SUN3 is used in conditionals and set to n at one point, but there
is no place where it is set to y.
The symbol FB_CONSOLE is set at one point but
never used in either C or config language code.
The symbol ABSTRACT_CONSOLE is not used in C code, nor set anywhere in config
code.
The symbol AIC7XXX_TAGGED_QUEUEING is set in the sparc64 configuration
code, but not used in C code. I suspect it should be
AIC7XXX_TCQ_ON_BY_DEFAULT.
The symbol ADB_PMU68K defined in the M68K driver is not referenced anywhere
in the config code and not used in the C code. It seems to be a misspelling
of ADB_PMU. I have eliminated it.
In the ARM port configuration, symbols ARCH_TBOX and ARCH_SHARK and
ARCH_NEXUSPCI and ARCH_NEXUSPCI are referenced but never associated
with a query or defined.
There are two symbols in the configuration code that seem to relate
to endianness on processors that can operate in either big-endian
or little-endian mode. One is CPU_LITTLE_ENDIAN (in the MIPS ports)
and the other is LITTLE_ENDIAN (in the SuperH port). Neither is used
in the C code; CPU_LITTLE_ENDIAN is used in a guard, once, in the
MIPS32 config. I have changed LITTLE_ENDIAN to CPU_LITTLE_ENDIAN.
The symbol PRINTER_READBACK is queried for once, but never used in the
config or C code. I suspect it should have been asking for PARPORT_1284.
-----------------------------------------------------------------------------
Note: this announcement was crossposted to the linux-kernel and linux-kbuild
lists. You may want to use group reply in respnding to it to reach both
populations.
Port maintainers and others with a continuing interest in the development
of CML2 should probably join the kbuild list -- subscribe in the usual
way via linux-kbuild-request@torque.net
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
The Bible is not my book, and Christianity is not my religion. I could never
give assent to the long, complicated statements of Christian dogma.
-- Abraham Lincoln
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Hmm.
The requested URL /~esr/kbuild/cml2-0.1.0.tar.gz was not found on this server.
Is your compiler public domain or GPL?
Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Only a problem:
File Not found
The requested URL /~esr/kbuild/cml2-0.1.0.tar.gz was not found on this
server.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Andries Brouwer <aeb@veritas.com>:
> Hmm.
> The requested URL /~esr/kbuild/cml2-0.1.0.tar.gz was not found on this server.
Oops. A bug in my upload script; I just fixed it and checked. The archive
is now downloadable.

> Is your compiler public domain or GPL?
I'll GPL it, of course. It's intended to be part of the kernel tree,
after all.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
In the absence of any evidence tending to show that possession
or use of a 'shotgun having a barrel of less than eighteen inches
in length' at this time has some reasonable relationship to the
preservation or efficiency of a well regulated militia, we cannot
say that the Second Amendment guarantees the right to keep and bear
such an instrument. [...] The Militia comprised all males
physically capable of acting in concert for the common defense.
-- Majority Supreme Court opinion in "U.S. vs. Miller" (1939)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Gianluca Anzolin wrote:
> Only a problem:
>
> File Not found
>
> The requested URL /~esr/kbuild/cml2-0.1.0.tar.gz was not found on this
> server.
Not only. Dependency on Python is definitely a problem - not everyone uses
'everything and a kitchen sink' type of userland.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
I tried:
./cmlconfigure -l | more
and got the following:
Traceback (innermost last):
File "./cmlconfigure", line 1055, in ?
rules = cPickle.load(open(rulebase))
IOError: [Errno 2] No such file or directory: 'rules.out'
Poking around, I couldn't figure this one out. Is the tarball missing this
file or should I specify something else as a rules file?
thanks,
greg k-h
greg@(kroah|wirex).com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alexander Viro <viro@math.psu.edu>:
> Not only. Dependency on Python is definitely a problem - not everyone uses
> 'everything and a kitchen sink' type of userland.
I'm aware of the problem :-). Python programs can be compiled to
portable C sources using the `freeze' tool. The translation is
inelegant (it embeds a Python byte-code interpreter in the generated
C) but it works. So a working CML2 configurator can be shipped for an
environment without Python.
Even if this weren't true, we'd be trading dependencies and not adding
one. The Perl stuff in the scripts directory will go away shortly
(that is, assuming that Linus approves the CML1->CML2 change). This
would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Eric S. Raymond wrote:
> Even if this weren't true, we'd be trading dependencies and not adding
> one. The Perl stuff in the scripts directory will go away shortly
> (that is, assuming that Linus approves the CML1->CML2 change). This
> would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
Yeah, but you don't have to use these Perl scripts to configure and build
a fresh tree - they are debugging/sanity checking tools. Heck, there is
some Tk stuff in the tree - it doesn't mean an absolute dependency on the
bloody mess...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Greg KH <greg@wirex.com>:
> I tried:
> ./cmlconfigure -l | more
> and got the following:
>
> Traceback (innermost last):
> File "./cmlconfigure", line 1055, in ?
> rules = cPickle.load(open(rulebase))
> IOError: [Errno 2] No such file or directory: 'rules.out'
>
>
> Poking around, I couldn't figure this one out. Is the tarball missing this
> file or should I specify something else as a rules file?
Try
cmlcompile kernel-rules.cml
first. Hm...I see I neglected that little detail in my transition
instructions; they say "Compile the rules file using cmlcompile."
but not how. I'll fix that.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
No one who's seen it in action can say the phrase "government help" without
either laughing or crying.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alexander Viro <viro@math.psu.edu>:
> > Even if this weren't true, we'd be trading dependencies and not adding
> > one. The Perl stuff in the scripts directory will go away shortly
> > (that is, assuming that Linus approves the CML1->CML2 change). This
> > would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
>
> Yeah, but you don't have to use these Perl scripts to configure and build
> a fresh tree - they are debugging/sanity checking tools. Heck, there is
> some Tk stuff in the tree - it doesn't mean an absolute dependency on the
> bloody mess...
Still, the Python stuff can be frozen to straight C, eliminating the
dependency. I'll test and supply the machinery for this as soon as I
see an actual (as opposed to theoretical, it-would-be-nice-if)
requirement. In the meantime, I have a Tk front end to write.
(Ideally, I'd like to turf both Perl and Tk out of the kernel tree
entirely. They're kludges, and they promote kludging. Python plus
a GTK++ binding could make Tk unnecessary. Would GTK++ be a greater
or lesser requirement than Tk?)
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Americans have the will to resist because you have weapons.
If you don't have a gun, freedom of speech has no power.
-- Yoshimi Ishikawa, Japanese author, in the LA Times 15 Oct 1992
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Eric S. Raymond wrote:
> (Ideally, I'd like to turf both Perl and Tk out of the kernel tree
> entirely. They're kludges, and they promote kludging. Python plus
<shrug> Let's take holy wars somewhere else... No arguments on Tk, but
Perl vs. Python has _way_ too nasty potential for growing into BThreadFH.
> a GTK++ binding could make Tk unnecessary. Would GTK++ be a greater
> or lesser requirement than Tk?)
<double shrug> FWIC, both are evil. As long as the thing works without X
installed on the box - watch me not care.
Al, -><- close to getting PO'd enough to actually implement One
True Editor as ldisc - insmod vi.o and there we go...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> > The requested URL /~esr/kbuild/cml2-0.1.0.tar.gz was not found on this
> > server.
>
> Not only. Dependency on Python is definitely a problem - not everyone uses
> 'everything and a kitchen sink' type of userland.
Python is actually pretty small and you need it on the build box not on the
runtime host.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alexander Viro <viro@math.psu.edu>:
> On Wed, 24 May 2000, Eric S. Raymond wrote:
>
> > (Ideally, I'd like to turf both Perl and Tk out of the kernel tree
> > entirely. They're kludges, and they promote kludging. Python plus
>
> <shrug> Let's take holy wars somewhere else... No arguments on Tk, but
> Perl vs. Python has _way_ too nasty potential for growing into BThreadFH.
I am now stifling myself :-).

> > a GTK++ binding could make Tk unnecessary. Would GTK++ be a greater
> > or lesser requirement than Tk?)
>
> <double shrug> FWIC, both are evil. As long as the thing works without X
> installed on the box - watch me not care.
You'll like its behavior, then. It wakes up, looks around, says
"Can I do X and do I have Tkinter?". If so, it launches the Tk
interface (in my version; the one I posted doesn't have this code).
If either DISPLAY is unset or Tkinter isn't importable, it then says
"Can I do screen graphics and do I have curses?" If so, it launches the curses
interface.
If TERM is unset or the curses import fails, it falls back to glass-tty mode.
Curses or glass-tty mode can be forced with command-line options.
(One of Python's virtues is that failed imports don't tank the interpreter.
Instead, they throw an interrupt that you can choose to catch.)
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
In the absence of any evidence tending to show that possession
or use of a 'shotgun having a barrel of less than eighteen inches
in length' at this time has some reasonable relationship to the
preservation or efficiency of a well regulated militia, we cannot
say that the Second Amendment guarantees the right to keep and bear
such an instrument. [...] The Militia comprised all males
physically capable of acting in concert for the common defense.
-- Majority Supreme Court opinion in "U.S. vs. Miller" (1939)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
"Eric S. Raymond" wrote:
>
> Alexander Viro <viro@math.psu.edu>:
> > Not only. Dependency on Python is definitely a problem - not everyone uses
> > 'everything and a kitchen sink' type of userland.
>
> I'm aware of the problem :-). Python programs can be compiled to
> portable C sources using the `freeze' tool. The translation is
> inelegant (it embeds a Python byte-code interpreter in the generated
> C) but it works. So a working CML2 configurator can be shipped for an
> environment without Python.
>
> Even if this weren't true, we'd be trading dependencies and not adding
> one. The Perl stuff in the scripts directory will go away shortly
> (that is, assuming that Linus approves the CML1->CML2 change). This
> would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
The Perl stuff in the scripts directory is not required for kernel
compilation.
--
Brian Gerst
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Eric S. Raymond wrote:
> Even if this weren't true, we'd be trading dependencies and not adding
> one. The Perl stuff in the scripts directory will go away shortly
> (that is, assuming that Linus approves the CML1->CML2 change). This
> would be a net gain in kernel autonomy, as Perl *can't* be compiled
> away.
I'm not entirely convinced that it is desirable to have to install yet
another scripting language just to run CML2.
Why not write a C program to interpret CML2? - I assume that if you have
the kernel sources, you already have a C compiler around. That at least,
is the minimum one should aim for.
Cheers,
Alex
--
The quality of your life will be determined by
the quality of the people in your life.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Hi Eric,
now i know why we haven't heard of you for some time: you have
been very busy... ;-)
On Wed, May 24, 2000 at 04:37:47PM -0400, Eric S. Raymond wrote:
> I'm aware of the problem :-). Python programs can be compiled to
> portable C sources using the `freeze' tool. The translation is
So we are back a C sources. Let me ask you one thing: why not simply
use ISO-C and be done with it? There are excelllent tools like yacc
and lex for building parsers, why don't you use them to generate C
code instead on an obscure script language. I know you really like
Python, but face it: 90% of the folks on this list probaly don't.
> Even if this weren't true, we'd be trading dependencies and not adding
> one. The Perl stuff in the scripts directory will go away shortly
> (that is, assuming that Linus approves the CML1->CML2 change). This
> would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
Let me put it that way: the only dependancies the kernel sources should
have are GNU-make, GNU-binutils, GNU-C and the standard Unix tools (sed,
awk, sh, ...). Both perl and python do not belong into any of these
categories and should not be used. The perl dependency is not critical
at the moment, because you can build a kernel without using these tools,
but it should be removed ASAP. Remember that we had ksymoops rewritten
to remove the C++ dependancy?
I really don't like the added complexity. IMHO we should ditch our current
config scheme in favour of the BSD tools if at all: They are written in
C, they are simple to use and they have a proven track record. What more
is there to ask?
Yours,
Dominik Kubla
--
Networking Group, Hospital of Johannes Gutenberg-University
Obere Zahlbacher Straße 69, 55101 Mainz, Germany
Tel: +49 (0)6131 17-2482 FAX: +49 (0)6131 17-5521
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
"Eric S. Raymond" wrote:
> The project is not yet complete, but it has reached a beta stage at
> which it is usable and in significant ways functionally superior to the
> present system. I am confident that it will complete. I am announcing
> now rather than holding off until I'm completely done because there
> are some preparations which, if begun now, will significantly reduce
> total transition costs. These preparations will *not* break the
> present kbuild system.
>
> Why this project at all? It all started when I realized that building
> kernels is way too hard. I wanted to simplify the configuration task
> enough to make configuration accessible to non-gurus. It needs to
> have more policy options. Rather than hundreds of questions like
> "Include FOOBAR2317 driver?", the novice should see stuff like
> "Compile in all modular drivers as modules without prompting?"
IMNSHO this attitude is wrong. If building the kernel is tough for
newbies, make a userland utility with all these policy questions and
features. We are talking about an interface on the KERNEL DEVELOPER
side of the line.
I am all for making the kernel build and config process more flexible,
but I am NOT at all for "dumbing down" the interface just so to make it
easier for newbies to build a kernel. If a person does not understand
the issues related with building a kernel, they should get someone else
to do it for them. That's why distributions and vendors exist.
> This just can't be done with the existing kbuild system. The existing
> config-language programs are hard to read and modify,
huh? compared to what ? It is simple to read, simple to modify. The
major nasty issue right now is dependencies not readability.
> and the code
> that interprets them has become a huge, unmaintainable hairball of
> Tcl/Tk, C, makefiles, and shell. It has all become terminally
> brittle, and the maintainers agree that it needs to be nuked and
> rebuilt from scratch.
100% agreed.
> It happens that I love writing domain-specific minilanguages, so I have
> tackled this problem head-on. I have designed a new configuration
> language I call CML2 (the existing language I have retrospectively
> named CML1). The implementation has two parts:
[...]
> The major source of problems is, as you might expect, that 6747-line
> mass of old code -- the new language is nontrivially different than
> the old, and the CML1 corpus is so tangled and nasty that I am certain
> I have made at least a few mistakes in the translation. There are
> a couple of places where I didn't understand the author's intentions
> well enough to translate some particularly grotty CML1 code. I'll need
> some help untangling these knots.
Don't worry, it's to be expected.
> Tcl/Tk, and Makefiles, CML2 is all be written in a single language
> (Python).
Yet another tool...
> 4. Eliminates (or at least drastically reduces) lag between port configurations
>
> The fact that the top-level CML1 files of the nine ports in the kernel
> tree are separate means there have been plenty of opportunities for
> the common code in them to suffer from version skew -- I point out
> about a dozen bugs of this kind in the list of errors at the end of
> this post. CML2's design and compilation rules should effectively
> prevent future bugs of this kind.
This definitely needs to be cleaned up, since some of the arch config.in
code exists solely to work around problems which [presumeably] don't
exist in yournew system.
However I think that getting rid of the top-level arch files entirely
will make for administrative headaches. Make sure you communicate
thoroughly with the port maintainers on this one...
> 8. Policy-based options
>
> The declarative semantics of CML2 makes it much easier to set up
> and check interdependencies among symbols. I have done only
> enough of this in the CML1 translation for demonstration purposes (there
> are new symbols TUNING, EXPERT and WIZARD that change some visibilities).
> Once CML2 is in place, it should be a relatively small effort to
> give the user a rich set of policy and don't-bother-me options.
IMHO this shouldn't be in the new system. Make a userland utility
outside of the kernel tree which does this. I think there are already a
few kxxx or gxxx GUI utilities for newbie kernel configuration.
Kernel configuration issues, even under your new system, will always
require a certain amount of knowledge about the kernel in general.
Newbies will lack some or all of this knowledge. Doing this sounds like
it will increase the number of garage bug reports send to lkml...
> I have designed the CML2 implementation to coexist with CML1, so both
> methods can be used while CML2 is being field-tested and debugged. I
> anticipate a phase-in over three or four point releases during 2.5.x,
> followed by a back-port to 2.4.x. Once CML2 is reported OK by the
> various porting groups, Linus can quietly nuke the CML1 machinery.
>
> There are a couple of preparation steps that can fruitfully begin now
> and should happen before 2.4 in order to minimize backporting hassles
> later.
All this can be done post 2.4. Let's break _less_ not more
configurations now.
> 1. Notably, I would appreciate it if config-file maintainers made
> the following changes in those files and relevant C code:
I'm sure you mean to say,
"Do the following changes look acceptable to the relevant code
maintainers?" [.you say in a mail cc'd to the arch or driver
maintainers]
> CONFIG_6xx -> CONFIG_PPC_6xx
> CONFIG_4xx -> CONFIG_PPC_4xx
> CONFIG_PPC64 -> CONFIG_PPC_64
> CONFIG_8260 -> CONFIG_PPC_8260
> CONFIG_8xx -> CONFIG_PPC_88x
> CONFIG_060_WRITETHROUGH -> CONFIG_M68060_WRITETHROUGH
> CONFIG_21285_WATCHDOG -> CONFIG_DC21285_WATCHDOG
> CONFIG_3C515 -> CONFIG_ISA3C515
> CONFIG_8139TOO -> CONFIG_RTL8139
> CONFIG_82C710_MOUSE -> CONFIG_CT82C710_MOUSE
> CONFIG_977_WATCHDOG -> CONFIG_WB83C977_WATCHDOG
> CONFIG_3215 -> CONFIG_IBM3215
> CONFIG_3215_CONSOLE -> CONFIG_IBM3215_CONSOLE
>
> The reason for these is that CML2 symbol names drop the CONFIG_
> prefix. It's unneeded clutter, and made CML1 programs harder to read
> (the eye-brain systems that handle spelling look for prefix matches to
> recognize things).
You drop the CONFIG_xxx prefix? That's not something you do lightly,
nor is it something you toss off as an aside. CONFIG_xxx is an
important namespace convention and exists in a lot of existing kernel
code.
> Also, I had to change the KEYBOARD and MOUSE symbols used in the MIPS branch
> to MIPS_KEYBOARD and MIPS_MOUSE. This is because the MOUSE symbol
> seems to be used in different ways on different architectures (notably
> in the Intel branch).
An example of where merging completely independent config.in paths (Mips
and Intel) causes a conflict :/
> Port maintainers and others with a continuing interest in the development
> of CML2 should probably join the kbuild list -- subscribe in the usual
> way via linux-kbuild-request@torque.net
You should CC maintainers when their code is being discussed or
updated. The onus of effort is on YOU to make your changes known.
Otherwise you imply an unscalable model where maintainers must track
every mailing list that could potentially discuss and affect their code.
Overall, I think it is high time that the config system was rewritten.
While you are doing so, please consider two suggestions:
* It would be nice to be drop to add a new kernel module to the build
without patching a single file. For example, instead of adding
drivers/char/foo.c and patching drivers/char/{Config.in,Makefile}, the
patch to Linus would simply add drivers/char/foo.c and
drivers/char/foo.module. foo.module would contain configuration and
build information normally found in Config.in and Makefile. Doing this
implies some sort of collection step occurring, before the configuration
and before the build.
* Replace current makefile system with one which automatically generates
"one big makefile", from meta-Makefiles found in each subdirectory.
This allows make to generate a complete directed graph of the entire
build and all its dependencies, which eliminates some inherent make
problems, and greatly adds to the flexibility of the build process.
More later when I drop your config system into a test kernel.
Jeff
--
Jeff Garzik | Liberty is always dangerous, but
Building 1024 | it is the safest thing we have.
MandrakeSoft, Inc. | -- Harry Emerson Fosdick
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alex Buell <alex.buell@tahallah.clara.co.uk>:
> Why not write a C program to interpret CML2? - I assume that if you have
> the kernel sources, you already have a C compiler around. That at least,
> is the minimum one should aim for.
I can in fact generate C programs to compile and interpret CML -- by applying
freeze.py to the Python sources.
There would thus be no gain at all -- and lots of pain -- in trying to do this
in straight C. I considered the alternatives carefully.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
"...The Bill of Rights is a literal and absolute document. The First
Amendment doesn't say you have a right to speak out unless the
government has a 'compelling interest' in censoring the Internet. The
Second Amendment doesn't say you have the right to keep and bear arms
until some madman plants a bomb. The Fourth Amendment doesn't say you
have the right to be secure from search and seizure unless some FBI
agent thinks you fit the profile of a terrorist. The government has no
right to interfere with any of these freedoms under any circumstances."
-- Harry Browne, 1996 USA presidential candidate, Libertarian Party
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Eric S. Raymond wrote:
> I can in fact generate C programs to compile and interpret CML -- by
> applying freeze.py to the Python sources.
OK - are you saying that Python will generate C sources?
Cheers,
Alex
--
The quality of your life will be determined by
the quality of the people in your life.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
"Eric S. Raymond" wrote:
> Alexander Viro <viro@math.psu.edu>:
> > Not only. Dependency on Python is definitely a problem - not everyone uses
> > 'everything and a kitchen sink' type of userland.
[...]
> Even if this weren't true, we'd be trading dependencies and not adding
> one. The Perl stuff in the scripts directory will go away shortly
> (that is, assuming that Linus approves the CML1->CML2 change). This
> would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
You're rewriting kernel-doc in Python too?
Let's be realistic here. Very few will go to the trouble of doing the
Python-to-C thing, because it requires Python in the first place.
Python becomes an additional build requirement. Admit it and move on
;-)
Jeff
--
Jeff Garzik | Liberty is always dangerous, but
Building 1024 | it is the safest thing we have.
MandrakeSoft, Inc. | -- Harry Emerson Fosdick
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alex Buell <alex.buell@tahallah.clara.co.uk>:
> On Wed, 24 May 2000, Eric S. Raymond wrote:
>
> > I can in fact generate C programs to compile and interpret CML -- by
> > applying freeze.py to the Python sources.
>
> OK - are you saying that Python will generate C sources?
Yes, that is exactly what I am saying. There is a Python tool called "freeze"
that takes a Python program and generates equivalent C sources.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Sometimes it is said that man cannot be trusted with the government
of himself. Can he, then, be trusted with the government of others?
-- Thomas Jefferson, in his 1801 inaugural address
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Eric S. Raymond (esr@thyrsus.com) writes:
> Alexander Viro <viro@math.psu.edu>:
> > On Wed, 24 May 2000, Eric S. Raymond wrote:
> >
> > > (Ideally, I'd like to turf both Perl and Tk out of the kernel tree
> > > entirely. They're kludges, and they promote kludging. Python plus
> >
> > <shrug> Let's take holy wars somewhere else... No arguments on Tk, but
> > Perl vs. Python has _way_ too nasty potential for growing into BThreadFH.
>
> I am now stifling myself :-).
Thank you! Methinks Eric ought to redirect his voice to championing the
Open Source movement and exposing the fools over at ZDNet rather than joining
in on more holy wars ;)
> You'll like its behavior, then. It wakes up, looks around, says
> "Can I do X and do I have Tkinter?". If so, it launches the Tk
> interface (in my version; the one I posted doesn't have this code).
>
> If either DISPLAY is unset or Tkinter isn't importable, it then says
> "Can I do screen graphics and do I have curses?" If so, it launches the curses
> interface.
>
> If TERM is unset or the curses import fails, it falls back to glass-tty mode.
>
> Curses or glass-tty mode can be forced with command-line options.
Can it be compiled so that it doesn't even need the X libraries to even run?
That would be nice. I don't run X, think it's evil as hell, and love my
faster-than-a-bat-out-of-hell curses stuff, and would hate to have to butcher
the hell out of this stuff so that it doesn't look for the X libraries at
startup...
--
Ed Carp, N7EKG erc@pobox.com 940/367-2744 cell phone
http://www.pobox.com/~erc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alexander Viro (viro@math.psu.edu) writes:
> Al, -><- close to getting PO'd enough to actually implement One
> True Editor as ldisc - insmod vi.o and there we go...
I think we ought to be celebrating the fact that we *have* more than one editor
to choose from, instead of fighting over which is the One True Editor, an
argument which is foolish on its face. My office mate uses Emacs, he loves
it, and more power to him. I use vi. I'm just glad that I'm not forced to
use Emacs, and he's not forced to use vi, and that's what this whole thing
is all about, isn't it?
--
Ed Carp, N7EKG erc@pobox.com 940/367-2744 cell phone
http://www.pobox.com/~erc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, May 24, 2000 at 04:17:55PM -0400, Alexander Viro wrote:
>
> Not only. Dependency on Python is definitely a problem - not everyone uses
> 'everything and a kitchen sink' type of userland.
Not so pessimistic! Such a beautiful language.
esr writes:
--------------------------------------------------------------------
2. Python, unlike other scripting languages, can be (effectively)
compiled to pure C using the `freeze' facility. The translation is
not pretty, and produces rather large C programs from even small
Python sources, but it does meet the problem of portability head-on.
Kernels could be shipped with a precompiled rulebase frozen C version
of the CML2 interpreter to avoid the requirement for Python.
--------------------------------------------------------------------
(to esr: Comments:
An inconsistency: cmlcompile starts out "#!/usr/bin/env python"
but cmlconfigure starts out "#!/usr/bin/python".
It looks like you never tried the enclosed makefile.
rules.out: $(CMLFILES)
cmlcompile rules.cml
fails because rules.cml does not exist.
The call
cmlconfigure -m rules.out
fails with
cmlconfigure: unknown option on command line.
Etc. Maybe you can polish it a bit more, and add a README or INSTALL,
so that not everybody has to debug the same problems.)
Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
[Ed Carp <erc@pobox.com>]
> Can it be compiled so that it doesn't even need the X libraries to
> even run? That would be nice.
Since it's written in Python, presumably yes. Assuming your copy of
Python can run without X libraries.
For the record (as I've told Eric before), I don't think freeze.py is
any substitute for usable source code. If it is determined that Python
is an absolutely onerous requirement and that the system must build
with gcc only, it's not reasonable to expect Linus to run `freeze'
every time someone patches the Python source. Nor is it practical to
require every CML2 patch submitter to include the patch to frozen C.
So I think "there is a freeze.py available" is something of a red
herring. Either we accept Python as a build requirement or we don't.
(And if not, Eric or someone like him can go rewrite it all in C or
*gasp* Perl.)
> I don't run X, think it's evil as hell, and love my
> faster-than-a-bat-out-of-hell curses stuff, and would hate to have to
> butcher the hell out of this stuff so that it doesn't look for the X
> libraries at startup...
Me too but I do have X libraries installed -- it's just too handy to
use distribution binaries and a lot of Debian is linked against xlib
even where X is optional. (It's Debian policy in fact -- if you *can*
configure with X support, you should, and if you expect that to be a
problem, you can provide a secondary package without X.)
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> For the record (as I've told Eric before), I don't think freeze.py is
> any substitute for usable source code. If it is determined that Python
> is an absolutely onerous requirement and that the system must build
> with gcc only, it's not reasonable to expect Linus to run `freeze'
> every time someone patches the Python source.
Is maintaining a bunch of broken tcl any better? Why would it
be hard for Linus to run freeze, particularly if it were part of a Makefile?
Requiring everyone to have python is not reasonable, requiring Linus
to have python probably _is_ reasonable. Why is patching python code any
harder than patching C?
> Nor is it practical to
> require every CML2 patch submitter to include the patch to frozen C.
This is certainly impractical, but no one is suggesting it.
>
> So I think "there is a freeze.py available" is something of a red
> herring. Either we accept Python as a build requirement or we don't.
> (And if not, Eric or someone like him can go rewrite it all in C or
> *gasp* Perl.)
>
I disagree. Neither I nor most people will have interest in monkeying
with that portion of the code. If we do, then OK, we get python. Don't we have
to have tcl to monkey with the Tk source now?
> > I don't run X, think it's evil as hell, and love my
> > faster-than-a-bat-out-of-hell curses stuff, and would hate to have to
> > butcher the hell out of this stuff so that it doesn't look for the X
> > libraries at startup...
Perhaps a little discussion on the default behavior would be in order.
Austin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Ed Carp <erc@pobox.com>:
> Can it be compiled so that it doesn't even need the X libraries to even run?
> That would be nice. I don't run X, think it's evil as hell, and love my
> faster-than-a-bat-out-of-hell curses stuff, and would hate to have to butcher
> the hell out of this stuff so that it doesn't look for the X libraries at
> startup...
It doesn't need the X libraries to run. But it will use them if it finds them.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
The day will come when the mystical generation of Jesus by the Supreme
Being as his father, in the womb of a virgin, will be classed with the
fable of the generation of Minerva in the brain of Jupiter.
-- Thomas Jefferson, 1823
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Jeff Garzik <jgarzik@mandrakesoft.com>:
> You're rewriting kernel-doc in Python too?
Not yet. Hm. I hadn't noticed that one. No. I'll stick to making
configuration work right, for now anyway.

> Let's be realistic here. Very few will go to the trouble of doing the
> Python-to-C thing, because it requires Python in the first place.
> Python becomes an additional build requirement. Admit it and move on
> ;-)
Yes, Jeff, I know freezing is kind of a disingenuous answer. But it's
good enough, because the question was silly ;-).
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
The end move in politics is always to pick up a gun.
-- R. Buckminster Fuller
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Dominik Kubla <dominik.kubla@uni-mainz.de>:
> > I'm aware of the problem :-). Python programs can be compiled to
> > portable C sources using the `freeze' tool. The translation is
>
> So we are back a C sources. Let me ask you one thing: why not simply
> use ISO-C and be done with it?
Basically, because managing memory by hand for this kind of application is more
pain than I want to go through. And the resulting program in C would be far
more complex and bug-prone.
A wise craftsman uses the right tool for the right job. I actually made
a run at coding one of the early versions in C; it was a bad idea.
Python is the right tool for this job.
I'll supply make productions to freeze C sources from the Python. They
can, if Linus so decides, be part of the release mechanics.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
He that would make his own liberty secure must guard even his enemy from
oppression: for if he violates this duty, he establishes a precedent that
will reach unto himself.
-- Thomas Paine
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Ed Carp wrote:
>
> Eric S. Raymond (esr@thyrsus.com) writes:
>
> > You'll like its behavior, then. It wakes up, looks around, says
> > "Can I do X and do I have Tkinter?". If so, it launches the Tk
> > interface (in my version; the one I posted doesn't have this code).
> >
> > If either DISPLAY is unset or Tkinter isn't importable, it then says
> > "Can I do screen graphics and do I have curses?" If so, it launches the curses
> > interface.
> >
> > If TERM is unset or the curses import fails, it falls back to glass-tty mode.
> >
> > Curses or glass-tty mode can be forced with command-line options.
>
> Can it be compiled so that it doesn't even need the X libraries to even run?
> That would be nice. I don't run X, think it's evil as hell, and love my
> faster-than-a-bat-out-of-hell curses stuff, and would hate to have to butcher
> the hell out of this stuff so that it doesn't look for the X libraries at
> startup...
Where does he say or even imply it needs any X libraries ?
If you have no X, then you are not running X. If you are not running X then
you have no $DISPLAY set. If you are not running X and yet have a $DISPLAY
set, then you have deliberately or ignorantly subverted such a common
standard that neither cml nor any of the hundreds of other programs that
will train-wreck in this environment should be held responsible.
--
Brian K. White http://www.squonk.net/users/linut
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro BBx Linux SCO Prosper/FACTS AutoCAD #callahans Satriani
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Jeff Garzik <jgarzik@mandrakesoft.com>:
> IMNSHO this attitude is wrong. If building the kernel is tough for
> newbies, make a userland utility with all these policy questions and
> features. We are talking about an interface on the KERNEL DEVELOPER
> side of the line.
We'll have to disagree on this. I am just as firmly of the opinion that
a well-designed tool can serve both populations well.
> I am all for making the kernel build and config process more flexible,
> but I am NOT at all for "dumbing down" the interface just so to make it
> easier for newbies to build a kernel.
Fine. You choose EXPERT or WIZARD on the policy menu, then.
> huh? compared to what ? It is simple to read, simple to modify. The
> major nasty issue right now is dependencies not readability.
It's pretty nasty -- mec himself, the CML1 maintainer, thinks so and
strongly encouraged me to shoot CML1 through the head if I could
possibly manage it. Perhaps you're too close to it to see how ugly it is.
> This definitely needs to be cleaned up, since some of the arch config.in
> code exists solely to work around problems which [presumeably] don't
> exist in yournew system.
>
> However I think that getting rid of the top-level arch files entirely
> will make for administrative headaches. Make sure you communicate
> thoroughly with the port maintainers on this one...
I'm aware that the One Big Tree design will entail some coordination
problems among the port maintainers. I'm pretty sure that, on net,
they'll be less than the friction costs of the present mess.
> You drop the CONFIG_xxx prefix? That's not something you do lightly,
> nor is it something you toss off as an aside. CONFIG_xxx is an
> important namespace convention and exists in a lot of existing kernel
> code.
You misunderstand. CML2 generates the CONFIG_ prefix into the config
files; I'm not changing the actual config-symbol namespace. it just
doesn't use the prefix in the ruleset declarations. Without it, the
symbols I'm requesting changes to look like malformed numbers.
> > Also, I had to change the KEYBOARD and MOUSE symbols used in the MIPS branch
> > to MIPS_KEYBOARD and MIPS_MOUSE. This is because the MOUSE symbol
> > seems to be used in different ways on different architectures (notably
> > in the Intel branch).
>
> An example of where merging completely independent config.in paths (Mips
> and Intel) causes a conflict :/
Yes. But this is a good conflict to be forced to resolve. The
multi-apex system has led to unnecessary complications and
duplications in the configuration-symbol namespace -- complications
which percolate up through the config tool to make kernel building
unnecessarily difficult. There is a particularly nasty case of this
near math emulation, for example.
> > Port maintainers and others with a continuing interest in the development
> > of CML2 should probably join the kbuild list -- subscribe in the usual
> > way via linux-kbuild-request@torque.net
>
> You should CC maintainers when their code is being discussed or
> updated. The onus of effort is on YOU to make your changes known.
> Otherwise you imply an unscalable model where maintainers must track
> every mailing list that could potentially discuss and affect their code.
I'm willing to make this effort. How do I go from a symbol to identifying
the relevant maintainer?

> Overall, I think it is high time that the config system was rewritten.
> While you are doing so, please consider two suggestions:
I think these are both fine ideas for later in the process. Right now
I want to stay focused on managing the transition to a clean language
and toolkit. That will position us to attack the larger problems --
which I *will* cheerfully take on, as they involve kinds of problems I
enjoy solving and am correspondingly good at.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Americans have the right and advantage of being armed - unlike the citizens
of other countries whose governments are afraid to trust the people with arms.
-- James Madison, The Federalist Papers
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
John Cowan <cowan@locke.ccil.org>:
> Peter Samuelson scripsit:
>
> > If it is determined that Python
> > is an absolutely onerous requirement and that the system must build
> > with gcc only, it's not reasonable to expect Linus to run `freeze'
> > every time someone patches the Python source. Nor is it practical to
> > require every CML2 patch submitter to include the patch to frozen C.
>
> Patches *to* cmlcompile and cmlconfig would presumably be in Python,
> and the Makefile for these programs would include a freeze step.
> Changes to the CML itself would not require refreezing anything,
> as they only change the pickled rulebase.
Couldn't have put it better myself.

> Are you under the impression that CML2 is a subset of Python, or
> that it's interpreted by the Python interpreter directly, or something?
> Not so. It is a distinct language, implemented with a compiler and a VM,
> both of which happen in turn to be implemented in Python. Since it
> is possible to compile Python to C, both compiler and VM
> can be supplied in either C-source or executable form.
I wouldn't describe the configurator as a VM exactly, but this is
otherwise correct.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
"The state calls its own violence `law', but that of the individual `crime'"
-- Max Stirner
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
[esr]
> > Basically, because managing memory by hand for this kind of
> > application is more pain than I want to go through. And the
> > resulting program in C would be far more complex and bug-prone.
[willy@thepuffingroup.com <willy@thepuffingroup.com>]
> why even bother keeping track of memory? this is a run-and-exit
> program; the memory you used gets freed at exit.
If it really turns out to be that simple, someone can go and rewrite
the whole business in C. (You know, like ksymoops.) When Eric first
brought his proposal to linux-kbuild a few months ago, we made him
promise to draft a full language spec (as opposed to just a RTSL spec).
This is one reason -- so it can be reimplemented accurately.
In fact, depending on how well I end up liking his language (haven't
downloaded it yet, but I remember roughly what it looked like in
earlier design stages -- it did seem sane) I might take this on myself.
Because I don't know if I want to see the extra tool requirement. And
I *really* don't think I want to see "freeze" files in Linus's patches.
(Precompiled files are, unfortunately, *necessary* with SCSI firmware
... they shouldn't be necessary in the config system.)
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Brian K. White wrote:
>Ed Carp wrote:
>>
>> Eric S. Raymond (esr@thyrsus.com) writes:
>>
>> > You'll like its behavior, then. It wakes up, looks around, says
>> > "Can I do X and do I have Tkinter?". If so, it launches the Tk
>> > interface (in my version; the one I posted doesn't have this code).
>> >
>> > If either DISPLAY is unset or Tkinter isn't importable, it then says
>> > "Can I do screen graphics and do I have curses?" If so, it launches the curses
>> > interface.
>> >
>> > If TERM is unset or the curses import fails, it falls back to glass-tty mode.
>> >
>> > Curses or glass-tty mode can be forced with command-line options.
>>
>> Can it be compiled so that it doesn't even need the X libraries to even run?
>> That would be nice. I don't run X, think it's evil as hell, and love my
>> faster-than-a-bat-out-of-hell curses stuff, and would hate to have to butcher
>> the hell out of this stuff so that it doesn't look for the X libraries at
>> startup...
>
>Where does he say or even imply it needs any X libraries ?
>
>If you have no X, then you are not running X. If you are not running X then
>you have no $DISPLAY set. If you are not running X and yet have a $DISPLAY
>set, then you have deliberately or ignorantly subverted such a common
>standard that neither cml nor any of the hundreds of other programs that
>will train-wreck in this environment should be held responsible.
I do configuration over a SSL connection, with X display, but no X server
other than the SSL X. Does that mean I have the X development libraries?
NO. I do have the applications though. I do have the compiler (for building
the kernel mostly), and base libraries. I do not have the X libraries.
-------------------------------------------------------------------------
Jesse I Pollard, II
Email: pollard@cats-chateau.net
Any opinions expressed are solely my own.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
[John Cowan <cowan@locke.ccil.org>]
> Patches *to* cmlcompile and cmlconfig would presumably be in Python,
> and the Makefile for these programs would include a freeze step.
I know, I still don't like it. Including generated files in a source
distribution is just wrong, when avoidable. (I even dislike seeing
files generated by lex, yacc and autoconf, although I fully understand
the practical reasons why so much software ships with them.)
It bloats Linus's tarballs, bloats Linus's patches, and (depending on
whether Linus wants to take responsibility for generating the freeze
files) could bloat people's patches to Linus.
> Are you under the impression that CML2 is a subset of Python, or that
> it's interpreted by the Python interpreter directly, or something?
No, I understand what CML2 is. Eric first brought it up on
linux-kbuild a few months ago. I even agree with most of where he's
going with it. My main objection is the Python tool dependency -- and
the attempt to deflate it by saying "but if you must, you can also ship
basically-binary-equivalent C code". To me that's not a very practical
answer.
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
"Eric S. Raymond" wrote:
> The project is not yet complete, but it has reached a beta stage at
> which it is usable and in significant ways functionally superior to the
> present system. I am confident that it will complete. I am announcing
> now rather than holding off until I'm completely done because there
> are some preparations which, if begun now, will significantly reduce
> total transition costs. These preparations will *not* break the
> present kbuild system.
>
> Why this project at all? It all started when I realized that building
> kernels is way too hard. I wanted to simplify the configuration task
> enough to make configuration accessible to non-gurus. It needs to
> have more policy options. Rather than hundreds of questions like
> "Include FOOBAR2317 driver?", the novice should see stuff like
> "Compile in all modular drivers as modules without prompting?"
Jeff Garzik <jgarzik@mandrakesoft.com> responded:
IMNSHO this attitude is wrong. If building the kernel is tough for
newbies, make a userland utility with all these policy questions and
features. We are talking about an interface on the KERNEL DEVELOPER
side of the line.
I am all for making the kernel build and config process more flexible,
but I am NOT at all for "dumbing down" the interface just so to make it
easier for newbies to build a kernel. If a person does not understand
the issues related with building a kernel, they should get someone else
to do it for them. That's why distributions and vendors exist.
Hi Folks,
I've spent 40 years being a newbie. It's that or passé. I was
programming before assemblers were invented. Today's "newbies" are often
more advanced than yesterday's programmers. I now have octagenerians
asking me to help them install linux. Note the word help. The general
computer user population is tons more sophisticated than it was even 5
years ago. Worry about functionality. The newbies will learn. What I
would like to see is for Configure.help to become a nice readable doc or
the information source for one. This would give people an advance look
at the questions that will be presented.
Garst
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, May 24, 2000 at 08:45:50PM -0400, Eric S. Raymond wrote:
> Basically, because managing memory by hand for this kind of application is more
> pain than I want to go through. And the resulting program in C would be far
> more complex and bug-prone.
why even bother keeping track of memory? this is a run-and-exit program;
the memory you used gets freed at exit.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
willy@thepuffingroup.com <willy@thepuffingroup.com>:
> On Wed, May 24, 2000 at 08:45:50PM -0400, Eric S. Raymond wrote:
> > Basically, because managing memory by hand for this kind of application is
> > more pain than I want to go through. And the resulting program in C would
> > be far more complex and bug-prone.
>
> why even bother keeping track of memory? this is a run-and-exit program;
> the memory you used gets freed at exit.
That's not anywhere near a complete solution. Please trust me on
this, because otherwise I'd have to give you a longer brain dump on
the engineering of compilers and interpreters and the shortcomings of
C than I have time for right now.
I've written more of these than I can easily remember, it's my specialty.
It can be done in C (and about half of my projects demonstrate that I know
both the words and the music of that tune) but you sure don't want to unless
the production speed of the compiler/interpreter is a drop-dead issue.
Barring the mythical portable-LISP-dialect-with-good-OS-bindings that
has never existed, Python is about the most reasonable alternative
there is for this kind of work.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Every election is a sort of advance auction sale of stolen goods.
-- H.L. Mencken
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Peter Samuelson <peter@cadcamlab.org>:
> If it really turns out to be that simple, someone can go and rewrite
> the whole business in C. (You know, like ksymoops.) When Eric first
> brought his proposal to linux-kbuild a few months ago, we made him
> promise to draft a full language spec (as opposed to just a RTSL spec).
> This is one reason -- so it can be reimplemented accurately.
I feel impelled to note that the kbuild guys didn't "make" me promise
that -- I would have written a careful language description anyway
because I just *do* things that way. It's called professionalism, or
something.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
A human being should be able to change a diaper, plan an invasion,
butcher a hog, conn a ship, design a building, write a sonnet, balance
accounts, build a wall, set a bone, comfort the dying, take orders, give
orders, cooperate, act alone, solve equations, analyze a new problem,
pitch manure, program a computer, cook a tasty meal, fight efficiently,
die gallantly. Specialization is for insects.
-- Robert A. Heinlein Time Enough for Love
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Peter Samuelson (peter@cadcamlab.org) writes:
> > I don't run X, think it's evil as hell, and love my
> > faster-than-a-bat-out-of-hell curses stuff, and would hate to have to
> > butcher the hell out of this stuff so that it doesn't look for the X
> > libraries at startup...
>
> Me too but I do have X libraries installed -- it's just too handy to
> use distribution binaries and a lot of Debian is linked against xlib
> even where X is optional. (It's Debian policy in fact -- if you *can*
> configure with X support, you should, and if you expect that to be a
> problem, you can provide a secondary package without X.)
That's *stupid*. What about all those cool linux-router-in-a-box-boot-off-a-folppy
sort of distributions? They sure can't use Debian...
I've got an old 486/50 laptop that's got a couple of PCMCIA network cards in
it, doing routing/NAT stuff between my home LAN and an ADSL line, and it works
perfectly. It all boots off of floppies, and I'm working on getting it to
boot off of one. It would be impossible if all my stuff were linked against
xlib.
--
Ed Carp, N7EKG erc@pobox.com 940/367-2744 cell phone
http://www.pobox.com/~erc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> > When Eric first brought his proposal to linux-kbuild a few months
> > ago, we made him promise to draft a full language spec (as opposed
> > to just a RTSL spec).
[esr]
> I feel impelled to note that the kbuild guys didn't "make" me promise
> that -- I would have written a careful language description anyway
> because I just *do* things that way. It's called professionalism, or
> something.
I know, sorry for implying otherwise. MEC asked you to, as I recall,
and you said you had already planned on it.
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
[Ed Carp <erc@pobox.com>]
> That's *stupid*. What about all those cool
> linux-router-in-a-box-boot-off-a-folppy sort of distributions? They
> sure can't use Debian...
Sure, they just have to recompile packages. Debian was never meant to
be one-size-fits-all, and recompiling isn't all that hard.
I actually ran into this problem once. I had an old Debian install on
a laptop and it was nowhere near an Internet connection or a Debian CD,
and the install was somewhat broken, and xlib was nowhere to be found,
and I wanted to run Emacs. I ended up compiling a lib full of stubs
and relying on Emacs not to try calling them. It worked.
This approach could be taken by the router-on-a-floppy types. Debian
already has a "svgalib-dummy" package similar to what I did above, so
that you can run svgalib-capable packages like ghostscript without
needing svgalib. I've often wondered what has prevented any Debian
developers for doing the same with xlib.
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, May 24, 2000 at 11:57:34PM +0200, Dominik Kubla wrote:
> Hi Eric,
>
> now i know why we haven't heard of you for some time: you have
> been very busy... ;-)
>
> On Wed, May 24, 2000 at 04:37:47PM -0400, Eric S. Raymond wrote:
>
> > I'm aware of the problem :-). Python programs can be compiled to
> > portable C sources using the `freeze' tool. The translation is
>
> So we are back a C sources. Let me ask you one thing: why not simply
> use ISO-C and be done with it? There are excelllent tools like yacc
> and lex for building parsers, why don't you use them to generate C
> code instead on an obscure script language. I know you really like
> Python, but face it: 90% of the folks on this list probaly don't.
As much as I hate Python you would have to be masochistic to try
and code something like this in straight C. The string and regex
capabilities in Python/Perl/Tcl make things a lot simpler plus a
lot easier to maintain.
Python can generate C source code output so it is not a delivery
problem. If you don't like Python that's OK too, because I don't
particularly like the spaghetti mess of Perl/Tcl/Tk/C/Bash we're
suffering with either.
Eric's thing sounds like an overall win. Complaints about Python
are really missing the point.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, May 24, 2000 at 09:27:57PM -0500, Peter Samuelson wrote:
> It bloats Linus's tarballs, bloats Linus's patches, and (depending on
> whether Linus wants to take responsibility for generating the freeze
> files) could bloat people's patches to Linus.
Especially since freeze requires the entire source for the Python
interpreter (unless freeze has been significantly since I last
looked at it). Forget freeze and just install Python. The
interpreter and standard library is not all that large. Besides,
Python is super cool. :)
Neil
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, May 24, 2000 at 08:45:50PM -0400, Eric S. Raymond wrote:
>
> Basically, because managing memory by hand for this kind of application is more
> pain than I want to go through. And the resulting program in C would be far
> more complex and bug-prone.
>
> A wise craftsman uses the right tool for the right job. I actually made
> a run at coding one of the early versions in C; it was a bad idea.
> Python is the right tool for this job.
>
> I'll supply make productions to freeze C sources from the Python. They
> can, if Linus so decides, be part of the release mechanics.
This thread is turning nasty.
Could people please keep in mind that the real work Eric has given
us here is a language specification for CML2. The Python script is
simply a reference implementation and it is entirely irrelevant in
considering the actual merits of CML2.
If CML2 looks like a winner then it would be no real effort to get
a C version up and running. In the meantime, complaining about the
reference implementation is like complaining about the size of the
cup holders in a revolutionary new electric car.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Ed Carp wrote:
>Peter Samuelson (peter@cadcamlab.org) writes:
>
>> > I don't run X, think it's evil as hell, and love my
>> > faster-than-a-bat-out-of-hell curses stuff, and would hate to have to
>> > butcher the hell out of this stuff so that it doesn't look for the X
>> > libraries at startup...
>>
>> Me too but I do have X libraries installed -- it's just too handy to
>> use distribution binaries and a lot of Debian is linked against xlib
>> even where X is optional. (It's Debian policy in fact -- if you *can*
>> configure with X support, you should, and if you expect that to be a
>> problem, you can provide a secondary package without X.)
>
>That's *stupid*. What about all those cool linux-router-in-a-box-boot-off-a-folppy
>sort of distributions? They sure can't use Debian...
>
>I've got an old 486/50 laptop that's got a couple of PCMCIA network cards in
>it, doing routing/NAT stuff between my home LAN and an ADSL line, and it works
>perfectly. It all boots off of floppies, and I'm working on getting it to
>boot off of one. It would be impossible if all my stuff were linked against
>xlib.
Do you build kernels on your router?
If not, then your point is moot.
-George Greer
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Eric S. Raymond (esr@thyrsus.com) writes:
> willy@thepuffingroup.com <willy@thepuffingroup.com>:
> > On Wed, May 24, 2000 at 08:45:50PM -0400, Eric S. Raymond wrote:
> > > Basically, because managing memory by hand for this kind of application is
> > > more pain than I want to go through. And the resulting program in C would
> > > be far more complex and bug-prone.
> >
> > why even bother keeping track of memory? this is a run-and-exit program;
> > the memory you used gets freed at exit.
>
> That's not anywhere near a complete solution. Please trust me on
> this, because otherwise I'd have to give you a longer brain dump on
> the engineering of compilers and interpreters and the shortcomings of
> C than I have time for right now.
Why should we? What "shortcomings"? You mean, like you have to free
what you malloc? That's not a "shortcoming", that's just laziness. On the
other hand, you are right - *not* keeping track of memory necause it's just
a "run-and-exit" program is also programmer laziness.
It's easy enough to write routines that will do the memory management stuff
for you, and the C program would *not* be much more complex, nor would it
be much more error prone. Just because you don't want to, or don't have the
time, is no reason to try and trash C.
> I've written more of these than I can easily remember, it's my specialty.
> It can be done in C (and about half of my projects demonstrate that I know
> both the words and the music of that tune) but you sure don't want to unless
> the production speed of the compiler/interpreter is a drop-dead issue.
Oh, stop it before it becomes a religious issue. You are right, but only from
your own perspective. From my perspective, from someone who has written
literally thousands of lines of production C, it's *always* an issue. People
who ignore performance or memory issues are fools who assume that everyone
is going to be running their code on the latest PIII with a gig of RAM.
--
Ed Carp, N7EKG erc@pobox.com 940/367-2744 cell phone
http://www.pobox.com/~erc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Peter Samuelson scripsit:
> If it is determined that Python
> is an absolutely onerous requirement and that the system must build
> with gcc only, it's not reasonable to expect Linus to run `freeze'
> every time someone patches the Python source. Nor is it practical to
> require every CML2 patch submitter to include the patch to frozen C.
Patches *to* cmlcompile and cmlconfig would presumably be in Python,
and the Makefile for these programs would include a freeze step.
Changes to the CML itself would not require refreezing anything,
as they only change the pickled rulebase.
Are you under the impression that CML2 is a subset of Python, or
that it's interpreted by the Python interpreter directly, or something?
Not so. It is a distinct language, implemented with a compiler and a VM,
both of which happen in turn to be implemented in Python. Since it
is possible to compile Python to C, both compiler and VM
can be supplied in either C-source or executable form.
--
John Cowan cowan@ccil.org
Yes, I know the message date is bogus. I can't help it.
--me, on far too many occasions
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
George (greerga@nidhogg.ham.muohio.edu) writes:
> >I've got an old 486/50 laptop that's got a couple of PCMCIA network cards in
> >it, doing routing/NAT stuff between my home LAN and an ADSL line, and it works
> >perfectly. It all boots off of floppies, and I'm working on getting it to
> >boot off of one. It would be impossible if all my stuff were linked against
> >xlib.
>
> Do you build kernels on your router?
>
> If not, then your point is moot.
That statement is insane. Whether or not I build kernels on my router has
absolutely nothing to do with the issue. And if you can't see the point,
what are you doing here?
--
Ed Carp, N7EKG erc@pobox.com 940/367-2744 cell phone
http://www.pobox.com/~erc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Eric S. Raymond (esr@thyrsus.com) writes:
[lotso stuff about some coding]
I'm not about to jump into the religious war about programming languages
et al (if I did, I'd be squarely in the do-it-C camp, supporting BitKeeper
has taught me that if you care about maintaining something you don't
depend on scripting languages which keep getting "better" and breaking
old scripts - but I really don't see it as a big issue in this case).
I'd just like to welcome Eric back to programming. I personally think that
you lead by example, and what better way to lead a bunch of programmers than
by programming? Welcome back, Eric, it's good to see you doing what you do
so well.
We now return you to your regularly scheduled religious war about programming
languages. Tune in next week for our discussion of licensing models :-)
--
---
Larry McVoy lm@bitmover.com http://www.bitmover.com/lm
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, May 24, 2000 at 09:25:18PM -0600, Neil Schemenauer wrote:
> On Wed, May 24, 2000 at 09:27:57PM -0500, Peter Samuelson wrote:
> > It bloats Linus's tarballs, bloats Linus's patches, and (depending on
> > whether Linus wants to take responsibility for generating the freeze
> > files) could bloat people's patches to Linus.
>
> Especially since freeze requires the entire source for the Python
> interpreter (unless freeze has been significantly since I last
> looked at it).
This is a critical point. How big is this stuff frozen?
Austin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Larry McVoy <lm@bitmover.com>:
> I'd just like to welcome Eric back to programming. I personally think that
> you lead by example, and what better way to lead a bunch of programmers than
> by programming? Welcome back, Eric, it's good to see you doing what you do
> so well.
The truth is that I never stopped coding. But I guess this list can't
be expected to be au courant on SNG or pnglib or the other stuff I've
been up to in the last year.
I wrote a lot of CML2 on my VAIO in hotel rooms and on plane flights.
Coding is how I stay sane amidst the suits and journalists.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
You know why there's a Second Amendment? In case the government fails to
follow the first one.
-- Rush Limbaugh, in a moment of unaccustomed profundity 17 Aug 1993
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Eric S. Raymond wrote:
> I'm willing to make this effort. How do I go from a symbol to identifying
> the relevant maintainer?
Maybe we should start maintaining a file that has this relationship?
CONFIG_SPECIALIX R.E.Wolff@BitWizard.nl
CONFIG_SX R.E.Wolff@BitWizard.nl
CONFIG_RIO R.E.Wolff@BitWizard.nl
Roger.
--
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2137555 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
* Common sense is the collection of *
****** prejudices acquired by age eighteen. -- Albert Einstein ********
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Rogier Wolff wrote:
> Eric S. Raymond wrote:
> > I'm willing to make this effort. How do I go from a symbol to identifying
> > the relevant maintainer?
Unfortunately right now you must manually make the association, by first
looking at MAINTAINERS, then looking the source itself, for a relevant
e-mail address. If all else fails, search lkml archives for likely
suspects :)
> Maybe we should start maintaining a file that has this relationship?
>
> CONFIG_SPECIALIX R.E.Wolff@BitWizard.nl
> CONFIG_SX R.E.Wolff@BitWizard.nl
> CONFIG_RIO R.E.Wolff@BitWizard.nl
It could go in Configure.help if nowhere else...
Jeff
--
Jeff Garzik | Liberty is always dangerous, but
Building 1024 | it is the safest thing we have.
MandrakeSoft, Inc. | -- Harry Emerson Fosdick
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Eric S. Raymond wrote:
> Alexander Viro <viro@math.psu.edu>:
> > Not only. Dependency on Python is definitely a problem - not everyone uses
> > 'everything and a kitchen sink' type of userland.
>
> I'm aware of the problem :-). Python programs can be compiled to
> portable C sources using the `freeze' tool. The translation is
> inelegant (it embeds a Python byte-code interpreter in the generated
> C) but it works. So a working CML2 configurator can be shipped for an
> environment without Python.
>
> Even if this weren't true, we'd be trading dependencies and not adding
> one. The Perl stuff in the scripts directory will go away shortly
> (that is, assuming that Linus approves the CML1->CML2 change). This
> would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
perlcc?
Personally, I've got both perl and python on my machine. On the other
hand, there are machines out there without tools like "make" and "cc" - do
you want to support them, as well - bundle a copy of GCC etc. with the
kernel?
James.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
James Sutherland <jas88@cam.ac.uk>:
> > Even if this weren't true, we'd be trading dependencies and not adding
> > one. The Perl stuff in the scripts directory will go away shortly
> > (that is, assuming that Linus approves the CML1->CML2 change). This
> > would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
>
> perlcc?
Is, I'm told, a kluge much like the freeze tool. You can compile away
control structure but you end up carrying around most of Perl as
runtime support.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Strict gun laws are about as effective as strict drug laws...It pains
me to say this, but the NRA seems to be right: The cities and states
that have the toughest gun laws have the most murder and mayhem.
-- Mike Royko, Chicago Tribune
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Thu, 25 May 2000, Eric S. Raymond wrote:
> James Sutherland <jas88@cam.ac.uk>:
> > > Even if this weren't true, we'd be trading dependencies and not adding
> > > one. The Perl stuff in the scripts directory will go away shortly
> > > (that is, assuming that Linus approves the CML1->CML2 change). This
> > > would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
> >
> > perlcc?
>
> Is, I'm told, a kluge much like the freeze tool. You can compile away
> control structure but you end up carrying around most of Perl as
> runtime support.
Personally, I wouldn't recommend using either. Just adding Python to the
list of requirements for configuration seems fair, IMHO; while the kernel
is USED on heavily cut-down systems, it doesn't need to be buildable on
them.
I don't want to see another holy war starting - the "GPL for libraries"
debate was quite enough for one lifetime - but I don't like the idea of
"getting rid of" the Perl scripts. If it works, use it, if not, fix it or
report it as a bug. Perl, python, make, gcc etc. are all common enough
(and free enough!) to have as requirements, I think.
James.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, May 24, 2000 at 06:05:18PM -0500, Ed Carp wrote:
> Alexander Viro (viro@math.psu.edu) writes:
>
> > Al, -><- close to getting PO'd enough to actually implement One
> > True Editor as ldisc - insmod vi.o and there we go...
>
<Political correctness>
> I think we ought to be celebrating the fact that we *have* more than one editor
> to choose from, instead of fighting over which is the One True Editor, an
> argument which is foolish on its face. My office mate uses Emacs, he loves
> it, and more power to him. I use vi. I'm just glad that I'm not forced to
> use Emacs, and he's not forced to use vi, and that's what this whole thing
> is all about, isn't it?
</Political correctness>
Everyone should simply be forced to use the One Editor until they like
it. Electric shock/aversion therapy could easily be used to ensure
the correct salivation or revulsion response depending on what editor
is running.
Afterall its not enough to just use the One Editor ourselves.
Everyone else should use it too, and they should be forced to enjoy
it.
Sean
P.S. I use both editors
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Peter Samuelson wrote:
>
> [Ed Carp <erc@pobox.com>]
> > That's *stupid*. What about all those cool
> > linux-router-in-a-box-boot-off-a-folppy sort of distributions? They
> > sure can't use Debian...
>
> Sure, they just have to recompile packages. Debian was never meant to
> be one-size-fits-all, and recompiling isn't all that hard.
>
> I actually ran into this problem once. I had an old Debian install on
> a laptop and it was nowhere near an Internet connection or a Debian CD,
> and the install was somewhat broken, and xlib was nowhere to be found,
> and I wanted to run Emacs. I ended up compiling a lib full of stubs
> and relying on Emacs not to try calling them. It worked.
>
> This approach could be taken by the router-on-a-floppy types. Debian
> already has a "svgalib-dummy" package similar to what I did above, so
> that you can run svgalib-capable packages like ghostscript without
> needing svgalib. I've often wondered what has prevented any Debian
> developers for doing the same with xlib.
Of course, virtually everything you need is either
a.) Non-xlib dependent (in fact, the only package that did depend on
xlib on my PS/2 56slc2 was mtools... NO, don't ask me why. It's a
long story based on idiocy.)
b.) Exists in a non-xlib version (that is, VIM, for instance.)
I ran Debian a looooooong time before installing xlib; in fact, the only
reason I installed it was because of mtools. And mtools could easily
be repackaged not to require xlib by removing one, non-core, program
from the package.
/David
_ _
// David Weinehall <tao@acc.umu.se> /> Northern lights wander \\
// Project MCA Linux hacker // Dance across the winter sky //
\> http://www.acc.umu.se/~tao/ </ Full colour fire </
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Sean Hunter wrote:
> Everyone should simply be forced to use the One Editor until they like
> it. Electric shock/aversion therapy could easily be used to ensure
> the correct salivation or revulsion response depending on what editor
> is running.
"Ed is the standard editor."
(I'm an "ex" troglodyte myself, but I could live with "ed" if I had to.)
--
Schlingt dreifach einen Kreis um dies! || John Cowan <jcowan@reutershealth.com>
Schliesst euer Aug vor heiliger Schau, || http://www.reutershealth.com
Denn er genoss vom Honig-Tau, || http://www.ccil.org/~cowan
Und trank die Milch vom Paradies. -- Coleridge (tr. Politzer)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
"Eric S. Raymond" <esr@thyrsus.com>:
> Alexander Viro <viro@math.psu.edu>:
> > > Even if this weren't true, we'd be trading dependencies and not adding
> > > one. The Perl stuff in the scripts directory will go away shortly
> > > (that is, assuming that Linus approves the CML1->CML2 change). This
> > > would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
> >
> > Yeah, but you don't have to use these Perl scripts to configure and build
> > a fresh tree - they are debugging/sanity checking tools. Heck, there is
> > some Tk stuff in the tree - it doesn't mean an absolute dependency on the
> > bloody mess...
>
> Still, the Python stuff can be frozen to straight C, eliminating the
> dependency. I'll test and supply the machinery for this as soon as I
> see an actual (as opposed to theoretical, it-would-be-nice-if)
> requirement. In the meantime, I have a Tk front end to write.
>
> (Ideally, I'd like to turf both Perl and Tk out of the kernel tree
> entirely. They're kludges, and they promote kludging. Python plus
> a GTK++ binding could make Tk unnecessary. Would GTK++ be a greater
> or lesser requirement than Tk?)
Equivalent. As long as the new configuration tool can itself be configured
to omit X and dependancies on X during the build, I don't see a problem.
Right now, I have a firewall/router/.... (multiple functions for the time
being) that I configure via SSH. Right now, the X libraries (none of them)
are available. X is not available. I may add libX, and libXaw so that I
can run an xterm over SSH. There won't be any development libraries beyond
the minimum for a kernel compile.
I could compile the kernel on my PPro, but that then assumes enough
separation from the PPro development and kernel distribution that the
resulting kernel is valid for the 486, and doesn't disturb the PPro. It
also means that I have to complete the kernel install (and modules) separately
when I take the distribution back to the 486. (I know, I know - the 486 system
could be build using a chroot environment... but what a pain.)
I just find it simpler to keep the 486 kernel configure/build on the 486; and
the PPro on the PPro.
As long as it will still work with a minimum development environment (no
TCL, TK, perl, or X). I still have to think whether I put lex/yacc on the 486,
I just don't remember...
-------------------------------------------------------------------------
Jesse I Pollard, II
Email: pollard@navo.hpc.mil
Any opinions expressed are solely my own.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Thus spake Eric Raymond (esr@snark.thyrsus.com):
> The 7049 lines of CML1 in the 2.3.99-pre9 kernel translate to a hair
> less than 2400 lines of CML2, a reduction by a factor of about three.
> The CML2 compiler and prototype interpreter are the same factor of
> three smaller than the nearly 10,000 lines of code in the CML1
> interpreters and tools. Where CML1 is a complex mixture of C, shell,
> Tcl/Tk, and Makefiles, CML2 is all be written in a single language
> (Python).
I'd rather have 10 layers of brittle shell, awk, sed and
self-manipulating Makefiles, and a little C or C++ than one layer of
Python.
I will not install python to be able to compile my kernel.
And bloating the kernel by several hundred K to link in some python byte
code interpreter is just as bad.
Rewrite it in portable C or forget it.
> 6. Internationalization
> CML2 query prompts and menu banners are separated from the symbol
> dependency declarations. Thus CML2 system definitions can be
> internationalized and localized.
Argh! More bloat and confusion!
Right now it is difficult enough to direct a naive user to some obscure
kernel option that I want him to set.
Experiences with SuSE have shown that internationalization makes bug
reports much more difficult and causes a great deal of confusion.
Felix
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> As long as it will still work with a minimum development environment (no
> TCL, TK, perl, or X). I still have to think whether I put lex/yacc on the 486,
> I just don't remember...
Python does dynamic binding with a lot of stuff. That means its relatively
easy to try and load gtk, fail, try and load tk, fail and go back to command
line
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> I will not install python to be able to compile my kernel.
> And bloating the kernel by several hundred K to link in some python byte
> code interpreter is just as bad.
What on earth are you smoking. Python is used to configure the kernel not
compiled into it.
> Right now it is difficult enough to direct a naive user to some obscure
> kernel option that I want him to set.
You give the CONFIG_ name. That is constant across the various string sets
> Experiences with SuSE have shown that internationalization makes bug
> reports much more difficult and causes a great deal of confusion.
And had SuSE stuck to German only nobody would have heard of them. You can't
expect everyone to be happy in English. Deal with it. Make sure the CONFIG_
names are constant across translation and visible and the rest can be dealt
with.
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Felix von Leitner <felix@convergence.de>:
> And bloating the kernel by several hundred K to link in some python byte
> code interpreter is just as bad.
Get a grip, Felix. Nobody has proposed linking Python into the kernel.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
"Experience should teach us to be most on our guard to protect liberty
when the government's purposes are beneficient... The greatest dangers
to liberty lurk in insidious encroachment by men of zeal, well meaning
but without understanding."
-- Supreme Court Justice Louis Brandeis
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alan Cox <alan@lxorguk.ukuu.org.uk>:
> > As long as it will still work with a minimum development environment (no
> > TCL, TK, perl, or X). I still have to think whether I put lex/yacc on the 486,
> > I just don't remember...
>
> Python does dynamic binding with a lot of stuff. That means its relatively
> easy to try and load gtk, fail, try and load tk, fail and go back to command
> line
Easy and working, as the 0.1.2 beta of CML2 demonstrates.
It's possible to do this in other scripting languages, but only just --
you'd have to go through strange contortions with dynamically-generated
import statements.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
The direct use of physical force is so poor a solution to the problem of
limited resources that it is commonly employed only by small children and
great nations.
-- David Friedman
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> > I will not install python to be able to compile my kernel.
> > And bloating the kernel by several hundred K to link in some python byte
> > code interpreter is just as bad.
> What on earth are you smoking. Python is used to configure the kernel not
> compiled into it.
I was talking about the kernel source tree.
> > Right now it is difficult enough to direct a naive user to some obscure
> > kernel option that I want him to set.
> You give the CONFIG_ name. That is constant across the various string sets
Have you ever tried to direct an NT admin over the phone how to compile
a kernel? It is difficult enough without having to tell him how to use
vi.
> > Experiences with SuSE have shown that internationalization makes bug
> > reports much more difficult and causes a great deal of confusion.
> And had SuSE stuck to German only nobody would have heard of them. You can't
> expect everyone to be happy in English. Deal with it. Make sure the CONFIG_
> names are constant across translation and visible and the rest can be dealt
> with.
Well, they aren't visible.
Felix
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> - -----------------------------------------------------------------------------
> There is what appears to be an error in the M68K configuration sequence.
> Inside a PARPORT guard, the question 'Q40 Parallel port' sets PARPORT again.
> I created a PARPORT_Q40 symbol and set it from this question.
ooops, that question somehow survived a merge. PARPORT_Q40 is unneeded,
PARPORT + PARPORT_PC is sufficient for Q40 hardware.
I agree that the old stuff needs a cleanup :)
Bye
Richard
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Jeff Garzik <jgarzik@mandrakesoft.com> writes:
> IMNSHO this attitude is wrong. If building the kernel is tough for
> newbies, make a userland utility with all these policy questions and
> features. We are talking about an interface on the KERNEL DEVELOPER
> side of the line.
Kernel configuration is a userland.
I think users should be able to configure the kernel using the same
environment as developers. I think any "user" config utils exist only
because make menuconfig might be a little too hard for beginners.
Of course, there is still expert mode.
> > This just can't be done with the existing kbuild system. The existing
> > config-language programs are hard to read and modify,
>
> huh? compared to what ? It is simple to read, simple to modify. The
> major nasty issue right now is dependencies not readability.
If you just mean Config.in files, then yes - they are quite simple.
Combined with Makefiles - I think it could be simpler.
> > There are a couple of preparation steps that can fruitfully begin now
> > and should happen before 2.4 in order to minimize backporting hassles
> > later.
>
> All this can be done post 2.4. Let's break _less_ not more
> configurations now.
I take it that steps don't break anything now.
> * It would be nice to be drop to add a new kernel module to the build
> without patching a single file. For example, instead of adding
> drivers/char/foo.c and patching drivers/char/{Config.in,Makefile}, the
> patch to Linus would simply add drivers/char/foo.c and
> drivers/char/foo.module. foo.module would contain configuration and
> build information normally found in Config.in and Makefile. Doing this
> implies some sort of collection step occurring, before the configuration
> and before the build.
I don't like this idea - number of files in drivers directory would
be doubled.
It may be better to include this info, say, near beginning or end
of file.c, like with Emacs formatting info.
Or continue to use one file per directory.
--
Krzysztof Halasa
Network Administrator
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
"Eric S. Raymond" wrote:
>
> James Sutherland <jas88@cam.ac.uk>:
> > > Even if this weren't true, we'd be trading dependencies and not adding
> > > one. The Perl stuff in the scripts directory will go away shortly
> > > (that is, assuming that Linus approves the CML1->CML2 change). This
> > > would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
> >
> > perlcc?
>
> Is, I'm told, a kluge much like the freeze tool. You can compile away
> control structure but you end up carrying around most of Perl as
> runtime support.
It statically links in libperl.a and behaves similar to writing a C
program that desires to use Perl's features. The down side is that if
you rely on Perl modules, you need to include them with the binary as
they are not compiled in. And why would you want to compile it away
anyways? I can't even think of a Linux distribution that doesn't include
it, and many require it.
But I have to ask, what's wrong with Perl for this? It's a well known,
fast, and flexible tool that allows rapid development and change. Seems
quite appropriate for this sort of effort.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, 24 May 2000, Ed Carp wrote:
>George (greerga@nidhogg.ham.muohio.edu) writes:
>
>> >I've got an old 486/50 laptop that's got a couple of PCMCIA network cards in
>> >it, doing routing/NAT stuff between my home LAN and an ADSL line, and it works
>> >perfectly. It all boots off of floppies, and I'm working on getting it to
>> >boot off of one. It would be impossible if all my stuff were linked against
>> >xlib.
>>
>> Do you build kernels on your router?
>>
>> If not, then your point is moot.
>
>That statement is insane. Whether or not I build kernels on my router has
>absolutely nothing to do with the issue. And if you can't see the point,
>what are you doing here?
Since when do you link your kernel with Xlib?
The point is, you don't need Python to boot the kernel. Only the kernel
build configuration system would link with Xlib, optionally most likely.
Since you wouldn't compile kernels on your disk-booted router, you would
not need the kernel build stuff. Thusly, you would not need Python or
Xlib on the router floppy.
Hence, my point stands.
I don't see the huge argument against Python. Can people really not afford
6 MB of disk space for Python when the kernel compile itself can top 90 MB
for even non-kitchen-sink compilations?
Edit .config yourself with emacs/vi if you're that anal about 6 MB.
-George Greer
(Must we be so rude?)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
John Cavan <john.cavan@sympatico.ca>:
> But I have to ask, what's wrong with Perl for this? It's a well known,
> fast, and flexible tool that allows rapid development and change. Seems
> quite appropriate for this sort of effort.
Start with the absence of object serialization in Perl. Python's
pickle/unpickle was critical to the design.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Every Communist must grasp the truth, 'Political power grows out of
the barrel of a gun.'
-- Mao Tse-tung, 1938, inadvertently endorsing the Second Amendment.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Thu, May 25, 2000 at 11:34:53PM -0400, Eric S. Raymond wrote:
> John Cavan <john.cavan@sympatico.ca>:
> > But I have to ask, what's wrong with Perl for this? It's a well known,
> > fast, and flexible tool that allows rapid development and change. Seems
> > quite appropriate for this sort of effort.
>
> Start with the absence of object serialization in Perl. Python's
> pickle/unpickle was critical to the design.
Let's keep the language wars off the kernel list, please?
Sean
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Thu, 25 May 2000, John Cavan wrote:
> "Eric S. Raymond" wrote:
> >
> > James Sutherland <jas88@cam.ac.uk>:
> > > > Even if this weren't true, we'd be trading dependencies and not adding
> > > > one. The Perl stuff in the scripts directory will go away shortly
> > > > (that is, assuming that Linus approves the CML1->CML2 change). This
> > > > would be a net gain in kernel autonomy, as Perl *can't* be compiled away.
> > >
> > > perlcc?
> >
> > Is, I'm told, a kluge much like the freeze tool. You can compile away
> > control structure but you end up carrying around most of Perl as
> > runtime support.
>
> It statically links in libperl.a and behaves similar to writing a C
> program that desires to use Perl's features. The down side is that if
> you rely on Perl modules, you need to include them with the binary as
> they are not compiled in. And why would you want to compile it away
> anyways? I can't even think of a Linux distribution that doesn't include
> it, and many require it.
>
> But I have to ask, what's wrong with Perl for this? It's a well known,
> fast, and flexible tool that allows rapid development and change. Seems
> quite appropriate for this sort of effort.
I agree that Perl is fine. However, someone was suggesting getting rid of
the Perl scripts, apparently on the basis that Python can be "compiled"
with freeze; I pointed out that Perl can do the same.
Basically, I don't think trying to support compiling the kernel on a PC XT
using only MASM is a good idea - if you want to develop software, you need
some software tools.
James.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Sorry, but why don't you simply use mconfig?
cml1 is much more intuitive than your cml2 with
its ugly functional-programming-like syntax and
braind-damaged separation of the cml-files.
You add yet another tool (python) to the requirements for a linux
kernel build. That's bad. Plain C is much better.
But your cml2 has also it's good sides:
- one parser with different frontends, same as mconfig.
- only one cml-tree, but this could be done with cml1 too.
(I'll write a simple patch for this today)
This wekk I started some hacking on mconfig, my version
(http://www.rks.harz.ni.schule.de/~c0hellwi/mconfig-0.18-C1.diff)
contains follwing new features:
- implements dep_mbool
- adds some new keys for the menu interface
- adds an line-oriented interface (not yet ready)
- removes the "operator '!' not compatible with old interpreters" warning,
because now every interpreters understands it.
WARNING: the mode-line code is not finished, some parts
don't work and some are not implemented ...
you need the following patch for 2.4.0-test1 to let mconfig parse the cml1
tree: http://www.rks.harz.ni.schule.de/~c0hellwi/mconfig-0.18-C1.diff
Christoph
--
Always remember that you are unique. Just like everyone else.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Thu, 25 May 2000, Eric S. Raymond wrote:
> John Cavan <john.cavan@sympatico.ca>:
> > But I have to ask, what's wrong with Perl for this? It's a well known,
> > fast, and flexible tool that allows rapid development and change. Seems
> > quite appropriate for this sort of effort.
>
> Start with the absence of object serialization in Perl. Python's
> pickle/unpickle was critical to the design.
Hey, let's not have the language war. Perl can do object serialization
with Data Dumper and several others. You have exactly the same access to
the symbol tables in both languages and walking them is trivial. The two
languages are widely recognized to be roughly equivalent in terms of ease
of development.
Eric, it might be useful for you to try freezing your current code and
tell us if the result a) works b) isn't too ungainly.
--
"Love the dolphins," she advised him. "Write by W.A.S.T.E.."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Pick up the current edition of Linux Journal and read the Python
supplement. Young ESR is in there explaining why Perl blows g0ats.
d
On Fri, 26 May 2000, Oliver Xymoron wrote:
> On Thu, 25 May 2000, Eric S. Raymond wrote:
>
> > John Cavan <john.cavan@sympatico.ca>:
> > > But I have to ask, what's wrong with Perl for this? It's a well known,
> > > fast, and flexible tool that allows rapid development and change. Seems
> > > quite appropriate for this sort of effort.
> >
> > Start with the absence of object serialization in Perl. Python's
> > pickle/unpickle was critical to the design.
>
> Hey, let's not have the language war. Perl can do object serialization
> with Data Dumper and several others. You have exactly the same access to
> the symbol tables in both languages and walking them is trivial. The two
> languages are widely recognized to be roughly equivalent in terms of ease
> of development.
>
> Eric, it might be useful for you to try freezing your current code and
> tell us if the result a) works b) isn't too ungainly.
>
> --
> "Love the dolphins," she advised him. "Write by W.A.S.T.E.."
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> Pick up the current edition of Linux Journal and read the Python
> supplement. Young ESR is in there explaining why Perl blows g0ats.
Can people talk the perl v python thread to the usual places that is
comp.lang.perl cross posted to comp.lang.python, alt.flame, alt.test and
probably alt.syntax.tactical
We don't want it any more than they do 8)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Daniel Stone (tamriel@ductape.net) writes:
> Pick up the current edition of Linux Journal and read the Python
> supplement. Young ESR is in there explaining why Perl blows g0ats.
It's no longer the current edition - it's the May edition. June is already
out.
--
Ed Carp, N7EKG erc@pobox.com 940/367-2744 cell phone
http://www.pobox.com/~erc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
In article <E12vJW9-0001Mx-00@the-village.bc.nu>,
Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>> Pick up the current edition of Linux Journal and read the Python
>> supplement. Young ESR is in there explaining why Perl blows g0ats.
>
>Can people talk the perl v python thread to the usual places that is
>comp.lang.perl cross posted to comp.lang.python, alt.flame, alt.test and
>probably alt.syntax.tactical
Getting into a language war will almost guarantee that CML2 will never be
adopted.
--
__O
Fireplug - a Lineo company _-\<,_
PGP Fingerprint: 28 E2 A0 15 99 62 9A 00 (_)/ (_) 88 EC A3 EE 2D 1C 15 68
Stuart Lynne <sl@fireplug.net> www.fireplug.net 604-461-7532
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Wed, May 24, 2000 at 06:31:44PM -0400, Eric S. Raymond wrote:
> > > I can in fact generate C programs to compile and interpret CML -- by
> > > applying freeze.py to the Python sources.
> > OK - are you saying that Python will generate C sources?
> Yes, that is exactly what I am saying. There is a Python tool called "freeze"
> that takes a Python program and generates equivalent C sources.
How does that cope with stuff like _tkinter which needs to link with an
external library? Stock Python dlopens a "_tkinter.so", which is linked
against the Tk libraries; is there some kind of hack which allows the frozen
Python program to attempt to dlopen the Tk libraries at runtime?
--
Adam Sampson
azz@gnu.org
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Adam Sampson <azz@gnu.org>:
> How does that cope with stuff like _tkinter which needs to link with an
> external library? Stock Python dlopens a "_tkinter.so", which is linked
> against the Tk libraries; is there some kind of hack which allows the frozen
> Python program to attempt to dlopen the Tk libraries at runtime?
I don't know. I'll have to experiment and see.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
"Among the many misdeeds of the British rule in India, history will look
upon the act of depriving a whole nation of arms, as the blackest."
-- Mohandas Gandhi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
bash-2.03$ python
Python 1.5.2 [GCC 2.95.2 19991024 (release)] on openbsd2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>>print "lex and yacc were invented for a reason."
lex and yacc were invented for a reason.
>>>^D
bash-2.03$
--sig--
It isn't true unless it makes you laugh, but you don't
really understand it till it makes you cry.
On Wed, 24 May 2000, Alex Buell wrote:
> On Wed, 24 May 2000, Eric S. Raymond wrote:
>
> > Even if this weren't true, we'd be trading dependencies and not adding
> > one. The Perl stuff in the scripts directory will go away shortly
> > (that is, assuming that Linus approves the CML1->CML2 change). This
> > would be a net gain in kernel autonomy, as Perl *can't* be compiled
> > away.
>
> I'm not entirely convinced that it is desirable to have to install yet
> another scripting language just to run CML2.
>
> Why not write a C program to interpret CML2? - I assume that if you have
> the kernel sources, you already have a C compiler around. That at least,
> is the minimum one should aim for.
>
> Cheers,
> Alex
> --
> The quality of your life will be determined by
> the quality of the people in your life.
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/
>
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
iQCVAwUBOS8Tn8K9HT/YfGeBAQFkmQP/QnXRsyNlvVwNIPRrEfqy6/zb0GBGp3s/
fsPyMyIEEFlgh+d2N93uKGx1SoZvxMfqp5hqrvg6+79TabXvGpu71xUu4OMe05+L
rx8el2lkbuYIkez93sAnxxEizOC0g2ARh+k54nNaCLgCd1IxH4fPEb5E3YIF4zRl
OV2mApciru4=
=ETDM
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
I agree; why CAN'T we configure the linux kernel more like we do the
BSD ones? Their code and schema is very elegant and simple. And
the source shouldn't be too hard to port over. David Parsons? Oh
thats right, Linus ignores his patches. Oh well.
--sig--
It isn't true unless it makes you laugh, but you don't
really understand it till it makes you cry.
On Wed, 24 May 2000, Dominik Kubla wrote:
> I really don't like the added complexity. IMHO we should ditch our current
> config scheme in favour of the BSD tools if at all: They are written in
> C, they are simple to use and they have a proven track record. What more
> is there to ask?
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
iQCVAwUBOS8XoMK9HT/YfGeBAQE9IQP/QhVL5NSrDp+8AYtGAFROsp+A/pm1fSDa
pF03tUeffM+iudtUv3Z2rzalXqT6QyPUWgO6HKzsuED/5wfeSzfrUBWXW3O1STQd
2x9XiglqA+6oHIG5jGuIOMWisuYrUMLWVtcb1x4Ar88z/AzK7zW//KnNXg8UzPiy
3ZE+QwtiiDQ=
=ruRy
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> I agree; why CAN'T we configure the linux kernel more like we do the
> BSD ones? Their code and schema is very elegant and simple. And
The BSD setup is not end user friendly. There is actually only one fundamental
end user problem with our current setup. When a user says 'I want XYZ' it
should turn on everything needed to get XYZ.
If I hit my capture card option it should turn on i2c, video4linux,procfs, etc
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Jonathan Walther <krooger@debian.org>:
> bash-2.03$ python
> Python 1.5.2 [GCC 2.95.2 19991024 (release)] on openbsd2
> Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
> >>>print "lex and yacc were invented for a reason."
> lex and yacc were invented for a reason.
> >>>^D
> bash-2.03$
Yes, yacc and lex were invented for a reason. Happens I'm quite
familiar with that reason and more than averagely skilled at using
both of them, as you can verify by looking at any of the following
projects of mine: keybind, intercal, cupl, pilot, or fetchmail.
Now, if you actually look at these, you might decide that I'm really
an incompetent fuckup. But if that's the case, then we don't have
much of a conversation -- I'm going to do a poor job whether I
use yacc/lex or Python or anything else.
So, just for the sake of conversation, let's assume that I knew what I
was doing on those five yacc/lex projects (and half a dozen other ones
that haven't been published for this or that reason). You don't have
to consider me a tremendously bright spark to believe that after doing
eleven or so projects with these tools over a period of about fifteen
years I have a pretty fair idea what they're good for.
When I wrote my first yacc/lex application, Bison and flex didn't
*exist* yet. If you're among the younger members of this list, it is
quite possible that you were still in potty-training at the time.
It is also a matter of record that in 1991, nine years ago, I was already
sufficiently intimate with yacc and lex to write the INTERCAL compiler
over a weekend. You are of course free to assume that I've succumbed to
galloping senility rather than actually learning more since then. But
would you consider that conjecture a safe bet?
Assuming that all that experience actually means something leads us to
the next question -- since I know these tools so well, why didn't I
use them for this project?
Could it be that they might have *gasp* limitations? Could it be that
yacc and lex are not the optimal answer to every parsing problem in
the known universe? Might we entertain the possibility, however
remote and unlikely it might seem, that I have one or two clues and
have actually employed same?
I respectfully suggest you meditate on the phrase "teaching your
grandmother to suck eggs" until you achieve enlightenment.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Love your country, but never trust its government.
-- Robert A. Heinlein.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Sat, 27 May 2000, Alan Cox wrote:
> > I agree; why CAN'T we configure the linux kernel more like we do the
> > BSD ones? Their code and schema is very elegant and simple. And
>
> The BSD setup is not end user friendly. There is actually only one
> fundamental end user problem with our current setup. When a user says
> 'I want XYZ' it should turn on everything needed to get XYZ.
Of course, informing the user that it does so and *WHY* would be a good
idea too. Somewhat like dselect but without all the bugs and hassles
(dselect has a lot of them, hence I use apt-get instead.)
> If I hit my capture card option it should turn on i2c,
> video4linux,procfs, etc
Yup. Agreed... Then again, a thing I'd appreciate is something like
multiple configure universa. Thus, I could either choose a bus-view
(and be present by a hierarchy based on hardware) or a driver-type
(sorted on functionality) or a flat-view (alphabetical, for
instance) or... The possibilities are vast, but the complexities would
probably be overwhelming. I'd gladly be proven wrong here, though.
/David Weinehall
_ _
// David Weinehall <tao@acc.umu.se> /> Northern lights wander \\
// Project MCA Linux hacker // Dance across the winter sky //
\> http://www.acc.umu.se/~tao/ </ Full colour fire </
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alan Cox <alan@lxorguk.ukuu.org.uk>:
> The BSD setup is not end user friendly. There is actually only one
> fundamental end user problem with our current setup. When a user says
> 'I want XYZ' it should turn on everything needed to get XYZ.
>
> If I hit my capture card option it should turn on i2c, video4linux,procfs,
> etc
CML2 is aimed at this. It will never be perfect -- perfection would require
a full theorem prover -- but it's already good enough to handle normal
ancestry relationships.
One of the purposes of making the CML2 language declarative rather than
imperative is to make all the dependencies explicit, rather than implied
by control structure as in CML1. Because that's so, over time it will
be possible to improve the deductive algoritms in the front end without
having to endure another replacement of the language.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
A human being should be able to change a diaper, plan an invasion,
butcher a hog, conn a ship, design a building, write a sonnet, balance
accounts, build a wall, set a bone, comfort the dying, take orders, give
orders, cooperate, act alone, solve equations, analyze a new problem,
pitch manure, program a computer, cook a tasty meal, fight efficiently,
die gallantly. Specialization is for insects.
-- Robert A. Heinlein Time Enough for Love
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Fri, 26 May 2000, Eric S. Raymond wrote:
> One of the purposes of making the CML2 language declarative rather than
> imperative is to make all the dependencies explicit, rather than implied
> by control structure as in CML1. Because that's so, over time it will
> be possible to improve the deductive algoritms in the front end without
> having to endure another replacement of the language.
Sigh... I suspect that it's the real reason why your approach doesn't make
sense to me - you are developing complex stuff that works for FUBAR domain
instead of getting the domain fixed.
Try to grep the tree for CONFIG_FOO - you'll see that most of the places
that care are in Makefiles. 99% of the rest is not needed - check the
history of fs/filesystems.c for example.
IOW, instead of developing clever ways to handle complex dependencies
we'ld be better off simplifying them and leaving the rest to make(1)...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
David Weinehall <tao@acc.umu.se>:
> On Sat, 27 May 2000, Alan Cox wrote:
>
> > > I agree; why CAN'T we configure the linux kernel more like we do the
> > > BSD ones? Their code and schema is very elegant and simple. And
> >
> > The BSD setup is not end user friendly. There is actually only one
> > fundamental end user problem with our current setup. When a user says
> > 'I want XYZ' it should turn on everything needed to get XYZ.
>
> Of course, informing the user that it does so and *WHY* would be a good
> idea too. Somewhat like dselect but without all the bugs and hassles
> (dselect has a lot of them, hence I use apt-get instead.)
The tty mode of CML2 gives you this kind of feedback when you hit a
constraint violation. I'm working on making the feedback more informative.
Again, this is the sort of thing that requires an atemporal, declarative
view of the world rather than a temporal, imperative one. Which is why
the change to the CML2 language is really important -- it makes doing
dselect-like things possible.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
We shall not cease from exploration, and the end of all our exploring will be
to arrive where we started and know the place for the first time.
-- T.S. Elliot
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Hi. I am (obviously ;) not a big kernel developer (although I aspire
someday) but I've saved up a few thoughts on this thread over the last few
days. For what it's worth:
> Alan Cox <alan@lxorguk.ukuu.org.uk>:
> > If I hit my capture card option it should turn on i2c, video4linux,procfs,
> > etc
I really like this (as an option) but one addendum I would like to see is
having it mark all of the dependencies it turns on somehow so that you can
see they are turned on because of something else you turned on rather than
by default.
++complexity;
On Fri, 26 May 2000, Eric S. Raymond wrote:
> CML2 is aimed at this. It will never be perfect -- perfection would require
> a full theorem prover -- but it's already good enough to handle normal
> ancestry relationships.
I'd also like to chime in on the side of remembering that even if we hate
ESR's implementation of CML2, we might want to keep the language spec and
implement our own. So let's encourage him to keep on developing it so we
can steal the good parts, rather than just flamewarring over C vs. python
vs. perl vs. flamewars vs. ... :)
-Jacob
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> CML2 is aimed at this. It will never be perfect -- perfection would require
> a full theorem prover -- but it's already good enough to handle normal
> ancestry relationships.
Our relationships are heirarchical so you can build a dependancy graph and
then recursively backtrack to find the dependancies.
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alexander Viro <viro@math.psu.edu>:
> > One of the purposes of making the CML2 language declarative rather than
> > imperative is to make all the dependencies explicit, rather than implied
> > by control structure as in CML1. Because that's so, over time it will
> > be possible to improve the deductive algoritms in the front end without
> > having to endure another replacement of the language.
>
> Sigh... I suspect that it's the real reason why your approach doesn't make
> sense to me - you are developing complex stuff that works for FUBAR domain
> instead of getting the domain fixed.
One war at a time, Alex. If we try to replace the whole Makefile system
at the same time that we clean up the Augean stable that is CML1 it will
create havoc.

> Try to grep the tree for CONFIG_FOO - you'll see that most of the places
> that care are in Makefiles. 99% of the rest is not needed - check the
> history of fs/filesystems.c for example.
You may be right. But CML2 is simpler than what it's replacing by a
large (and readily measurable) factor, so it's a net win to make that
change anyway. *Then* we can go clean up the rest of the build
system.
> IOW, instead of developing clever ways to handle complex dependencies
> we'ld be better off simplifying them and leaving the rest to make(1)...
If that were possible, I have little doubt it would have been done already.
But I tell you what. After phase II, when we fix the rest of the build
system, I promise to seriously re-examine the question of whether CML2
is really needed. If it isn't, we'll throw it away.
I mean that. There are other uses for CML2 -- VA wants me to make it
into a product configurator, among other things -- so the work won't
have been wasted even if we throw away the kernel rulebase.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
False is the idea of utility that sacrifices a thousand real advantages for
one imaginary or trifling inconvenience; that would take fire from men because
it burns, and water because one may drown in it; that has no remedy for evils
except destruction. The laws that forbid the carrying of arms are laws of
such a nature. They disarm only those who are neither inclined nor determined
to commit crimes.
-- Cesare Beccaria, as quoted by Thomas Jefferson's Commonplace book
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> Yeah, but it's a DAG rather than a tree. There are other things that
> complexify it, too. Like the difference between "suppress dependant"
The backtracking is the same for the DAG except you need to remember
'already visited' nodes so that you don't look finding the solution path.
If you already visited a node then its dependancies are either resolved
or you are resolving them now and they are resolved if you can resolve
without rewalking the path.
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Fri, 26 May 2000, Eric S. Raymond wrote:
> > Sigh... I suspect that it's the real reason why your approach doesn't make
> > sense to me - you are developing complex stuff that works for FUBAR domain
> > instead of getting the domain fixed.
>
> One war at a time, Alex. If we try to replace the whole Makefile system
> at the same time that we clean up the Augean stable that is CML1 it will
> create havoc.
You are missing the real Augean stable - output of
% find /usr/src/linux -type f|xargs grep -n '#ifdef' /dev/null
- that's where the real dung is, problems with configuration complexity
are direct results of it...
> > Try to grep the tree for CONFIG_FOO - you'll see that most of the places
> > that care are in Makefiles. 99% of the rest is not needed - check the
> > history of fs/filesystems.c for example.
>
> You may be right. But CML2 is simpler than what it's replacing by a
> large (and readily measurable) factor, so it's a net win to make that
> change anyway. *Then* we can go clean up the rest of the build
> system.
Oh, that's fine - the fact that new variant is more compact and readable
is a Good Thing(tm), no arguments here.
> > IOW, instead of developing clever ways to handle complex dependencies
> > we'ld be better off simplifying them and leaving the rest to make(1)...
>
> If that were possible, I have little doubt it would have been done already.
It _is_ beeing done. Been there, done some parts of that. Seriously, one
of the goals to keep in mind is <strong> the less #ifdef's the better
</strong>. For a lot of obvious reasons, not the last of them being that
if the majority of config options will affect only the choice of object
files to be linked we will have a chance to get automated testing of the
whole thing - at least on the "does it compile?" level.
BTW, I'ld really recommend to run the search - you'll see the heaploads of
crap and there used to be more of that stuff. Some pieces resemble typical
GNU code - #ifdef on every third line...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alan Cox <alan@lxorguk.ukuu.org.uk>:
> > CML2 is aimed at this. It will never be perfect -- perfection would require
> > a full theorem prover -- but it's already good enough to handle normal
> > ancestry relationships.
>
> Our relationships are heirarchical so you can build a dependancy graph and
> then recursively backtrack to find the dependancies.
Yeah, but it's a DAG rather than a tree. There are other things that
complexify it, too. Like the difference between "suppress dependant"
and "suppress" -- sometimes ancestor symbols affect the valid range
of a symbol, sometimes they don't.
Consider the case where you fail a contraint while backtracking. It's
not obvious what the right policy is -- I've identified at least four
possibilities and I can think of circumstances where each one is right
and the other three wrong.
I certainly don't have all the answers. But I'm trying to get us to
a place where we can explore the questions without tripping over our
own damn feet.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
"The bearing of arms is the essential medium through which the
individual asserts both his social power and his participation in
politics as a responsible moral being..."
-- J.G.A. Pocock, describing the beliefs of the founders of the U.S.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
In article <linux.kernel.Pine.LNX.3.96.1000526173056.28897B-100000@localhost>,
Jonathan Walther <krooger@debian.org> wrote:
>-----BEGIN PGP SIGNED MESSAGE-----
>
>I agree; why CAN'T we configure the linux kernel more like we do the
>BSD ones? Their code and schema is very elegant and simple. And
>the source shouldn't be too hard to port over. David Parsons? Oh
>thats right, Linus ignores his patches. Oh well.
Well, the latest version of the memory detection code kills a couple
of machines, so it's probably just as well that it isn't in the
mainline kernel but instead crashing a couple of obsolete or
hideously expensive motherboards that I can't find or don't wish to
raid the LART-farm account for.
In any case, there *is* a BSD-style configurator for Linux, though
it hasn't been maintained since 1.2.x -- Scott Telford wrote one for
Linux years ago, and it died when he bailed on Linux in favor of the
*BSDs. It plus mconfig (which is written in C, which wins bigtime
because it's not extra programs that I have to lug around to make a
Mastodon system self-compilable) would make an almost perfect pair,
even if the underlying data structures are a little bit grotty.
The whoops-time-to-fork-the-linux-kernel showstopper for me is that
the reference implementation of this new configuration language is
written in Python, and, given the fluidity of linux kernel
development and the impossibility of getting patches to Linus unless
you're a member of the Core Team, this would probably mean that the
Python implementation would be the only implementation that would
ever work.
____
david parsons \bi/ I can see using perl or python to parse a real BSD
\/ config file (though I'm trying to do it in C), but
the Linux kernel configuration arrangement is fairly
simple and, thanks to MEC, fairly clean.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alexander Viro <viro@math.psu.edu>:
> You are missing the real Augean stable - output of
> % find /usr/src/linux -type f|xargs grep -n '#ifdef' /dev/null
> - that's where the real dung is, problems with configuration complexity
> are direct results of it...
Ghods. You're right, that is pretty nasty. The *next* war...
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
The day will come when the mystical generation of Jesus by the Supreme
Being as his father, in the womb of a virgin, will be classed with the
fable of the generation of Minerva in the brain of Jupiter.
-- Thomas Jefferson, 1823
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Sat, 27 May 2000, Eric S. Raymond wrote:
> Alexander Viro <viro@math.psu.edu>:
> > You are missing the real Augean stable - output of
> > % find /usr/src/linux -type f|xargs grep -n '#ifdef' /dev/null
> > - that's where the real dung is, problems with configuration complexity
> > are direct results of it...
>
> Ghods. You're right, that is pretty nasty. The *next* war...
Feel free to join... Another source of fun: take a random file
from inlude/*/, pick a random prototype defined there, grep the tree for
said beast. Estimate the probability of finding the function in question
a) called by somebody
b) defined somewhere
c) (a) && !(b)
Admittedly, P(c) is pretty low, but non-zero. P(!b) is _far_ from zero.
Now, for _real_ fun grep for LINUX_VERSION_CODE. Pay attention to
advansys.c - there are some real pearls (most of their, erm, analogs in
other SCSI drivers had been flushed in October, hell knows how did these
ones crawl back).
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alexander Viro wrote:
> Admittedly, P(c) is pretty low, but non-zero. P(!b) is _far_ from zero.
> Now, for _real_ fun grep for LINUX_VERSION_CODE. Pay attention to
> advansys.c - there are some real pearls (most of their, erm, analogs in
> other SCSI drivers had been flushed in October, hell knows how did these
> ones crawl back).
I sent in a patch to Linus once to clean that that trash up but it was
only partially applied. Advansys.c was the part that wasn't applied. I
can shave off almost 100k from it by dropping stuff for earlier that
2.2.x.
--
Brian Gerst
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alan Cox wrote:
> > I agree; why CAN'T we configure the linux kernel more like we do the
> > BSD ones? Their code and schema is very elegant and simple. And

> The BSD setup is not end user friendly. There is actually only one
> fundamental end user problem with our current setup. When a user
> says 'I want XYZ' it should turn on everything needed to get XYZ.

> If I hit my capture card option it should turn on i2c,
> video4linux,procfs, etc
Which either means that the user doesn't ever see the option to turn
on i2c, video4linux, procfs, and that behind the scenes those files
are compiled and linked appropriately.
Or, the options automatically turn on once you hit the capture card
option.
Roger.
--
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2137555 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
* Common sense is the collection of *
****** prejudices acquired by age eighteen. -- Albert Einstein ********
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Sat, May 27, 2000 at 01:34:21AM +0100, Alan Cox wrote:
> The BSD setup is not end user friendly. There is actually only one fundamental
> end user problem with our current setup. When a user says 'I want XYZ' it
> should turn on everything needed to get XYZ.
What exactly do you call user friendly? I've not built a BSD
kernel, so I can't speak to them. But I'm waiting for a usable,
user-friendly linux kernel system.
I've tried menuconfig, xconfig, and the like. Last I looked,
you had to specifically hunt for what you needed, and it was far from
intuitive what subheadings they lived in. Not to mention the obscure,
interesting, or fun options you can come across.
I went back to "make config" and have happily stayed there. I
never miss an option I never knew I needed, and make oldconfig takes the
pain out of tweaking.
I'm waiting for a user friendly front end for that. It'll
probably be something like debconf, I guess. Or a windows wizard.
If Eric's new system allows me to configure in this way (or in
some way that doesn't hide my possible pratfalls and makes me aware of
what is available), and it makes dropping in a new module, driver, or
plain config choice that much easier, I'm all for it.
Who cares what language he does it in? I don't much like Python
from a programming standpoint (personal prejudice against '\'
continuation lines and what I can do with my whitespace for
readability), but it gets the job done as well as Perl or Pike or
whatnot. A single language for this is better than 7 or so. I have
Python on all my boxes. If you don't like it, reimplement his reference
implementation in C, as has been suggested.
Do not evaulate his proprosal based on his implementation.
Evaluate it on what it can do for the kernel. If we were frozen to one
implementation, we'd be using mbufs.
Joel
--
Life's Little Instruction Book #222
"Think twice before burdening a friend with a secret."
jlbec@evilplan.org
http://zenII.uk.linux.org/~jlbec/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> I've tried menuconfig, xconfig, and the like. Last I looked,
> you had to specifically hunt for what you needed, and it was far from
> intuitive what subheadings they lived in. Not to mention the obscure,
> interesting, or fun options you can come across.
I don't want to seem that kind of guys that likes to push software in
computers
with numeric keypad linked into serial port, but why we need more friendly
then menuconfig or xconfig ?
Not all users need to rebuild the kernel, and if users feels afraid by
*config probably they fall
forgetting some essential driver or feature that makes its machine not
properly working or
even locked down.
Most distro comes with practically all modules precompiled so that adding a
new driver is as easy as editing
a boot file.
Now if such building tool is published as an external ( read very optional )
package that can or can not be installed by means of individuals choice,
it's ok.
The thought to include it into the kernel make me feel a bit depressed.
Davide
--
Feel free, feel Debian !
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
I was thinking more along the lines of the fact I can whip up
a kernel config file with vi; start with some GENERIC and LINT
files, and let us at 'em. I don't object to menuconfig; I'd
just like a bsdconfig. It wouldn't be that much harder to output
a file along the lines of the bsd style than the current
CONFIG_XXX=blah crap is it? So I use menuconfig to get close to
what I want, then use vi and go in and tweak to my hearts content.
--sig--
It isn't true unless it makes you laugh, but you don't
really understand it till it makes you cry.
On Sat, 27 May 2000, Alan Cox wrote:
> The BSD setup is not end user friendly. There is actually only one fundamental
> end user problem with our current setup. When a user says 'I want XYZ' it
> should turn on everything needed to get XYZ.
>
> If I hit my capture card option it should turn on i2c, video4linux,procfs, etc
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
iQCVAwUBOS/AXsK9HT/YfGeBAQH1SwP/eAMsqLW9QUGrnumgqSvrLnvoWe4bQ+Kr
IT7SYZcgIvK7SbMLCDA90hYIEQUYy+pcwXSLPNoD/eIgFLn45aMMeYGLT1WchP1r
HHXYtXIpnTToVl9IOh9jIVPaBsJBcxM1Pps6psuNXAUSEOQOi5KvDIMUQXx4KcON
4kdGWxDM1Nc=
=KxfO
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Hi Rogier.
>>> I agree; why CAN'T we configure the linux kernel more like
>>> we do the BSD ones? Their code and schema is very elegant
>>> and simple.
>> The BSD setup is not end user friendly. There is actually
>> only one fundamental end user problem with our current
>> setup. When a user says 'I want XYZ' it should turn on
>> everything needed to get XYZ.
>> If I hit my capture card option it should turn on i2c,
>> video4linux,procfs, etc
> Which either means that the user doesn't ever see the
> option to turn on i2c, video4linux, procfs, and that
> behind the scenes those files are compiled and linked
> appropriately.
> Or, the options automatically turn on once you hit the
> capture card option.
More likely, "if something is selected that requires these
options to be set a certain way, force them to that, else
ask the user anyway".
Best wishes from Riley.
* Copyright (C) 2000, Memory Alpha Systems.
* All rights and wrongs reserved.
+----------------------------------------------------------------------+
| There is something frustrating about the quality and speed of Linux |
| development, ie., the quality is too high and the speed is too high, |
| in other words, I can implement this XXXX feature, but I bet someone |
| else has already done so and is just about to release their patch. |
+----------------------------------------------------------------------+
* http://www.memalpha.cx/Linux/Kernel/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Hi Alexander.
> Feel free to join... Another source of fun: take a random
> file from inlude/*/, pick a random prototype defined there,
> grep the tree for said beast. Estimate the probability of
> finding the function in question
> a) called by somebody
> b) defined somewhere
> c) (a) && !(b)
> Admittedly, P(c) is pretty low, but non-zero. P(!b) is
> _far_ from zero.
Also watch out for constructs like the following...
sample.h
#define FOO BAZ
void FOO (void);
sample.c
void BAZ (void) {
:
}
Yes, I have come across programs doing tricks like that. I'm not
aware of any occurrances of it in the kernel source, but it
wouldn't surprise me...
Best wishes from Riley.
* Copyright (C) 2000, Memory Alpha Systems.
* All rights and wrongs reserved.
+----------------------------------------------------------------------+
| There is something frustrating about the quality and speed of Linux |
| development, ie., the quality is too high and the speed is too high, |
| in other words, I can implement this XXXX feature, but I bet someone |
| else has already done so and is just about to release their patch. |
+----------------------------------------------------------------------+
* http://www.memalpha.cx/Linux/Kernel/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> only partially applied. Advansys.c was the part that wasn't applied. I
> can shave off almost 100k from it by dropping stuff for earlier that
> 2.2.x.
Advansys maintain the driver as a single common module. Last I heard they
wanted it left like it is, and since they do the maintaining who are we
to bitch 8)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Austin Schutz <tex@gblx.net> said:
> On Wed, May 24, 2000 at 09:25:18PM -0600, Neil Schemenauer wrote:
[...]
> > Especially since freeze requires the entire source for the Python
> > interpreter (unless freeze has been significantly since I last
> > looked at it).
> This is a critical point. How big is this stuff frozen?
Any extra libraries (as is the case when you compile Perl)?
--
Horst von Brand vonbrand@sleipnir.valparaiso.cl
Casilla 9G, Viña del Mar, Chile +56 32 672616
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Fri May 26, 2000 at 09:32:17PM -0400, Eric S. Raymond wrote:
> The tty mode of CML2 gives you this kind of feedback when you hit a
> constraint violation. I'm working on making the feedback more informative.
>
> Again, this is the sort of thing that requires an atemporal, declarative
> view of the world rather than a temporal, imperative one. Which is why
> the change to the CML2 language is really important -- it makes doing
> dselect-like things possible.
Both dselect and apt work to perform the job of installing applications while
managing antecedent dependancies and conflicts, but neither dselect are apt
were written in CML2. Both were written in C++, and the source code is freely
available.
-Erik
--
Erik B. Andersen Web: http://www.xmission.com/~andersen/
email: andersee@debian.org
--This message was written using 73% post-consumer electrons--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alan Cox said once upon a time (Sat, 27 May 2000):
> Our relationships are heirarchical so you can build a dependancy graph and
> then recursively backtrack to find the dependancies.
>
> Alan
Not in all cases. The other day teaching I found there is a something
under "Character devices/Video For Linux" which depends on sound being
built. It was during class, so I didn't have the time track down exactly
which driver it was. This was with the kernel source that ships Red Hat
6.2 (I bet the non-heirarchical dependancy exists in the regular kernel
too).
Dax Kelson
Guru Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
George (greerga@nidhogg.ham.muohio.edu) writes:
> Since when do you link your kernel with Xlib?
Oh, I see your point. No, if Xlib is linked with any utilities I try to
provide with the kernel, I have to include Xlib as well, and it's not feasible
to do tha on a floppy-based router.
--
Ed Carp, N7EKG erc@pobox.com 940/367-2744 cell phone
http://www.pobox.com/~erc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
andersen@xmission.com (Erik Andersen) wrote on 27.05.00 in <20000527100039.A758@xmission.com>:
> On Fri May 26, 2000 at 09:32:17PM -0400, Eric S. Raymond wrote:
> > The tty mode of CML2 gives you this kind of feedback when you hit a
> > constraint violation. I'm working on making the feedback more
> > informative.
> >
> > Again, this is the sort of thing that requires an atemporal, declarative
> > view of the world rather than a temporal, imperative one. Which is why
> > the change to the CML2 language is really important -- it makes doing
> > dselect-like things possible.
>
> Both dselect and apt work to perform the job of installing applications
> while managing antecedent dependancies and conflicts, but neither dselect
> are apt were written in CML2. Both were written in C++, and the source code
> is freely available.
C++ is bad, too. Not bad in the same way as Python, but I don't want to
choose.
Anyway.
Both dselect and apt *do* use a declarative language like CML2. It's the
stuff you find, for example, in Packages files (or debian/control or /var/
lib/(dpkg/available). The syntax is stolen from the RFC-822 mail syntax.
And apt-get also compiles the stuff into a binary database. There are
really a lot of parallels here.
The Debian dependencies are written in control file syntax, not in C++.
The (proposed) kernel dependencies are written in CML2, not in Python.
Oh, and there exist implementations of control file syntax in Perl at
least :-)
Oh, and yet another footnote. Perl *is* compilable into C, in the same way
as Python is. "perl -MO=C source" or "perl -MO=CC source" will do it. (See
the man pages of B::C and B::CC for details.)
MfG Kai
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
In article <linux.kernel.3930881C.AD2F1891@quark.vpplus.com>,
Brian Gerst <bgerst@quark.vpplus.com> wrote:
>Alan Cox wrote:
>>
>> > only partially applied. Advansys.c was the part that wasn't applied. I
>> > can shave off almost 100k from it by dropping stuff for earlier that
>> > 2.2.x.
>>
>> Advansys maintain the driver as a single common module. Last I heard they
>> wanted it left like it is, and since they do the maintaining who are we
>> to bitch 8)
>
>With all the junk still from kernels as ancient as 1.2.x? Ugh. That
>driver is the single largest C file in the kernel, weighing in at 687k.
>If they feel they need to maintain the drivers for kernels that old then
>the source is still available in the old kernel's tarball. There comes
>a point when we can't continue to carry this cruft forward anymore.
``we'' aren't carrying this cruft forward. _Advansys_ is carrying
this cruft forward, and if they want to properly maintain their
device drivers why stop them from doing so? Their code would
probably be a lot smaller if there was a published stable device
driver interface, but that's not going to ever happen in the
baseline kernel, so there's nothing that can be done about it.
____
david parsons \bi/ Pity the UDI people seem to have trainwrecked.
\/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Alan Cox wrote:
>
> > only partially applied. Advansys.c was the part that wasn't applied. I
> > can shave off almost 100k from it by dropping stuff for earlier that
> > 2.2.x.
>
> Advansys maintain the driver as a single common module. Last I heard they
> wanted it left like it is, and since they do the maintaining who are we
> to bitch 8)
With all the junk still from kernels as ancient as 1.2.x? Ugh. That
driver is the single largest C file in the kernel, weighing in at 687k.
If they feel they need to maintain the drivers for kernels that old then
the source is still available in the old kernel's tarball. There comes
a point when we can't continue to carry this cruft forward anymore.
--
Brian Gerst
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On 27 May 2000, Kai Henningsen wrote:
> > Both dselect and apt work to perform the job of installing applications
> > while managing antecedent dependancies and conflicts, but neither dselect
> > are apt were written in CML2. Both were written in C++, and the source code
> > is freely available.
>
> C++ is bad, too. Not bad in the same way as Python, but I don't want to
> choose.
>
> Anyway.
>
> Both dselect and apt *do* use a declarative language like CML2. It's the
> stuff you find, for example, in Packages files (or debian/control or /var/
> lib/(dpkg/available). The syntax is stolen from the RFC-822 mail syntax.
>
> And apt-get also compiles the stuff into a binary database. There are
> really a lot of parallels here.
>
> The Debian dependencies are written in control file syntax, not in C++.
> The (proposed) kernel dependencies are written in CML2, not in Python.
>
But we don't want a tool like dpkg/dselect: complex to mantain, hard to
add features and impossible to have it bug-free.
I think that CML2 with Python is a step better that dselect (also because
it has simpler rules: no version checking,...).
giacomo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
cate@neper.ethz.ch (Giacomo Catenazzi) wrote on 28.05.00 in <Pine.LNX.4.21.0005281022020.18157-100000@neper.ethz.ch>:
> On 27 May 2000, Kai Henningsen wrote:
> > The Debian dependencies are written in control file syntax, not in C++.
> > The (proposed) kernel dependencies are written in CML2, not in Python.
> But we don't want a tool like dpkg/dselect: complex to mantain, hard to
> add features and impossible to have it bug-free.
There's two reasons for that:
(1) Programming style
(2) Circular and versioned dependencies
(2) is not a problem for the kernel, and (1) is certainly avoidable.
> I think that CML2 with Python is a step better that dselect (also because
> it has simpler rules: no version checking,...).
Compare with apt-get, not dselect. Dselect is *old*. Much has been learned
since it was written.
MfG Kai
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
rhw@MemAlpha.cx (Riley Williams) wrote on 27.05.00 in <Pine.LNX.4.21.0005271419140.2428-100000@Consulate.UFP.CX>:
> >>> I agree; why CAN'T we configure the linux kernel more like
> >>> we do the BSD ones? Their code and schema is very elegant
> >>> and simple.
>
> >> The BSD setup is not end user friendly. There is actually
> >> only one fundamental end user problem with our current
> >> setup. When a user says 'I want XYZ' it should turn on
> >> everything needed to get XYZ.
>
> >> If I hit my capture card option it should turn on i2c,
> >> video4linux,procfs, etc
>
> > Which either means that the user doesn't ever see the
> > option to turn on i2c, video4linux, procfs, and that
> > behind the scenes those files are compiled and linked
> > appropriately.
>
> > Or, the options automatically turn on once you hit the
> > capture card option.
>
> More likely, "if something is selected that requires these
> options to be set a certain way, force them to that, else
> ask the user anyway".
Or, better:
"You just selected the video capture card option. This depends on the i2c,
video4linux, and procfs options, which are currently not selected.
Choose: (a) turn on the i2c, video4linux, and procfs options
(b) turn off the video capture card option"
MfG Kai
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On 28 May 2000, Kai Henningsen wrote:
> cate@neper.ethz.ch (Giacomo Catenazzi) wrote on 28.05.00 in
> <Pine.LNX.4.21.0005281022020.18157-100000@neper.ethz.ch>:
>
> > On 27 May 2000, Kai Henningsen wrote:
>
> > > The Debian dependencies are written in control file syntax, not in C++.
> > > The (proposed) kernel dependencies are written in CML2, not in Python.
>
> > But we don't want a tool like dpkg/dselect: complex to mantain, hard to
> > add features and impossible to have it bug-free.
>
> There's two reasons for that:
>
> (1) Programming style
> (2) Circular and versioned dependencies
>
> (2) is not a problem for the kernel, and (1) is certainly avoidable.
Do we REALLY want to avoid programming style?! :-)
> > I think that CML2 with Python is a step better that dselect (also because
> > it has simpler rules: no version checking,...).
>
> Compare with apt-get, not dselect. Dselect is *old*. Much has been learned
> since it was written.
I'm all in favour of a new configuration system, anyway, and CML2 looks
like it fits the bill pretty well. Having the first implementation written
in Python shouldn't be too much of a problem; if someone really needs
another implementation later, no doubt it will get written soon enough.
Right now, IMO, the important thing is to get something which actually
works, even if it's written in Word macros...
James.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
> > >> If I hit my capture card option it should turn on i2c,
> > >> video4linux,procfs, etc
> >
> > > Which either means that the user doesn't ever see the
> > > option to turn on i2c, video4linux, procfs, and that
> > > behind the scenes those files are compiled and linked
> > > appropriately.
> >
> > > Or, the options automatically turn on once you hit the
> > > capture card option.
> >
> > More likely, "if something is selected that requires these
> > options to be set a certain way, force them to that, else
> > ask the user anyway".
>
> Or, better:
>
> "You just selected the video capture card option. This depends on the i2c,
> video4linux, and procfs options, which are currently not selected.
>
> Choose: (a) turn on the i2c, video4linux, and procfs options
> (b) turn off the video capture card option"
(c) show me what else needs i2c, video4linux, and procfs in a hierarchical tree
This could help newbies and experts alike explore options in the kernel and how they interrelate. I've always wanted to do this with Debian packages, maybe just for the "cool" value of it.
And hey, another opportunity to be cooler than Microsoft :) And not that hard to code, too!
Kenneth
__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Fri, May 26, 2000 at 08:37:04PM -0700, david parsons wrote:
> The whoops-time-to-fork-the-linux-kernel showstopper for me is that
> the reference implementation of this new configuration language is
> written in Python, and, given the fluidity of linux kernel
That's not even funny. If you want to fork the kernel because of 1 buildtime
dependency, your priorities are messed up badly.
Regards,
bert hubert.
--
| http://www.rent-a-nerd.nl
| - U N I X -
| Inspice et cautus eris - D11T'95
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Kenneth C. Arnold <kcarnold@yahoo.com>:
> > "You just selected the video capture card option. This depends on the i2c,
> > video4linux, and procfs options, which are currently not selected.
> >
> > Choose: (a) turn on the i2c, video4linux, and procfs options
> > (b) turn off the video capture card option"
>
> (c) show me what else needs i2c, video4linux, and procfs in a hierarchical tree
>
> This could help newbies and experts alike explore options in the kernel and how they interrelate. I've always wanted to do this with Debian packages, maybe just for the "cool" value of it.
I'm working on this now.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
No one who's seen it in action can say the phrase "government help" without
either laughing or crying.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
** On May 27, Ed Carp scribbled:
> George (greerga@nidhogg.ham.muohio.edu) writes:
>
> > Since when do you link your kernel with Xlib?
>
> Oh, I see your point. No, if Xlib is linked with any utilities I try to
> provide with the kernel, I have to include Xlib as well, and it's not feasible
> to do tha on a floppy-based router.
Geez, man! How in a world would you like to compile a 90MB source tree on a
floppy router?? First show us a way to do that, then moan about Xlib.
marek
<HR NOSHADE>
<UL>
<LI>application/pgp-signature attachment: stored
</UL>
<!-- attachment="01-part" -->
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
In article <linux.kernel.20000529010106.A21839@home.ds9a.nl>,
bert hubert <ahu@ds9a.nl> wrote:
>On Fri, May 26, 2000 at 08:37:04PM -0700, david parsons wrote:
>
>> The whoops-time-to-fork-the-linux-kernel showstopper for me is that
>> the reference implementation of this new configuration language is
>> written in Python, and, given the fluidity of linux kernel
>
>That's not even funny.
It's not funny. If the kernel ceases to be buildable, *I can't use it*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On 29 May 2000, david parsons wrote:
> In article <linux.kernel.20000529010106.A21839@home.ds9a.nl>,
> bert hubert <ahu@ds9a.nl> wrote:
> >On Fri, May 26, 2000 at 08:37:04PM -0700, david parsons wrote:
> >
> >> The whoops-time-to-fork-the-linux-kernel showstopper for me is that
> >> the reference implementation of this new configuration language is
> >> written in Python, and, given the fluidity of linux kernel
> >
> >That's not even funny.
>
> It's not funny. If the kernel ceases to be buildable, *I can't use it*
The Python code can be "frozen" into C, so you only need Python if you
modify the Python source - a bit like autoconf. If you are trying to build
a kernel without access to a C compiler, good luck to you - otherwise,
what's the problem?
James.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Marek Habersack (grendel@vip.net.pl) writes:
> ** On May 27, Ed Carp scribbled:
> > George (greerga@nidhogg.ham.muohio.edu) writes:
> >=20
> > > Since when do you link your kernel with Xlib?
> >=20
> > Oh, I see your point. No, if Xlib is linked with any utilities I try to
> > provide with the kernel, I have to include Xlib as well, and it's not fea=
> sible
> > to do tha on a floppy-based router.
> Geez, man! How in a world would you like to compile a 90MB source tree on a
> floppy router?? First show us a way to do that, then moan about Xlib.
Oh, *please*. You don't *develop* on a floppy-based system...but you have to
include Xlib with your executables.
Are you being deliberately dense, or is it that you don't understand how
dynamic libraries work?
--
Ed Carp, N7EKG erc@pobox.com 940/367-2744 cell phone
http://www.pobox.com/~erc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
alan@lxorguk.ukuu.org.uk said:
> The BSD setup is not end user friendly. There is actually only one
> fundamental end user problem with our current setup. When a user says
> 'I want XYZ' it should turn on everything needed to get XYZ.
> If I hit my capture card option it should turn on i2c,
> video4linux,procfs, etc
The way the Nemesis 'make xconfig' does this is quite nice.
--
dwmw2
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Tue, May 30, 2000 at 03:56:10PM +0100, David Woodhouse wrote:
>
> alan@lxorguk.ukuu.org.uk said:
> > The BSD setup is not end user friendly. There is actually only one
> > fundamental end user problem with our current setup. When a user says
> > 'I want XYZ' it should turn on everything needed to get XYZ.
>
> > If I hit my capture card option it should turn on i2c,
> > video4linux,procfs, etc
>
> The way the Nemesis 'make xconfig' does this is quite nice.
I'm not sure that this is the right way to do it. I prefer a more
profile-based approach -- I should be able to just select `IBM' then
`Thinkpad 600E' and then go and select my expansion cards. If someone
self-builds a machine, then they could start out with `Generic PCI-based
x86' and go from there; if they built the machine they should know what's
in it.
--
The Sex Pistols were revolutionaries. The Bay City Rollers weren't.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
"Eric S. Raymond" wrote:
> Yes. The existing CML2 code does this automatically. If you say
>
> cmlconfigure -DARM
>
> options for X86, SPARC, etc won't even be queried for. CML2 freezes
> the other architecture symbols at N and uses a little theorem prover
> to deduces from those what questions should not be asked.
hmmm, this is completely different from the current system. The current
system "knows" what architecture you are configuring. Users shouldn't
have to specify a -D to get this behavior..
Jeff
P.S. Can you package cml to extract into something other than the
current directory? ie. extract the tarball into cml-x.y.z/*
--
Jeff Garzik | Liberty is always dangerous, but
Building 1024 | it is the safest thing we have.
MandrakeSoft, Inc. | -- Harry Emerson Fosdick
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Jeff Garzik <jgarzik@mandrakesoft.com>:
> "Eric S. Raymond" wrote:
> > Yes. The existing CML2 code does this automatically. If you say
> >
> > cmlconfigure -DARM
> >
> > options for X86, SPARC, etc won't even be queried for. CML2 freezes
> > the other architecture symbols at N and uses a little theorem prover
> > to deduces from those what questions should not be asked.
>
> hmmm, this is completely different from the current system. The current
> system "knows" what architecture you are configuring. Users shouldn't
> have to specify a -D to get this behavior..
There's no magic there. The current system only knows because the
Makefile sets an ARCH symbol to one of the following:
alpha i386 m68k mips64 s390 sparc arm ia64 mips ppc sh sparc64
The Makefile then uses that to generate the name of the top-level config file
So this is not "completely different"; the only question is how and where to
do the following mapping:
alpha -DALPHA
i386 -DX86
m68k -DM68K
mips64 -DMIPS64
s390 -DS390
sparc -DSPARC32
arm -DARM
ia64 -DIA64
mips -DMIPS32
ppc -DPPC
sh -DSUPERH
sparc64 -DSPARC64
The following line does it...
PREDEF := -D$(shell uname -m | sed \
-e s/i.86/x86/ \
-e s/sun4u/sparc64/ \
-e s/arm.*/arm/ \
-e s/sa110/arm/ \
-e s/sparc$$/sparc64/ \
-e s/mips$$/mips64/ \
-e s/sh$$/superh64/ \
| tr "[a-z]" "[A-Z]")
> P.S. Can you package cml to extract into something other than the
> current directory? ie. extract the tarball into cml-x.y.z/*
Gak! I just violated my own practice guidelines! :-)
I'll fix.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Faith may be defined briefly as an illogical belief in the occurrence
of the improbable...A man full of faith is simply one who has lost (or
never had) the capacity for clear and realistic thought. He is not a
mere ass: he is actually ill.
-- H. L. Mencken
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Fri, May 26, 2000 at 09:22:18PM -0400, Eric S. Raymond wrote:
> CML2 is aimed at this. It will never be perfect -- perfection would require
> a full theorem prover -- but it's already good enough to handle normal
> ancestry relationships.
Perhaps a CML2 engine should be written in ML to solve this problem?
;-)
--Chris
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: [KBUILD] Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Christopher Smith <x@xman.org>:
>On Fri, May 26, 2000 at 09:22:18PM -0400, Eric S. Raymond wrote:
>> CML2 is aimed at this. It will never be perfect -- perfection would require
>> a full theorem prover -- but it's already good enough to handle normal
>> ancestry relationships.
>
> Perhaps a CML2 engine should be written in ML to solve this problem?
> ;-)
Not necessary. CML2 0.2.0 actually includes a theorem prover that does
substitution and algebraic reduction on the constraints and then forces
variables based on the resulting relational assertions.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
Americans have the right and advantage of being armed - unlike the citizens
of other countries whose governments are afraid to trust the people with arms.
-- James Madison, The Federalist Papers
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Yes, but its nice to be able to override that behavior for
cross compiling. Linus seems to assume people want to compile
the kernel on the same type of box as the kernel will be running
on; this is sometimes a pain in the butt.
Eric: teaching ones grandmother to suck eggs is rather extreme;
my reference to lex and yacc had more to do with the fact you aren't
as familiar with the mores and society of the kernel group as you could
be; if you were you would have known what a storm of protest the use
of python would have raised, which using lex and yacc would have
avoided almost altogether.
--sig--
It isn't true unless it makes you laugh, but you don't
really understand it till it makes you cry.
On Wed, 31 May 2000, Jeff Garzik wrote:
> > cmlconfigure -DARM
> > options for X86, SPARC, etc won't even be queried for. CML2 freezes
> > the other architecture symbols at N and uses a little theorem prover
> > to deduces from those what questions should not be asked.
>
> hmmm, this is completely different from the current system. The current
> system "knows" what architecture you are configuring. Users shouldn't
> have to specify a -D to get this behavior..
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
iQCVAwUBOTh7ZMK9HT/YfGeBAQE+mAP9FWMsgRkFHirb0gXcT4mML+irNNIMR7ZC
aqkp4W8OVFbeDHEbp7tjJnErfqjXUYwG23ct31tdY9mRM7uqME98I3OgwqDqtJC+
auv1C1mkVlsFar3IHrGQ1Uwi5lZ40rWZaHBKriT5mMbkTsrLEPdbTY2ka+GtEDQk
HPCbE5DtDP4=
=TLtm
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
Jonathan Walther <krooger@debian.org>:
> Eric: teaching ones grandmother to suck eggs is rather extreme;
> my reference to lex and yacc had more to do with the fact you aren't
> as familiar with the mores and society of the kernel group as you could
> be; if you were you would have known what a storm of protest the use
> of python would have raised, which using lex and yacc would have
> avoided almost altogether.
I'd have proposed it anyway. because the first law of this crowd is
"Laugh in the face of danger!".
Uh, no, actually it's "the Right Thing is more important than the
amount of flamage you need to go through to get there". And Python is
the Right Thing for this job.
Don't believe me? Fine. Keep an eye on the various gentlemen who are
promising C-CML2 implementations. Their intentions are good. Their
skills are, I have no doubt, quite sharp. It will be ... interesting ...
to see how far they get.
--
<a href="http://www.tuxedo.org/~esr">Eric S. Raymond
The spirit of resistance to government is so valuable on certain
occasions, that I wish it always to be kept alive. It will often be
exercised when wrong, but better so than not to be exercised at all.
I like a little rebellion now and then. It is like a storm in the
Atmosphere.
-- Thomas Jefferson, letter to Abigail Adams, 1787
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Using Python isn't the kind of "laughing in the face of danger" they
admire. After all, Python is a wimpy fru-fru Object Oriented language;
no self respecting kernel he-man would lower himself to rely on
one of THOSE to compile his kernel. No sirree bob, its gotta be
C and gmake all the way, with possibly a bit of bash and tcl
thrown in. Although it should soon (I give it 2 years) Python has
not yet entered the pantheon of "installed on every Unix box"
tools and utilities. Good luck getting CML2 into the kernel.
--sig--
It isn't true unless it makes you laugh, but you don't
really understand it till it makes you cry.
On Fri, 2 Jun 2000, Eric S. Raymond wrote:
> > be; if you were you would have known what a storm of protest the use
> > of python would have raised, which using lex and yacc would have
> > avoided almost altogether.
> I'd have proposed it anyway. because the first law of this crowd is
> "Laugh in the face of danger!".
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
iQCVAwUBOTiItMK9HT/YfGeBAQHjOQP7BC3s05+P4IjXpOKVtq9BUWxEl7zW9W9P
/35q4JHwyUnJEzXJmpzxRYCb0Gk4TJyVDpkI6eHrjUJtrC9tH6LOZ+RBG9l/mVpN
cleJ1/L6q5qbqW7MzhjLu1ZrC06jqsIbzVlcUI8KlijcHO//Z2tdKzxfZGneHKDI
eLL1xat/K6s=
=dDHc
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
* Jonathan Walther (krooger@debian.org) wrote:
> Using Python isn't the kind of "laughing in the face of danger" they
> admire. After all, Python is a wimpy fru-fru Object Oriented language;
> no self respecting kernel he-man would lower himself to rely on
> one of THOSE to compile his kernel. No sirree bob, its gotta be
> C and gmake all the way, with possibly a bit of bash and tcl
> thrown in.
Urm. Since when was the philosophy of this group "use an inappropriate
tool for the job because that's what Real Men Do"?
The reasons for choosing languages are many, but "because it puts hair
on your chest" should never be among them.
Wimpy fru-fru? Heh. How about "ideally suited to task", or "the fastest
way to a good stable implementation"?
> Although it should soon (I give it 2 years) Python has
> not yet entered the pantheon of "installed on every Unix box"
> tools and utilities.
Well, there's one way to accelerate *that* process, isn't there?
> Good luck getting CML2 into the kernel.
I agree.
Tom.
--
.------------------------------------------------------.
.^. | Tom Gilbert, England | http://www.linuxbrit.co.uk |
/V\ |----------------------| gilbertt@linuxbrit.co.uk |
// \\ | Sites I recommend: `-------------------------------|
/( )\ | www.freshmeat.net www.enlightenment.org slashdot.org |
^^-^^ `------------------------------------ vim: set tw=72: -'
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
In article <linux.kernel.20000603154538.B28004@ummagumma>,
Tom Gilbert <gilbertt@linuxbrit.co.uk> wrote:
>* Jonathan Walther (krooger@debian.org) wrote:
>> Using Python isn't the kind of "laughing in the face of danger" they
>> admire. After all, Python is a wimpy fru-fru Object Oriented language;
>> no self respecting kernel he-man would lower himself to rely on
>> one of THOSE to compile his kernel. No sirree bob, its gotta be
>> C and gmake all the way, with possibly a bit of bash and tcl
>> thrown in.
>
>Urm. Since when was the philosophy of this group "use an inappropriate
>tool for the job because that's what Real Men Do"?
It depends on what the job is.
If the job is ``wedge Python into the kernel so it can be used as
advertising against Perl'', then, yes, Python is the ideal tool
for the job.
If the job is ``clean up the kernel configuration process'', then
it's not so clear that Python is appropriate. I am using (and
hacking as needed) a variant of mec's mconfig tool, and it is *very*
good about properly reporting bugs in the kernel configuration
scripts, and it has the decided advantages that it's written in C, it
doesn't use anything fancier than ncurses (which is already used by
menuconfig, and it's _very_ likely that you'll find ncurses as a
standard component on a Linux distribution), and it doesn't break
the entire universe and replace it with a new one that has the
reference implementation in some horrid little scripting language.
____
david parsons \bi/ I suspect that mconfig would work with real curses,
\/ but, alas, I don't have many copies of that around.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Re: Announcing CML2, a replacement for the kbuild system [ In reply to ]
On Fri, Jun 02, 2000 at 09:25:23PM -0700, Jonathan Walther wrote:
> Using Python isn't the kind of "laughing in the face of danger" they
> admire. After all, Python is a wimpy fru-fru Object Oriented language;
> no self respecting kernel he-man would lower himself to rely on
> one of THOSE to compile his kernel. No sirree bob, its gotta be
This thread is ridiculous. We're talking about the tool used to
configure the kernel, not *run* the kernel. Python may be "wimpy and
fru-fru", but IMHO it's no worse than make or bash (with similar
benefits). Sure, it may not be installed on every system, but that's
largely because there hasn't been a compelling reason to have it
installed rather than there being a compelling reason to NOT install
it. "make menuconfig" requires curses, "make xconfig" requires Tk &
Tcl. Big deal. Amazingly, to build the kernel you have to include this
HUGE application that opens up large opportunities for security
compromises called "gcc".
It's trivial to edit a config file with your choice of editor (I'm
sure a CML2-mode will be out for emacs shortly ;-), it's trivial to
compile a kernel on one machine to install on another. Ergo: you don't
need Python on ever Linux box to build your kernel. Eric chose Python
for a lot of reasons, and I think it has some clear benefits
(transparency of scripts is certainly beneficial, as is ease of
implementation).
Give up on this thread, or fork it off on to a debate about why the
kernel shouldn't be written in C because it's too much of a "wimpy and
fru-fru procedural language" which isn't as pervasively installed out
there as /bin/sh.
--Chris
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/