[M3devel] Build Server - Plan

Jay K jay.krell at cornell.edu
Fri Aug 14 20:46:46 CEST 2015


I have tried PPC_DARWIN on 10.5. It doesn't *quite* work. Almost.
I don't believe Rosetta has adequate compatibility, i.e in suspending threadsand getting their context. When we switch to cooperative suspend that will probably work.And then we can remove a bunch more target-specific code.
Generally you don't need to support Rosetta. It just works.But I don't believe Rosetta quite fully works.
PPC_DARWIN definitely had a long somewhat recent run of workingon native hardware and probably still does.(Fyi, I386_DARWIN also worked before MacOSX/Intel was public.)
 - Jay


Date: Fri, 14 Aug 2015 11:15:37 -0700
From: lists at darko.org
To: jay.krell at cornell.edu
CC: m3devel at elegosoft.com
Subject: Re: [M3devel] Build Server - Plan

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







_______________________________________________
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/120e7b30/attachment-0002.html>


More information about the M3devel mailing list