Mailinglist Archive: zypp-devel (70 mails)
| < Previous | Next > |
[zypp-devel] Re: [zypp-commit] r7719 - /trunk/sat-solver/src/DISCUSS
- From: Duncan Mac-Vicar Prett <dmacvicar@xxxxxxx>
- Date: Wed, 31 Oct 2007 10:50:52 +0100
- Message-id: <200710311050.53186.dmacvicar@xxxxxxx>
Solver algorithms:
------------------
- the solver allows arch changes from/to noarch without complaining.
good or bad?
good question. noarch is supposed to work, but I am not sure if this usecase
really happens often. I can imagine a java package getting rid of some native
extension, in this case the noarch package wll be the enhanced one by the
package maintainer.
- vendow changes are allowed from unknown to known. libzypp doesn't
allow that. Feature?
There are not known vendors, there are vendor changes, and current libzypp
behaviour is not select a different vendor in a upgrade as candidate, unless
it s a explicit user transaction.
- arch changes are only considered if the name stays the same, so
a rename can install a different architecture.
bug?
- same with vendor.
bug :-)
- should prune_best_version_arch consider the arch or the vendor this
is about an installed package?
what does it do?
- we disable conflicting rules when searching for a suggestion, should
we first extend them with arch changes/vendor changes/downgrades?
In what order?
I dont understand.
- distupdate sets 'allowuninstall'. Should it only allow uninstall
for packages that do not have an update in the repositories?
No idea.
- splitprovides don't work at all.
- repo priorities should influence the order in which package rules
are fulfilled.
why?
I think repo priorities are no more than part of the policy to select a
candidate. I think in tis aspect the solver should implement something
flexible, like a callback passing candidates and context and returning the
selected one, or giving each of them scores.
- weak systemrules should be created for all installed packages, so
that they are available when the erase rule is disabled if a
suggestion is calculated.
what are weak system rules? a installed rpm recommends?
- should we implement weak systemrules as weak rules?
??
- prune_best_version_arch has a n^2 loop when looking at obsoletes.
Should we create an obsoletes index to speed that up?
ZYpp right now has indexes for all kind of requries, and that is why it needs
all dependencies in the pool before solving, to build those.
Code cleanup:
-------------
- move whatprovides/whatprovidesdata from pool to solver?
good: can implement installed(), though I don't know if we need
I wanted to implement each_installed() in the solver (ruby)
bad: need to allocate solver if we just want to look up a provides.
can't re-use whatprovides for multiple solver runs with different
solvers.
it can be in the pool and wrapped in the solver. The solver has access to the
pool but not viceversa
- implement unified idarray in pool, so that repos don't have to
come with their own idarrays? Would need memory for hash, but
unification would be a nice thing. Would also fix solver memory
leak with learned rules. Needs some hard numbers abour memory usage.
No idea here.
- make bitmap macros inline functions?
it is ok as long as they are well documented and it the right header.
- rename ID Macros to ID_, e.g. ARCH_NOARCH to ID_ARCH_NOARCH?
Everything that makes things explicit and intutive-> principe of least
surprise -> is welcome.
- support different streams than FILE in repo_ functions? Is it
enough that glibc supports FILE overloading, see the undocumented
fopencookie()?
For ruby bindings it was no problem to work with FILE. Still, I am thinking of
the use case of an application server, where you want to load the repos once
in memory and share them across requests. It is a valid use case (I already
saw it), but I have no idea how to support this.
--
Duncan Mac-Vicar Prett
Novell :: SUSE R&D, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)
--
To unsubscribe, e-mail: zypp-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx
| < Previous | Next > |