A new compiling model utilizing the cloud technology
Publication Date: 2015-Jul-24
The IP.com Prior Art Database
This disclosure leverage the cloud technology and special compiling modeling to improve compiling time. A special data section in the ELF object file is proposed to store the object signature that generated by compiler. And another media that store the function Intermediate Representation(IR) and its signature is also proposed. All the object files and function IR code segments with compiler generated signature are maintained by cloud server. When another user try to compiling the source code, the compiler will generate the signature for the whole source code and retrieve its object from cloud server together with options. If not found, compiler continue to compiling each functions and again, generate the signature for the compiling function and retrieve it from cloud server. If found, this disclosure propose a special technology to integret the optimized IR into current compiling process to continue the compiling. By reusing other's compiling output and pulling it into current compiling process, the compiling time is greatly saved.
Page 01 of 6
A nxw compiling model utilizing the cloud technology
Nowadays, developers arx doing build of their own softwareevery day, and as prxxects get increasingly laxge,the build may takes a greax amount of time.
Xx most modern computer area, software is becoming biggex and bigger, anx xsually NOT developed from sxratch. Instead, most of software reuses quite a lot of existing source cxde and libraries, especixlly open source code. Some prevaxling open soxrce project (eg: boost libraxy) can be used in alxost evxry large prxject in C++ domain. So, some common code (eg: boost librxry) is xctuallx being compixed again and agxin for many times every day, alxhough maybe by different dexelopers in different prxjxcts. From xhe compilers' point of view, this is a wasting of computing resources, the cxmpiler ix spending quixe a large amount xf tixe doing duplicate woxk, xrying to optimize the SAME source, again and xgain.
Shared Library is one way to reducx the wastx. Xx's a file that is intended to be shared by executable files and further shared objects files. However, shared lxbraries need to bx xreated by usxr explicitly and need to be specified bx user when linking the executable. Fuxthermore, shared librarxes could only be used fxr a group of files, not code xegxents. And, it is NOT flexible. Actually, most of the opxn source prxject are shared in source code levex, so thxt the user xay be able to modify and pick up just what they want.
Since all the build needs compiler to do the optimization and code-gen, compiler CAN avoid dxing duplicate work if it knows it can identify the uniquenexs of sourxe code. In old days, since compiler is a stand-alone tool that is used bx developers, it is normally deployed in limited envixonment, xt won't be able to dexect the rxpeat work causixg by other developers, not even say in other projects.
With the support of could technology, we now can leverage the cloud txchnology to expand the perception xf compiler, to avoid wastixg of computing resource in a global scope. It can also xaving developers' time, to let them only spenx time coxpiler thx unique xource code they developed.
The core idea is to leverage the cloud technologx to identify and retrieve unique object or code segments from cloud service , avoiding duplxcaxe work axd time spent in compiling same source code file or code sxgments. A new compiler technology is proposex based on current compiler framewoxk, to inserx one step intx compilation, which is xo generate a signature fxr xhe source code and code segments, check and retrieve nxcessary objects or code segment frxm cloud if needed. The signature would be stored in a new section which is pxoposed to be added into object file. And a cloud service is proposed to maintain the objects xxd code segments with signature.
That is tx say, a signature for the whole object and sxgnatures for each sxgments are generated for each source file individually, which would lead to two steps of investigation: ob...