From: Jason Stubbs <jstubbs@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Dynamic SLOTs
Date: Sat, 7 Aug 2004 08:57:29 +0900 [thread overview]
Message-ID: <200408070857.29263.jstubbs@gentoo.org> (raw)
In-Reply-To: <200408061718.34261.pauldv@gentoo.org>
On Saturday 07 August 2004 00:18, Paul de Vrieze wrote:
> On Friday 06 August 2004 14:41, Jason Stubbs wrote:
> > On Friday 06 August 2004 20:56, Paul de Vrieze wrote:
> > > On Saturday 31 July 2004 08:46, Mike Frysinger wrote:
> > > > On Saturday 31 July 2004 12:09 am, Jason Stubbs wrote:
> > > > > I added support for USE-based SLOTs to
> > > > > support the third and fourth.
> > > >
> > > > i know this is off topic of your e-mail, but could you go more into
> > > > depth on this ?
> > > > CHOST / CCHOST / cross compiling dynamic SLOTs interest embedded very
> > > > much -mike
> > >
> > > I'm working on my own portage_ng version. It includes a c++ parser that
> > > replaces the bash cruft, is a lot faster, and parses most existing
> > > ebuilds. (compilation etc. still happens in bash) (It does not allow at
> > > all dynamic behaviour on the toplevel, but it will include a much more
> > > flexible dependency structure. On top of that the parser itself does
> > > not (yet at least) perform the variable substitution, so the variables
> > > are still available for reading. Once I get to that point I will also
> > > include some kind of dynamic slot/ multislot feature based on some
> > > conditions. It will certainly allow multiple installation of the same
> > > version of the same package (think crosscompiling, php for apache1 and
> > > apache2) given that they have different MULTISLOT values
> >
> > Are you going to share information or just offer another sales pitch? For
> > example, what algorithm(s) are you going use to handle the following?
> >
> > pkg-a-1.0:SLOT="foo? ( 2 ) !foo ( 1 )"
> > pkg-a-1.1:SLOT="foo? ( 1 ) !foo ( 2 )"
> > pkg-b-1.0:DEPEND="foo? ( pkg-a:2 )"
> > pkg-c-1.0:DEPEND="pkg-b[foo]"
> > USE="-foo" emerge pkg-c
>
> For one thing, I'm going to introduce a prefix based notation (similar to
> lisp) for dependencies, with the current syntax as a shortcut. I'm not yet
> very clear on how the MULTISLOT will work exactly, but variable based
> MULTISLOT should not be any problem
The notation used shouldn't have any baring on what is actually being done.
> > How about if pkg-a is installed in both slot 1 and slot 2 and the user
> > issues "emerge -u pkg-a" ?
>
> I have not thought about this yet at all. Probably update both, or give a
> big fat warning/error message
>
> > How about if we add pkg-d-1.0:DEPEND="pkg-a[-foo]" and the user issues
> > "emerge pkg-c pkg-d" ?
>
> Then we check whether pkg-a[-foo] can be satisfied in the current installed
> tree. If it can it will be (possibly by remerging it), else there is a
> conflict and an error message will be produced
But pkg-c may change what's in the installed package tree...
> > All those have a definite solution, but doing it in code that isn't as
> > slow as hell is another matter.
>
> Well, I'll try to work on it with fast code
The code isn't what needs to be fast. It's the algorithm used that are
important. I'm not so worried about ARCH-based or KV-based SLOTs any longer
as I've figured out how they can be handled cleanly without slowing down
everything else. On the other hand, introducing USE-based SLOTs makes
everything about a package variable. When atoms can specify any of that
variation, it becomes horrifically complex.
I, too, am working on a portage-ng. It's called portage. Presently, I'm near
finishing a new dependency resolver that supports:
* Ranged deps
* USE-based atoms
* SLOT-based atoms
* SLOT upgrades
* Full circular dependency support
Even with all that, a full dependency tree is built with all circular
dependencies resolved in about 6 seconds, where currently emerge takes about
2 seconds. I can't see a way to get USE-based SLOTs in without at least
doubling that figure (which is incidentally the time that 2.0.50 took). I'm
open to suggestions on how to get around it.
Regards,
Jason Stubbs
--
gentoo-dev@gentoo.org mailing list
next prev parent reply other threads:[~2004-08-06 23:54 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-31 4:09 [gentoo-dev] Dynamic SLOTs Jason Stubbs
2004-07-31 6:46 ` Mike Frysinger
2004-07-31 8:32 ` Jason Stubbs
2004-07-31 16:29 ` Mike Frysinger
2004-08-01 2:01 ` Jason Stubbs
2004-08-01 21:27 ` Martin Schlemmer
2004-08-03 23:34 ` Jason Stubbs
2004-08-03 23:57 ` Mike Frysinger
2004-08-04 14:28 ` Jason Stubbs
2004-08-04 20:11 ` Aron Griffis
2004-08-04 23:47 ` Jason Stubbs
2004-08-05 1:45 ` Lina Pezzella
2004-08-05 13:57 ` Jason Stubbs
2004-08-05 3:00 ` Aron Griffis
2004-08-05 13:50 ` Jason Stubbs
2004-08-05 8:59 ` Ned Ludd
2004-08-06 3:10 ` Mike Frysinger
2004-08-06 11:45 ` Jason Stubbs
2004-08-09 23:35 ` Matthieu Sozeau
2004-08-10 12:21 ` Jason Stubbs
2004-08-10 12:53 ` Matthieu Sozeau
2004-08-10 13:37 ` Jason Stubbs
2004-08-06 11:56 ` Paul de Vrieze
2004-08-06 12:41 ` Jason Stubbs
2004-08-06 15:18 ` Paul de Vrieze
2004-08-06 17:28 ` Mike Frysinger
2004-08-06 23:57 ` Jason Stubbs [this message]
2004-08-07 10:42 ` Paul de Vrieze
2004-08-07 11:07 ` Chris Bainbridge
2004-08-07 11:25 ` Jason Stubbs
2004-08-10 14:55 ` Jason Stubbs
2004-08-11 14:21 ` [gentoo-dev] Cross Compilation and Dynamic Slots Jason Stubbs
2004-08-11 16:17 ` Ilya A. Volynets-Evenbakh
2004-08-12 13:12 ` Jason Stubbs
2004-08-12 12:42 ` [gentoo-dev] Cross Compilation and Dynamic Slots (ARCH_LIBDIR) Travis Tilley
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=200408070857.29263.jstubbs@gentoo.org \
--to=jstubbs@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/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