D.gnu - Travis-CI compilers, LATEST file
- Johannes Pfau (45/45) Feb 14 2016 I just realized I/we totally forgot to answer Martin Nowaks request to
I just realized I/we totally forgot to answer Martin Nowaks request to update the http://gdcproject.org/downloads/LATEST file to 5.2.0. IIRC we decided some time ago that users should use the GCC version matching their system GCC. What would this mean for Travis-CI? What's the system GCC version for Travis-CI? Judging by some bug reports for travis-ci to update to ubuntu 14.04 I guess their system GCC is quite old, so shall we just always use the latest GDC/GCC version for travis? There are some more possible travis-ci changes we should think of: Since the last download restructuring, the ftp://ftp.gdcproject.org/binaries/arm-linux-gnueabi/, ftp://ftp.gdcproject.org/binaries/arm-linux-gnueabihf/, ... directory are only used to keep backwards compatibility for old download links. We should probably remove these directories now. Travis-CI still fetches the compiler from ftp://ftp.gdcproject.org/binaries/x86_64-linux-gnu/gdc-X.tar.xz We should probably change that to use ftp://ftp.gdcproject.org/binaries/X/x86_64-linux-gnu/gdc-X+LATEST.tar.xz OTOH it would be great if we could allow users to install other GDC versions, similar to the way it's possible for DMD. There are 3 things we could care about: * GCC version (don't know if specifying the GCC version is useful) * DMD frontend version * target (users can then at least compile for ARM on test machines. It's also possible to use qemu on travis-CI, so real testing is also possible) With the new folder layout this is actually not difficult to implement: ftp://ftp.gdcproject.org/binaries/${GCC_VER}/x86_64-linux-gnu/gdc-${GCC_VER}${TARGET}+${DMD_FE}.tar.xz Should work for all combinations. * GCC_VER can be obtained from ftp://ftp.gdcproject.org/binaries/LATEST_GCC * TARGET is either empty (=> native compiler) or "-${TRIPLET}" * $DMD_FE is the DMD version. But I think we should also add an symlink for $DMD_FE = "LATEST" The only difficult part is to devise a simple naming scheme for .travis.yaml * gdc should fetch latest GCC/DMD FE * gdc-XX should fetch latest GCC and specified DMD FE * gdc-XX-target for a specific target? How to use specific target and latest DMD FE? Writing gdc-LATEST-target is annoying... if we use gdc-XX target instead, we could do gdc arm-linux-gnueabi, gdc-2.066.1 arm-linux-gnueabi, ... * Adding the GCC version would further complicate things, but we could probably just add a /X.X.X add the end => gdc-2.066.1 arm-linux-gnueabi/5.2.0
Feb 14 2016