[M3devel] Build Server - Plan

Darko Volaric lists at darko.org
Fri Aug 14 04:11:08 CEST 2015


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/20150813/29dc86cb/attachment-0002.html>


More information about the M3devel mailing list