[M3devel] multiarch
Jay
jay.krell at cornell.edu
Sat Jul 4 19:24:24 CEST 2009
I think Python code simply depends on the Python interpreter.
I skimmed through the document.
The point I gleaned about interpreters is that sometimes a dependency is on an interpreter because the package is a "plugin" or "extension" written in C or such, and sometimes the dependency is because a program is written in "pure" Python (Tcl, Perl, etc.) and just needs "any" interpreter that will run.
That is, if I have:
hello.py:
print("hello")
I am dependent on Python, but on an AMD64 system, it can be the x86 Python or AMD64 Python (or heck, Jython or IronPython, implementations in Java and for .NET/Mono).
I see your point that Python could be considered an "architecture" and the Python interpreter could be seen as installing the processor. I didn't get that from the spec but should read it more closely.
There were some references here to qemu that I didn'd understand but might make sense in that light.
That is, maybe, maybe I could have "all architectures" in one file system and maybe some virtualization products use the host file system as a file system and not just store some virtual disk in it.
I agree OpenBSD is a bit spartan/draconion/etc.
My point about source builds was more to reflect the seeming "OpenBSD way" (Gentoo, SourceMage, etc.), not necessarily what is or should be the Modula-3 way. There's a real dilemna between the two options of binary packages and source builds. They each have advantages/disadvantages.
- Jay
> Date: Sat, 4 Jul 2009 13:02:37 -0400
> From: hendrik at topoi.pooq.com
> To: m3devel at elegosoft.com
> Subject: Re: [M3devel] multiarch
>
> On Sat, Jul 04, 2009 at 06:48:19AM +0000, Jay wrote:
> >
> > The Python thing as I understand it, is that sometimes package foo
> > depends on package bar, and they must be of the same architecture, and
> > sometimes not. Specifically inproc "plugins" require matching
> > architecture, but if I just run an executable, architecture doesn't
> > usually have to match.
>
> An executable has to be one of the architectures the processor will
> handle. And if it uses shared libraries, they have to have matching
> architecture. The whole worry about multiarch on Linux AMD-64 is to
> have a consistent way of identifying the compatible one of a set
> of same-names libraries, and doing this in such a way that it
> generalises to more architectures (because they *will* eventually show
> up) and won't confuse the package manager.
>
> I think the real point with python is that python code is
> architecture-independent, because it's handled by an
> architecture-dependent interpreter. Which makes it, in effect, an
> extra architecture that's available everywhere, whether you have an
> AMD-64 or other multiarch CPU or not.
>
> > OpenBSD sets an interesting counterexample -- no biarch/multiarch,
> > just one architecture, "same as it ever was", "no additional
> > complexity", everything is built from source anyway".
>
> And they probably do not in any way support 32-bit proprietary
> binary-only device drivers or Flash interpreters or anything like that
> on AMD-64.
>
> Building from source is the traditional Modula-3 way of handling
> packages. To do this with the Debian package-manager, we'd have to
> include an install-dependency on cm3-min and let the post-install
> script use the compiler to compile the package and ship it to the
> proper place.
>
> How to do this multiarch is not clear -- We might end up with a number
> of different architecture versions of the packages, which have identical
> contents (they're source code). Being labelled with different
> architectures might (here's hoping the multiarch project thinks of this)
> end up invoking the appropriate cm3-min binary ...
>
> I suspect having real binary packages for different architectures is the
> Debian way, however. Using source packages is the norm on gentoo.
> And cm3-min would have to be binary in any case, otherwise there would
> be no way to compile it.
>
> But the multiarch stuff might indicate where we want to ship our
> libraries to. Not bin/lib, but to some other bin/lib-linux-ia32
> or whatever the multiarch people choose. We're already using similar
> conventions in the choince of LINUXLIBC6 and such names.
>
> -- hendrik
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20090704/8cd5580a/attachment-0002.html>
More information about the M3devel
mailing list