COMPILER AND METHOD FOR AVOIDING UNNECESSARY RECOMPILATION
 Inventors: Rico Mariani, Kirkland; Daniel R.
Spalding, Redmond; Jonathan E.
Caves, Redmond; Jan Gray, Redmond;
Scott Randell, Redmond, all ol Wash.
 Assignee: Microsoft Corporation, Redmond,
[ * ] Notice: This patent issued on a continued prosecution application filed under 37 CFR 1.53(d), and is subject to the twenty year patent term provisions ol 35 U.S.C. 154(a)(2).
 Appl. No.: 516,321
 Filed: Aug. 17, 1995
 Int. CI. G06F 9 45
 U.S. CI 595 709
 Field of Search 395/705, 707,
 References Cited
U.S. PATENT DOCUMENTS
5,204,960 4/1993 Smith et al 395/707
5,325,533 6/1994 Mclnerney et al 395/701
5,359,730 10/1994 Marron 395/712
5,428,786 6/1995 Sites 395/709
5,519,866 5/1996 Lawrence et al 395/710
5,586,328 12/1996 Caron et al 395/705
FOREIGN PATENT DOCUMENTS
WO95/00901 1/1995 WIPO .
WO95/00902 1/1995 WIPO .
WO95/00904 1/1995 WIPO .
Chambers, Dean, Grove, "A Framework for Selective Recompilation in the Presence of Complex Intermodule Depedencies", Proceedings ICSE-17 Workshop on Formal
A minimal rebuild system and process for minimizing rebuilding of a user's programming project analyzes and records dependencies of object code files compiled in a previous build of the project on classes declared in header files. When rebuilding the project, the system detects and records changes made to the classes and header files since the project was last built. The system then determines whether to recompile the object code files from their respective source code files by comparing the recorded dependencies and changes. If an object code file's dependencies do not intersect the changes, recompiling of the object code file can be omitted. The minimal rebuild system utilizes an approximate representation of the dependencies to yield an efficient system while ensuring that the project is correctly rebuilt.
21 Claims, 7 Drawing Sheets