Skip to content

Instantly share code, notes, and snippets.

@killerswan
Last active March 16, 2017 02:32
Show Gist options
  • Save killerswan/3f01fe4a7fb5469b30378cd19e348049 to your computer and use it in GitHub Desktop.
Save killerswan/3f01fe4a7fb5469b30378cd19e348049 to your computer and use it in GitHub Desktop.
separate dependency builds: LLVM, PCRE, etc.

The regression caused by Homebrew's removal of llvm@3.9 (see homebrew-core # 11110) has caused some discussion reminding me of an idea I had a couple months ago.

It'd be nifty if we get more dependency builds out of the ponyc build (and into their own CI jobs). Looking through our current setup, I think the following table is roughly accurate right now.

(Although this table does not mention the Visual Studio 2015 image on AppVeyor, or the trusty distro, ubuntu-toolchain-r-test package, g++-5 package, or RVM 2.2.3 (Ruby) config on Travis.)

I'm using (❀️=todo/πŸ’›=hmm/πŸ’š=yay) hearts to indicate my feelings:

Build dependency Pony platform Third party build Package build Pony build usage Feels
LLVM Windows LLVM provides downloads here. @kulibali's AppVeyor build for his ponyc-windows-libs downloads source archives (with HTTP and FTP, not SSL) and builds. Our AppVeyor build for ponyc (in the Waf script here) downloads and uses that. πŸ’š Needs SSL downloads though!
LibreSSL WIndows LibreSSL provides downloads here. Same as LLVM. Same as LLVM. πŸ’š Needs SSL downloads though!
PCRE Windows PCRE provides downloads via FTP at ftp://ftp.csx.cam.ac.uk/ pub/software/ programming/pcre/. Same as LLVM. Same as LLVM. πŸ’š Needs SSL downloads though!
Python Windows AppVeyor's image has it? πŸ’š
Ruby Linux Our Travis build rvm-installs it. πŸ’› Rubygems?
FPM Linux (only needed in Linux builds) A Gem is available. Our Travis build gem-installs it. πŸ’› Rubygems?
GMP Linux Travis's image has it? πŸ’š
LLVM Linux LLVM provides downloads here. Our Travis build downloads the binary package. πŸ’› SSL and cache this?
LibreSSL Linux Travis's image has it? πŸ’š
PCRE Linux PCRE provides downloads via FTP at ftp://ftp.csx.cam.ac.uk/ pub/software/ programming/pcre/. Our Travis build downloads and builds from source. πŸ’› SSL, do a CI build, and cache this?
GMP OS X GNU MP Bignum provides downloads here. Our Travis build installs it via Homebrew. ❀️ Homebrew!?
LLVM OS X LLVM provides downloads here. Our Travis build installs it via Homebrew. ❀️ Homebrew!?
LibreSSL OS X LibreSSL provides downloads here. Our Travis build installs it via Homebrew. ❀️ Homebrew!?
PCRE OS X PCRE provides downloads via FTP at ftp://ftp.csx.cam.ac.uk/ pub/software/ programming/pcre/. Our Travis build installs it via Homebrew. ❀️ Homebrew!?

Runtime dependencies:

  • ncurses
  • LibreSSL
  • GMP
  • C++ / Win10 runtimes on Windows

Right now we're dependent on not just the desired {ponylang@GitHub -> AppVeyor/Travis -> Bintray}, but also providers of:

  • LLVM, PCRE, and LibreSSL downloads (also: ugh, HTTP)
  • kulibali@GitHub
  • Homebrew
  • Rubygems
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment