[M3devel] package groups question
Tony Hosking
hosking at cs.purdue.edu
Fri Jul 31 18:31:49 CEST 2009
I think cross-compilation should always be the default approach,
simply because it avoids all the version issues. We should be able to
bootstrap from any host to any target. I know there have been
deficiencies in the gcc-based cm3cg backend (for example when host and
target INTEGER or FLOAT have different formats), but I think we are on
the way to eliminating those. Bootstrapping from .mc files using a
native cm3cg probably avoids that though, rather than bootstrapping
from host-generated .s files. Jay, perhaps you have more to add?
On 31 Jul 2009, at 12:27, Olaf Wagner wrote:
> I meant getting the first instance of cm3 5.1 run on a certain
> platform.
> And there was of course a first platform. We used the SRC compiler,
> the cm3 4.1 from Critical Mass, and the PM3 compiler on different
> platforms. Later we used cross-compilation almost exclusively.
>
> I assume that cross-compilation support has improved dramatically
> with all your changes.
>
> Olaf
>
> Quoting Jay K <jay.krell at cornell.edu>:
>
>>
>> What does it mean to boot the compiler?
>>
>>
>> I build the compiler from nothing but the compiler itself,
>> and config files, and C compiler and linker, cvs
>> to get all the source.
>> That's not nothing, but it about the smallest start you can have,
>> unless you rewrite the compiler in C, then you can start without
>> the Modula-3 compiler. But at certain points in time this
>> would not work, due to m3core and/or libm3 problems.
>> It does work today.
>>
>>
>> Is that booting?
>>
>>
>> In future I'd like to dynamically link cm3, so I'd start with
>> cm3, libm3.so, libm3core.so, etc. -- just cm3 and its "static
>> dynamic"
>> dependencies. Many other systems do dynamically link to this extent
>> and we can to.
>>
>>
>> I'm not just being obnoxious.
>> Really, what does it mean?
>>
>>
>> Should we just ship std and that's it?
>> And even drop the name from it?
>> cm3-PPC_LINUX-5.8.2.tar.gz ?
>>
>>
>> (No need to say "POSIX", it is redundant).
>> Just one download per platform?
>> Not a big matrix of packages to test?
>>
>>
>> Or do we look too fat in that packaging? :)
>>
>>
>> Will too much stuff confuse users?
>>
>>
>> Or mitigate the bulk with a little documentation/tutorial?
>>
>>
>> Something like this:
>>
>> There are many libraries and packages.
>> You do not need to worry about them.
>> Here is hello world for a command line program:
>> ...
>> And for a gui program:
>> ...
>> And a minimal sample interoperating with C:
>> ...
>> And a minimal sample using Modula-3's RPC called "network objects":
>> ...
>>
>> CM3 4.1 had some like this that were nice, presumably we have them.
>>
>> - Jay
>>
>>
>>
>>
>> ----------------------------------------
>>> Date: Fri, 31 Jul 2009 11:20:48 -0400
>>> From: hendrik at topoi.pooq.com
>>> To: m3devel at elegosoft.com
>>> Subject: Re: [M3devel] package groups question
>>>
>>> On Fri, Jul 31, 2009 at 11:13:58AM -0400, hendrik at topoi.pooq.com
>>> wrote:
>>>> On Fri, Jul 31, 2009 at 04:05:46PM +0200, Olaf Wagner wrote:
>>>>> Quoting Tony Hosking :
>>>>>
>>>>>> I don't care if future versions are not compilable with old
>>>>>> cm3. But,
>>>>>> vice versa, old versions should always be compilable with new
>>>>>> cm3.
>>>>>>
>>>>>> My gut feelings run along the lines of what Randy has said. I do
>>>>>> think that the average user should accept std as the install,
>>>>>> while
>>>>>> min is for power-users who know what they are doing. Does that
>>>>>> jive
>>>>>> with other people's expectations?
>>>>>
>>>>> Sorry, I only now caught up with _some_ of the mails on the
>>>>> m3devel
>>>>> list. Too much traffic for me to digest.
>>>>>
>>>>> I gather there's been a long discussion that `min' is not really
>>>>> useful as it is not enough to build the system. When we started
>>>>> the cm3 5 business many years ago with lots of uncompilable
>>>>> sources
>>>>> from Farshad Nayeri, we invented the following sets of packages:
>>>>>
>>>>> all - obvious meaning. most packages did not compile at all.
>>>>> std - the set of packages shipped as compilable and usable with
>>>>> every new release
>>>>> core - a useful but small set of packages including everything to
>>>>> bootstrap the compiler
>>>>> boot - the minimal set to bootstrap the compiler
>>>>> min - the minimal set useful for anyone (not wanting to compiler
>>>>> cm3)
>>>>>
>>>>> As of today, std = all, and boot isn't used any more as far as a
>>>>> I see.
>>>>
>>>> Is that becaouse no one ever boots the compiler any more? Or
>>>> because
>>>> there are better ways to do it?
>>>>
>>>> -- hendrik
>>>
>>> I guess I should mention that ebian is perfectly happy if one source
>>> parckage (possibly the entire working cm3 system) generates multiple
>>> binary packages.
>>>
>>> -- hendrik
>>>
>
>
>
> --
> Olaf Wagner -- elego Software Solutions GmbH
> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin,
> Germany
> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23
> 45 86 95
> http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz:
> Berlin
> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr:
> DE163214194
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20090731/04bc8cc1/attachment-0002.html>
More information about the M3devel
mailing list