[M3devel] Build Server - Plan

Darko Volaric lists at darko.org
Fri Aug 14 20:15:37 CEST 2015


Actually, if we also have 10.6.8 we should be able to support PPC_DARWIN,
no? Does the compiler and toolchain work with Rosetta?

On Thu, Aug 13, 2015 at 7:11 PM, Darko Volaric <lists at darko.org> wrote:

> The server will be running MacOS 10.10 as the host. The VMs can handle any
> MacOS version but I'm thinking 10.9 and 10.10 only. Is there a real need
> for anything else?
>
> If you mean can we have multiple VMs for deploying different compiler
> configs, then the answer is yes. Each VM will be suspended until it's
> needed for a build. Once it's built the requested products and they are
> uploaded to the download server, it shuts down. So there aren't any real
> performance or memory limitations, all disks are SSDs.
>
>
> On Thu, Aug 13, 2015 at 3:26 PM, Jay K <jay.krell at cornell.edu> wrote:
>
>>  >  minimal executables for bootstrap, eg the frontend and a backend
>>
>>
>>  While I have fiddled with this being just cm3, I currently propose it is
>>  the "min" output of make-dist.py (which does output an "all" variant as
>> well,
>>  it'll take just a bit of change to make that optional).
>>
>>
>>  Specifically -- cm3, cm3cg (optional), config, m3core (static suffices),
>> libm3 (static suffices).
>>
>>
>>   make-dist.py also already outputs make-dist.py.log or such next to
>> itself I believe.
>>   See "Tee" in pylib.py.
>>
>>
>>  cm3 is a valid minimal bootstrap, and I have used it a number of times
>> all on its own,
>>  but only IF you also have a matching source tree --
>> m3cc/config/libm3/m3core.
>>  It doesn't work if it is some "random old working" cm3 and not the rest.
>>
>>
>>   "min" can be slightly more min I believe -- it has all the .m3 files
>> for m3core/libm3,
>>   for debugging. I'm not sure if the .i3 files are needed, or the
>> .ig/.mg.
>>
>>
>>
>>  > Will the C backend be one of the platforms (or several,
>>  > if they're not yet all compatible?)
>>
>>
>>  Unfortunately, the C backend output is not compatible with the gcc
>> backend output.
>>  They vary in how they pass the "display" to nested procedures (oh, if
>> only we didn't
>>  have nested procedures...)
>>  So we might want to do something about this.
>>  I have considered appending "C" to BUILD_DIR, and have done so with
>> mixed success.
>>  Alternatively, do everything twice.
>>
>>
>>   Also, if isn't clear, the C backend output is still very
>> target-specific.
>>   I'd like to fix that, but I don't have a full plan in mind and might
>> give up.
>>
>>
>>  Note that the minimal bootstrap can be used no matter which backend
>>  you are next going to use, i.e. any bootstrap can feed into C backend,
>> gcc backend, LLVM backend.
>>
>>
>>  Can you really do Mac?
>>  And if so, multiple versions?
>>
>>  There is unfortunate combinatorial explosion beyond all this.
>>  Specifically, you could n different C compiler per platform.
>>  gcc x, gcc y, clang x, clang y, etc.
>>
>>
>>  > logs for certain tests
>>
>>
>>  We have been using m3-sys/m3tests as a start. Just a start.
>>
>>
>> Thank you,
>>  - Jay
>>
>>
>>
>> > Date: Thu, 13 Aug 2015 16:31:29 -0400
>> > From: hendrik at topoi.pooq.com
>> > To: m3devel at elegosoft.com
>> > Subject: Re: [M3devel] Build Server - Plan
>>
>> >
>> > On Thu, Aug 13, 2015 at 01:27:54PM -0700, Darko Volaric wrote:
>> > > I'm setting up a server for building CM3 that takes a "minimalist"
>> approach.
>> > >
>> > > It's a machine running several virtual machines, one for each platform
>> > > supported by CM3. Each VM will contain clean install of the OS plus
>> any
>> > > external tool dependencies. It will have a minimal compiler install,
>> > > basically enough to compile itself for the host target.
>> > >
>> > > I'm going create one VM for each target I have a bootstrap compiler
>> for, so
>> > > if you think you'll find this useful and you want a target supported
>> PLEASE
>> > > CONTRIBUTE A BOOTSTRAP COMPILER. MacOS, Linux and Windows will be
>> first up.
>> > >
>> > > Users can request any version of the compiler from the github
>> repository
>> > > and all new commits will be automatically built for all platforms.
>> > >
>> > > The publicly available build products will be:
>> > >
>> > > - minimal executables for bootstrap, eg the frontend and a backend
>> > > - model compiler config files
>> > > - compilation logs for bootstrap executables
>> > > - compilation logs for most modules in the github repository
>> > > - logs for certain tests
>> > >
>> > > Packages, libraries, scripts and non-essential tools or executables
>> will
>> > > not be built or used, the idea being that people take the minimal
>> > > bootstraps and build from there.
>> > >
>> > > I'll post the URL when it's up and running and any suggestions are
>> welcome.
>> >
>> > Will the C backend be one of the platforms (or several, if they're not
>> > yet all compatible?)
>> >
>> > -- hendrik
>> > _______________________________________________
>> > M3devel mailing list
>> > M3devel at elegosoft.com
>> > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel
>>
>> _______________________________________________
>> M3devel mailing list
>> M3devel at elegosoft.com
>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20150814/4cf71309/attachment-0002.html>


More information about the M3devel mailing list