{{Short description|Server farm set up to compile computer programs remotely}} {{more citations needed|date=December 2011}} A '''compile farm''' is a server farm, a collection of one or more servers, which has been set up to compile computer programs remotely for various reasons. Uses of a compile farm include:
* ''Cross-platform development'': When writing software that runs on multiple processor architectures and operating systems, it can be infeasible for each developer to have their own machine for each architecture — for example, one platform might have an expensive or obscure type of CPU. In this scenario, a compile farm is useful as a tool for developers to build and test their software on a shared server running the target operating system and CPU. Compile farms may be preferable to cross-compilation as cross compilers are often complicated to configure, and in some cases compilation is only possible on the target, making cross-compilation impossible. * ''Cross-platform continuous integration testing'': in this scenario, each server has a different processor architecture or runs a different operating system; scripts automatically build the latest version of a source tree from a version control repository. One of the difficulties of cross-platform development is that a programmer may unintentionally introduce an error that causes the software to stop functioning on a different CPU/OS platform from the one they are using. By using a cross-platform compile farm, such errors can be identified and fixed. * ''Distributed compilation'': Building software packages typically requires operations that can be run in parallel (for example, compiling individual source code files). By using a compile farm, these operations can be run in parallel on separate machines. An example of a program which can be used to do this is distcc.
One example of a compile farm was the service provided by SourceForge until 2006. The SourceForge compile farm was composed of twelve machines of various computer architectures running a variety of operating systems, and was intended to allow developers to test and use their programs on a variety of platforms before releasing them to the public. After a power spike destroyed several of the machines<ref>{{cite web |url=https://sitedocs.sourceforge.net/status/support_cfstatus.html |title= SourceForge.net|website=sitedocs.sourceforge.net |archive-url=https://web.archive.org/web/20080919010500/http://sitedocs.sourceforge.net/status/support_cfstatus.html |archive-date=September 19, 2008}}</ref> it became non-operational some time in 2006, and was officially discontinued<ref>{{cite web |url=https://blog.des.no/2007/05/end-of-sourceforge-as-we-know-it/ |title=The end of SourceForge as we know it |last=Smørgrav |first=Dag-Erling |date=May 20, 2007 |website=May Contain Traces of Bolts |access-date=May 18, 2018 |quote=the compile farm is no more. SourceForge discontinued it in February, without warning |archive-url=https://web.archive.org/web/20180518165431/https://blog.des.no/2007/05/end-of-sourceforge-as-we-know-it/ |archive-date=May 18, 2018 |url-status=live}}</ref> in February 2007.
Other examples are: * GCC Compile Farm https://gcc.gnu.org/wiki/CompileFarm * OpenSUSE Build Service * FreeBSD reports service which lets package maintainers test their own changes on a variety of versions and architectures. * Launchpad Build Farm https://launchpad.net/builders * Mozilla has a build farm, but it is not public https://wiki.mozilla.org/ReleaseEngineering * Debian has a build farm https://buildd.debian.org/ * [https://www.opencsw.org/extend-it/signup/to-upstream-maintainers/ OpenCSW build farm] for Solaris x86 and Sparc
==References== {{Reflist}}
Category:Cluster computing Category:Servers (computing)
{{Comp-sci-stub}}