2002-01-05 18:58:21

by Eric S. Raymond

[permalink] [raw]
Subject: CML2-2.0.0 is available -- major release announcement

The latest version is always available at http://www.tuxedo.org/~esr/cml2/

Release 2.0.0: Sat Jan 5 13:30:28 EST 2002
* Added autoconfigurator.py derived from Giacomo Catenazzi's bash
script. Combining this with CML2's rulebase knowledge allows us
to eliminate huge numbers of questions.
* Rulebase and help sync with 2.4.18-pre1/2.5.2-pre7.
* Clean out cruft in the top-level rules file.
* Inequality value forcing now handles trits better.
* It is now possible to declare symbols and menus *after* they occur.
* 'private' declaration has been replaced with "label...with...";
see the reference manual for details.
* 'choicegroup' declaration introduced.

After months of maintainance only, there was some kind of harmonic
convergence in the last few days where the need for a bunch of new
features all went past critical at the same time.

The bug queue for CML2 itself is empty. However, there are some known
rulebase bugs near the framebuffer code which are under investigation.
Also, the navigation bar in the optional tree-widget-based
configurator is not fully enabled.

NEW LANGUAGE FEATURES

2.0.0 substantially extends the CML2 constraint language.

One new feature is choicegroups. This generalizes the concept of choice
menus. You can now constrain any group of symbols so that at most one
can have a non-N value.

Another significant change is that the 'private' feature is gone. It
turned out to be mis-designed -- since private symbols weren't saved
to config.out, they were getting re-queried for by make oldconfig.

Instead there is now a more general facility, label/with declarations,
that allows you to label symbols in the config file with specified
tags in a following comment. These can be used to pass instructions
to configuration postprocessors. One such instruction, "PRIVATE", is
now defined -- it tells configtrans.py not to propagate the associated
symbol into the generated autoconf.h.

As part of the label/with change, many ordering restrictions in the CML2
compiler have been removed. It is now possible to use symbols or menu
identifiers *before* their prompt declaration. This removes a technical
barrier to dispersing the symbols.cml file the way Linus wants (though
there are still reasons I don't think it's a good idea to do that) and
in general makes the language easier to use.

AUTOCONFIGURATION

It's always been part of my plan to support autoconfiguration -- a
utility that would combine CML2's knowledge base with hardware and
software autoprobes to make configuring for the box you're running on
as painless as possible.

Giacomo Catenazzi had been working on an autoconfigure.sh utility that
included a lot of autoprobe knowledge -- over 2500 tests, in fact. A few
day ago we realized that it needed to be combined with CML2. The specific
issue was PCI devices -- since we know we can get a complete list of them,
the autoconfigurator should be able to deduce that all others are absent
and produce a configuration for a trimmer kernel.

We concluded that autoconfigure.sh needed access to the list of PCI
dependents in the CML2 rulebase, and Giacomo said he'd decided as a
consequence to rewrite it in Python. And I'm sure he would have ... but
I got the bit in my teeth and did it first :-).

The first version of autoconfigure.py is included with this release. I
have tested it on three machines (one dual Athlon box built in late
2000, one dual Pentium II box from 1998 and one Cyrix machine from
1996) and it is extremely effective. Kudos to Giocomo for collecting
so many useful probes.
--
<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>

The danger (where there is any) from armed citizens, is only to the
*government*, not to *society*; and as long as they have nothing to
revenge in the government (which they cannot have while it is in their
own hands) there are many advantages in their being accustomed to the
use of arms, and no possible disadvantage.
-- Joel Barlow, "Advice to the Privileged Orders", 1792-93


2002-01-07 20:32:21

by Leif Sawyer

[permalink] [raw]
Subject: RE: CML2-2.0.0 is available -- major release announcement

Eric S. Raymond [[email protected]] writes:
> Subject: CML2-2.0.3 is available

Just some feedback on 2.0.3 running against 2.5.2-pre9 on my i686.


installed, ran as
make autoprobe config


picked up my processor/mobo/options, rtc, network, video, sound correctly.

picked up ISA/PCI/AGP right.

Picked USB HCI's as modular (building all) from VIA motherboard.
(Don't really need the OHCI built here)

picked up file systems, framebuffer, network rules, block devices right.

picked up SCSI, Input, game ports and serial ports correctly.

Missed HOTPLUG (based on USB, and configure_help - this may just be cleanup
in the help text to remove references to USB if
hotplug
is not needed/required)

Missed APM support (is enabled in running kernel)

Missed my parallel port.
Missed SCSI_Generic
Missed my floppy drive!
Missed Unix Domain Sockets!
Missed Packet Socket (based on running kernel)
Missed PS/2 mouse



Other than those above, it seems pretty good.

thanks!
Leif

2002-01-08 08:27:28

by Giacomo Catenazzi

[permalink] [raw]
Subject: Re: [kbuild-devel] RE: CML2-2.0.0 is available -- major release announcement

Leif Sawyer wrote:

>
> Picked USB HCI's as modular (building all) from VIA motherboard.
> (Don't really need the OHCI built here)


This is a know problem. The problem is: we don't know yet

if a given USB configuration is a USB card, a USB kernel support
(i.e. USBFS, OHCI, EHCI...).
The solution is to modify the configuration rules, adding
the USB_CARDS (as Eric proposed for ISA_CARDS).
But this rules change can be done only after CML2 is included
into the kernel.

> Missed HOTPLUG (based on USB, and configure_help - this may just be cleanup
> in the help text to remove references to USB if
> hotplug
> is not needed/required)


Eric: Rule error ?

>
> Missed APM support (is enabled in running kernel)


I know. I don't know if I should autodetect APM support.
On some machine APM crash the kernel and in some more
machine you must tune the APM options.

I'm not an APM expert, so I need some help.


> Missed my parallel port.

> Missed my floppy drive!

I have some problem with these rules.
I should find a solution on how to detect
these on a x86 wihout breaking the other
archs.
Probably the best solution is to change the rules:
the floppy disk is linked to CONFIG_FLOPPY (or an
other non conflicting names) and the various archs
controller configuration is derives from FLOPPY
and ARCH_*.


> Missed SCSI_Generic
> Missed Unix Domain Sockets!
> Missed Packet Socket (based on running kernel)


Hard to detect these 'software devices'.
Some suggestions?

> Missed PS/2 mouse


hmm. I forgot these rules during the conversions.
[but ATARI PS/2 conflict with this]

giacomo

2002-01-09 11:12:02

by Matthias Andree

[permalink] [raw]
Subject: Re: [kbuild-devel] RE: CML2-2.0.0 is available -- major release announcement

On Tue, 08 Jan 2002, Giacomo Catenazzi wrote:

> >Missed SCSI_Generic
> >Missed Unix Domain Sockets!
> >Missed Packet Socket (based on running kernel)
>
>
> Hard to detect these 'software devices'.
> Some suggestions?

I'm totally ignorant on how your autoconfigure works, so this may be
blatantly wrong, take this cum granu salis:

+ Always add SCSI-Generic if there is any SCSI support is present.

+ Always enable unix domain sockets if networking is desired.

? As to the packet socket, I cannot tell, I always enable it on my
configurations.

--
Matthias Andree

"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety." Benjamin Franklin