[dmd-internals] 1st Biweekly Sprint Planning

Iain Buclaw via dmd-internals dmd-internals at puremagic.com
Thu Jul 9 13:37:57 PDT 2015


On 9 July 2015 at 21:09, Martin Nowak via dmd-internals <
dmd-internals at puremagic.com> wrote:

> On 07/09/2015 03:45 PM, Iain Buclaw wrote:
> > Recently got on-board with Semaphore-CI (better platform than
> > Travis-CI IMO)
>
> Well adding D to the list of supported PLs always helps our visibility,
> but then again there is way more important stuff to do than adding a
> Travis-CI alternative.
> It's also an endless job to add support for all CI systems.
> http://www.slant.co/topics/186/compare/~circleci_vs_shippable_vs_travis
>
>
It's more that Travis' constraints are more harmful and stopped me getting
any work done.

- The 40 minute time limit on build+tests aren't so bad, you can achieve
that with gdc if you build with parallelism, except that...
- The memory limit is capped at 3GB, meaning that builds will randomly die
depending on whether or not two (or more) large sources are compiled at the
same time.
- Infact, just linking the compiler is enough to hit the memory cap,
meaning that wonderful build and linker hacks are needed just to keep
resources down.
- There's also a timeout if 10 minutes go by without any logging (the
testsuite typically logs nothing except for failures, and may take up to 15
minutes to run), that's fine, I can just turn on verbose logging, except
that...
- Anything over the 1000th line is discarded by the build.

It took me about 30 attempts to build gdc + run testsuite on their
platform.  Even then it failed twice every three builds for no reason other
than bad races with parallel builds.

Conclusion: Travis is no good for large and/or serious projects.

Having a quick look, it appears that I'll run into similar problems with
CircleCI (4GB hard memory limit, build/tests are timed out afer 180 seconds
of silence) and Shippable (Again with 4GB memory, build/tests must complete
in 60 minutes, cannot be silent for more than 10 minutes).

I actually had a good rant about this last month, because I can no longer
wait for the broken auto-tester to start working on all platforms, but all
alternates are useless offers for medium to large open source projects.

So it was quite a relief to find out that Semaphore offers:
- 4GB "soft" limit, doesn't actually kill your build/tests if you sometimes
exceed.
- 60 minute limit "per command", so you could have 24 commands that each
take 59 minutes and things will continue to build.

Everything I've thrown at it, it has consumed with delight and succeeded.
This makes me a happy user.

Iain.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/dmd-internals/attachments/20150709/1f47c89a/attachment.html>


More information about the dmd-internals mailing list