Hi,

On Fri, 16 Aug 2002, Peter Samuelson wrote:

> Basically the current discussion revolves around the best way to
> evolve the config language to make it more suitable for its purpose.
> This is of course in contrast to what ESR and you have tried, which is
> to replace the whole thing.

I haven't given up yet. :)

> * The current 'if' statement is really ugly and unintuitive,

Is that problem really that big? I think most kernel hackers can deal with
that. Of course this needs fixing, but there are other more important
problems. Actually this one of the simple problems my converter can solve
automatically.

> * Current 'if' semantics are hard to get right in many common cases.
>   For example, a guard variable may be either unset ("") or False
>   ("n").  If you want something to depend on the guard variable, you
>   have to cover both cases with AND or OR.  Many people do not think
>   to do this.

Many people don't have to think about this, because most dependencies are
quite simple. (This problem also becomes irrelevant with the new parser.)

> None of that answers your real question: why not use either CML2 or
> your work?  Answer: evolution, not revolution.  You say you have tried
> hard to keep the existing rulebase functionally identical (something
> Eric, of course, did not do).  Fine, but so did Keith Owens when he
> wrote kbuild 2.5, and look where that got him.

It's not really the same. CML2 and kbuild 2.5 both have the same problem -
the "fix all problems at once + a little bit more" syndrome.
Kai instead concentrated on the most important problem - correct
dependencies. Most of the surgery was concentrated on Rules.make and the
changes to the Makefiles were not only cleanups, but helped to fix the
main problem.
What is now the main problem with the config system? The shell based
dependency syntax? It's an annoying problem, but not really that serious.
The biggest problem are still two completely different parsers, which
limit the language syntax. To solve this problem we need to drop one or
both parsers. The shell parsers are the cause of the language
limitations, which force us to keep the syntax imperative and makes it
difficult to add new information. Nobody wants to touch xconfig.
So the only solution I see is to drop both parsers. You can evolutionize
as much as you want, but it doesn't help to solve the main problem. On the
other hand as soon as the main problem is solved, lots of the small
problems can be solved for free.

> I'm taking pretty much the same approach: removing warts from the
> current config system, one by one, to see how clean it can get.
> Perhaps eventually someone will be able to merge in a completely
> different system, but if so, as Greg has said, what we are doing now
> will lay the ground-work for such a change, by removing a lot of
> kludges from the rulebase.

Try to make a list of all the problems, try to prioritize them and
estimate the needed changes to rulebase and parsers. Now try to minimize
the amount of work needed to solve all the problems.
You currently ignore the xconfig problem, which seem to make most of the
problems easily solvable, but we possibly end up with a broken X
interface. The new parser with the new frontends is the largest amount of
the work, which needs to be done anyway and once it's done, it will solve
a lot of the small problems automatically.
I don't think that making multiple large syntax changes is a good idea.
Learning a new syntax is already annoying, but having to do it multiple
times will really annoy a lot of people. Making some small controlled
extensions or small rulebase fixes are not the problem, but you should
really try to avoid changes which require massive changes to all config
files.

bye, Roman



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel

Reply via email to