Linux kbuild/kconfig development
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Vegard Nossum <vegard.nossum@gmail.com>
Cc: Andi Kleen <andi@firstfloor.org>,
	linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org,
	Bart Massey <bart@cs.pdx.edu>, Michal Marek <mmarek@suse.cz>,
	Greg Kroah-Hartman <greg@kroah.com>, Ingo Molnar <mingo@elte.hu>
Subject: Re: [ANNOUNCE] GSoC project: Improving kconfig using a SAT solver
Date: Mon, 17 May 2010 09:21:51 -0400	[thread overview]
Message-ID: <1274102511.4418.18.camel@mulgrave.site> (raw)
In-Reply-To: <AANLkTiktV26Xu_qXFPdTRMLe5UwWnjpqvEKitjRElF6R@mail.gmail.com>

On Mon, 2010-05-17 at 15:09 +0200, Vegard Nossum wrote:
> On 17 May 2010 14:13, Andi Kleen <andi@firstfloor.org> wrote:
> > Vegard Nossum <vegard.nossum@gmail.com> writes:
> >
> >> I just wanted to say that I've been accepted into this year's Google
> >> Summer of Code program and will spend this summer working on improving
> >> the kconfig system in a very particular direction: I want to integrate
> >> a proper boolean constraint satisfiability solver into the
> >> configuration editors (menuconfig, etc.) in order to allow
> >> partial/incomplete configuration specifications. In short, this means
> >> that the user can choose to not specify a particular value for some
> >> config options, but let the system deduce their values. This will
> >> hopefully improve usability and also solve the select problem once and
> >> for all.
> >
> > Nice idea. I read your proposal and it looks good.
> >
> > I assume you got inspired by the libzypp use of a SAT solver
> > for package dependencies?  One problem that is visible there
> > is that it can be hard to display conflicts in a nice and understandable
> > way to the user, especially if there are lots of dependencies.
> >
> > It might be worth planning in some time to solve that nicely.
> 
> Thanks! I didn't actually get inspired by libzypp -- but somebody else
> mentioned it too, so I guess I should take a look!
> 
> You bring up a valid point, and I admittedly haven't given it VERY
> much thought yet, but I think that conflicts could be displayed in the
> following way: If an instance is unsolvable, then it means that all
> possible valuations/assignments make at least one clause (disjunction)
> false. Each clause is usually generated by exactly one dependency
> specification (the "depends on" directive), so we could print these
> dependencies to the screen as suggestions for how to resolve the
> conflict.

Actually, the problem is a bit different from the zypper one: Since each
package supplies its own dependencies and obsoletes, it is possible to
get an unsolvable installation problem.  What zypper tries to do in
these situations is recommend possible courses of action (like remove
these five packages from your current system, or downgrade this one
etc.).  For the Kconfig system, an unsolvable configuration is actually
a bug in the Kconfig files.  You can proceed on the premise that it's a
single symbol that has the wrong depends or selects and isolate it from
there.  Done right, the Kconfig SAT solver shouldn't detect this problem
only when a triggering configuration is input, but all the time, so it
becomes impossible to introduce buggy Kconfig directives into the kernel
tree.

James



  reply	other threads:[~2010-05-17 13:21 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-17 12:02 [ANNOUNCE] GSoC project: Improving kconfig using a SAT solver Vegard Nossum
2010-05-17 12:13 ` Andi Kleen
2010-05-17 13:09   ` Vegard Nossum
2010-05-17 13:21     ` James Bottomley [this message]
2010-05-17 14:21       ` Vegard Nossum
2010-05-17 14:28         ` James Bottomley
2010-05-18  6:03           ` david
2010-05-18 12:26             ` Jon Smirl
2010-05-18 12:54               ` Vegard Nossum
2010-05-18 13:42                 ` kevin granade
2010-06-10 13:55             ` Pavel Machek
2010-05-17 14:18     ` Andi Kleen
2010-05-19 11:05 ` Felipe Contreras
2010-05-19 18:31   ` Vegard Nossum
2010-05-21 11:07     ` Felipe Contreras

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1274102511.4418.18.camel@mulgrave.site \
    --to=james.bottomley@hansenpartnership.com \
    --cc=andi@firstfloor.org \
    --cc=bart@cs.pdx.edu \
    --cc=greg@kroah.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mmarek@suse.cz \
    --cc=vegard.nossum@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox