[M3devel] package groups question

Olaf Wagner wagner at elegosoft.com
Fri Jul 31 23:29:29 CEST 2009


Quoting Tony Hosking <hosking at cs.purdue.edu>:

> Agreed, cross-compilation only needed for cm3 itself.  PM3 used to
> distribute the derived .s files for each platform and installation
> required building cm3 from those.  That way there was no need to
> deliver an executable cm3.  It was all source.

I would like that to be possible with cm3, too. But we never built
up the infrastructure to do it.

Not for this release though ;-)
Let's try to ge something delivered.

Olaf

> On 31 Jul 2009, at 12:35, Jay K wrote:
>
>>
>> I actually think cross compilation support might have been very   
>> good  in the first place. :)
>> In either case, yes, cross compilation support is good and easy   
>> now,  if it wasn't earlier.
>> I only ever cross compile cm3 itself though, not the entire system.
>> Mainly what I did is some automation in pylib.py, which isn't all   
>> it  should be, but again, enough for cm3.
>> It's arguably not much more than your scripts.
>>
>>
>> Oh, well, I also changed cm3.cfg to probe around for a reasonable    
>> cm3cg, so I could stop constantly overwriting the One /cm3/bin/   
>> cm3cg, but just use CVSROOT/m3-sys/m3cc/host-target/cm3cg.
>> Really we should ship to /cm3/bin/host/target/cm3cg probably.
>>
>>
>> Cross compiling the entire system will be useful for distribution    
>> purposes, but not in this release probably.
>> It will enable us to claim to build a distribution for some target,  
>>   without actually having the target available..which is a little   
>> bit  dishonest, granted, you couldn't have run the tests.
>>
>>
>> However it also allows cross building the entire system for slow    
>> targets, that you do have and will run the tests on, e.g. iphone,    
>> mips network router, my SGI machine, etc.
>>
>>
>> If you booted from other distributions...these package groups refer  
>>   to something in them??
>>
>>
>> - Jay
>>
>> ----------------------------------------
>>> Date: Fri, 31 Jul 2009 18:27:47 +0200
>>> From: wagner at elegosoft.com
>>> To: m3devel at elegosoft.com
>>> Subject: Re: [M3devel] package groups question
>>>
>>> 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 :
>>>
>>>>
>>>> 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
>>>



-- 
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




More information about the M3devel mailing list