Compile farm
   HOME

TheInfoList



OR:

A compile farm is a
server farm A server farm or server cluster is a collection of Server (computing), computer servers, usually maintained by an organization to supply server functionality far beyond the capability of a single machine. They often consist of thousands of compu ...
, a collection of one or more servers, which has been set up to compile
computer programs A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components. A computer program i ...
remotely for various reasons. Uses of a compile farm include: * '' Cross-platform development'': When writing
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
that runs on multiple processor
architectures Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing buildings o ...
and
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s, it can be infeasible for each
developer Developer may refer to: Computers * Software developer, a person or organization who develop programs/applications * Video game developer, a person or business involved in video game development, the process of designing and creating games * Web d ...
to have their own machine for each architecture — for example, one
platform Platform may refer to: Technology * Computing platform, a framework on which applications may be run * Platform game, a genre of video games * Car platform, a set of components shared by several vehicle models * Weapons platform, a system or ...
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 Test(s), testing, or TEST may refer to: * Test (assessment), an educational assessment intended to measure the respondents' knowledge or other abilities Arts and entertainment * ''Test'' (2013 film), an American film * ''Test'' (2014 film), ...
their software on a shared server running the target operating system and CPU. Compile farms may be preferable to
cross-compilation A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross ...
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;
script Script may refer to: Writing systems * Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire * Script (styles of handwriting) ** Script typeface, a typeface with characteristics of handw ...
s automatically build the latest version of a source tree from a
version control In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
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 In software development, distcc is a tool for speeding up compilation of source code by using distributed computing over a computer network. With the right configuration, distcc can dramatically reduce a project's compilation time. It is designe ...
. One example of a compile farm was the service provided by
SourceForge SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrorin ...
until 2006. The SourceForge compile farm was composed of twelve machines of various
computer architectures In computer engineering, computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of the implementation. At a more detailed level, the ...
running a variety of
operating systems An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also inc ...
, 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 In electrical engineering, spikes are fast, short duration electrical transients in voltage (voltage spikes), current (current spikes), or transferred energy (energy spikes) in an electrical circuit. Fast, short duration electrical transients ( ...
destroyed several of the machines it became non-operational some time in 2006, and was officially discontinued in February 2007. Other examples are: *
GCC Compile Farm GCC commonly refers to: * Gulf Cooperation Council, an organization of Arab states * GNU Compiler Collection, a free and open-source cross-platform compiler GCC may also refer to: Education * Good Counsel College, Innisfail, Queensland, Australi ...
https://gcc.gnu.org/wiki/CompileFarm *
OpenSUSE Build Service The Open Build Service (formerly called openSUSE Build Service) is an open and complete distribution development platform designed to encourage developers to compile packages for multiple Linux distributions including SUSE Linux Enterprise Server, ...
*
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
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/
OpenCSW build farm
for Solaris x86 and Sparc


References

Cluster computing Servers (computing) {{Comp-sci-stub