IP Library Granted Patent US 7,263,695
Granted Patent B1
US 7,263,695 · App. 10/397,573 · Granted Aug 28, 2007

System and method for processing recursive invocations within a program build

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,263,695
App. No.
10/397,573
Granted
Aug 28, 2007
Kind
B1
Abstract

A method for executing program builds is described comprising: executing jobs for a program build in parallel according to a first job schedule; detecting a recursive build invocation in one of the jobs; analyzing dependency information associated with the recursive build invocation; and based on the analysis, supplementing the first job schedule with additional job schedule data.

Claims (39)

1. A method for executing program builds comprising:

executing jobs for a program build in parallel according to a first job schedule;

detecting a recursive Make invocation in one of the jobs;

analyzing dependency information associated with the recursive Make invocation to generate additional job schedule data;

based on the analysis, supplementing the first job schedule with the additional job schedule data; and

executing additional jobs according to the additional job schedule data.

2. The method as in claim 1 wherein the dependency information is a Makefile.

3. The method as in claim 1 further comprising:

inhibiting the detected recursive Make invocation prior to performing the analysis of the dependency information associated with the recursive Make invocation.

4. The method as in claim 3 further comprising:

dividing the job which contained the recursive Make invocation into multiple jobs.

5. The method as in claim 4 wherein dividing comprises dividing the job at a point within the job where the recursive Make invocation was detected.

6. The method as in claim 1 further comprising:

detecting whether a command within the job depends on a result of the recursive Make invocation; and

dividing the job into multiple jobs only if a command within the job depends on the result of the recursive Make invocation.

7. A system having at least one processor comprising:

a plurality of nodes to execute a plurality of jobs for a program build in parallel according to a job schedule;

a recursive Make invocation redirector configured on one or more of the nodes to detect recursive Make invocations contained within the jobs to generate additional job schedule data;

one or more worker modules to analyze the dependency information associated with the recursive Make invocation and, based on the analysis, to supplement the first job schedule with the additional job schedule data, wherein the plurality of nodes execute additional jobs according to the additional job schedule data.

8. The system as in claim 7 wherein the dependency information is a Makefile.

9. The system as in claim 7 wherein the recursive Make invocation redirector inhibits the detected recursive Make invocation before the worker modules perform the analysis of the dependency information associated with the recursive Make invocation.

10. The system as in claim 9 wherein the worker modules or the recursive Make invocation redirector divide the job which contained the recursive Make invocation into multiple jobs.

11. The system as in claim 10 wherein dividing comprises dividing the job at a point within the job where the recursive Make invocation was detected.

12. The system as in claim 10 wherein the recursive Make invocation redirector or the worker modules detect whether a command within the job depends on a result of the recursive Make invocation and divide the job into multiple jobs only if the command within the job depends on the result of the recursive Make invocation.

13. An article of manufacture having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of:

executing jobs for a program build in parallel according to a first job schedule;

detecting a recursive Make invocation in one of the jobs;

analyzing dependency information associated with the recursive Make invocation to generate additional job schedule data;

supplementing the first job schedule with the additional job schedule data based on the analysis of the dependency information; and

executing additional jobs according to the additional job schedule data.

14. The article of manufacture as in claim 13 wherein the dependency information is a Makefile.

15. The article of manufacture as in claim 13 having program code stored thereon to cause said machine to perform the additional operations of:

inhibiting the detected recursive Make invocation prior to performing the analysis of the dependency information associated with the recursive Make invocation.

16. The article of manufacture as in claim 15 having program code stored thereon to cause said machine to perform the additional operations of:

dividing the job which contained the recursive Make invocation into multiple jobs.

17. The article of manufacture as in claim 16 wherein dividing comprises dividing the job at a point within the job where the recursive Make invocation was detected.

18. The article of manufacture as in claim 13 having program code stored thereon to cause said machine to perform the additional operations of:

detecting whether a command within the job depends on a result of the recursive Make invocation; and

dividing the job into multiple jobs only if a command within the job depends on the result of the recursive Make invocation.

Assignments (14)
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2026
From: GOLDMAN SACHS PRIVATE MIDDLE MARKET CREDIT II LLC
To: CLOUDBEES, INC.
Reel/Frame 074010/0480 →
TERMINATION AND RELEASE OF SECOND INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 29, 2021
From: GOLUB CAPITAL LLC, AS AGENT
To: CLOUDBEES, INC.; ELECTRIC CLOUD, INC.
Reel/Frame 058252/0867 →
SECURITY INTEREST Recorded Nov 24, 2021
From: CLOUDBEES, INC.
To: GOLDMAN SACHS PRIVATE MIDDLE MARKET CREDIT II LLC
Reel/Frame 058207/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2020
From: ELECTRIC CLOUD, INC.
To: CLOUDEBEES, INC.
Reel/Frame 053045/0442 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2020
From: ELECTRIC CLOUD, INC.
To: CLOUDBEES, INC.
Reel/Frame 052804/0275 →
SECOND INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 29, 2019
From: CLOUDBEES, INC.
To: GOLUB CAPITAL LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 049314/0377 →
RELEASE OF SECURITY INTEREST Recorded Apr 12, 2019
From: WESTERN ALLIANCE BANK
To: ELECTRIC CLOUD, INC.
Reel/Frame 048870/0921 →
RELEASE OF SECURITY INTEREST Recorded Apr 12, 2019
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: ELECTRIC CLOUD, INC.
Reel/Frame 048870/0890 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTERESTS Recorded Jan 9, 2018
From: WF FUND V LIMITED PARTNERSHIP, C/O/B/ AS WELLINGTON FINANCIAL LP AND WELLINGTON FINANCIAL FUND V
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 045028/0880 →
SECURITY INTEREST Recorded Dec 30, 2016
From: ELECTRIC CLOUD, INC.
To: WF FUND V LIMITED PARTNERSHIP
Reel/Frame 040811/0173 →
RELEASE OF SECURITY INTEREST Recorded Dec 28, 2016
From: COMERICA BANK
To: ELECTRIC CLOUD, INC.
Reel/Frame 040787/0473 →
SECURITY INTEREST Recorded Dec 23, 2016
From: ELECTRIC CLOUD, INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 040759/0644 →
SECURITY INTEREST Recorded Jul 5, 2016
From: ELECTRIC CLOUD, INC.
To: COMERICA BANK
Reel/Frame 039255/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2003
From: MUZAFFAR, USMAN; DELMAS, SVEN; GRAHAM-CUMMING, JOHN; MELSKI, JOHN ERIC; OUSTERHOUT, JOHN; STANTON, SCOTT
To: ELECTRIC CLOUD, INC.
Reel/Frame 013916/0794 →