← Back to Patent Explorer
US5692196A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for conditionally compiling a software compilation unit

Assignee: RPX Corp
•
Filing: 1994-08-26
•
Granted: 1997-11-25
•
Expires: 2014-08-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for conditionally recompiling a compilation unit having a plurality of source code modules operates by selecting one of the source code modules, and determining whether it is necessary to generate a new condensed representation of the selected source code module. A new condensed representation of the selected source code module is generated if such generation is determined as being necessary. Changes between the new condensed representation of the selected source code module and an old condensed representation of the selected source code module are identified. Each of these changes is classified as either a compatible change or an incompatible change. An incompatible change is a change that requires recompilation of the compilation unit. A compatible change is a change that does not require recompilation of the compilation unit. The compilation unit is recompiled if any of the changes is classified as being an incompatible change.

Inventors

  • 👤 Shankar Unni
  • 👤 Andrew J. Palay

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 23:33
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/48; G06F8/42; G06F8/423; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99933

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 188 words
A method of conditionally recompiling a compilation unit having a plurality of source code modules, comprising the steps of: (1) selecting: (i) compilation unit having a plurality of source code modules, said source code modules being non-compilation units and being explicitly incorporated into said compilation unit upon a compilation of said compilation unit, and (ii) one of said source code modules; (2) determining whether it is necessary to generate a new condensed representation of said selected source code module; (3) generating a new condensed representation of said selected source code module subject to said determination of step (2); (4) identifying changes between said new condensed representation of said selected source code module and an old condensed representation of said selected source code module; (5) classifying each of said changes as one of a compatible change and an incompatible change, an incompatible change being a change that requires recompilation of said compilation unit, and a compatible change being a change that does not require recompilation of said compilation unit; and (6) enabling recompilation of said compilation unit if any of said changes is classified as being an incompatible change.
Claim 2
Independent Claim 188 words
A method of conditionally recompiling a compilation unit having a plurality of source code modules, comprising the steps of: (1) selecting: (i) compilation unit having a plurality of source code modules, said source code modules being non-compilation units and being explicitly incorporated into said compilation unit upon a compilation of said compilation unit, and (ii) one of said source code modules; (2) determining whether it is necessary to generate a new condensed representation of said selected source code module; (3) generating a new condensed representation of said selected source code module subject to said determination of step (2); (4) identifying changes between said new condensed representation of said selected source code module and an old condensed representation of said selected source code module; (5) classifying each of said changes as one of a compatible change and an incompatible change, an incompatible change being a change that requires recompilation of said compilation unit, and a compatible change being a change that does not require recompilation of said compilation unit; and (6) enabling recompilation of said compilation unit if any of said changes is classified as being an incompatible change.
Claim 3
Dependent Claim 21 words
The method of claim 1, further comprising the step of: (7) performing steps (1)-(6) for each of said source code modules.
Claim 4
Dependent Claim 61 words
The method of claim 1, wherein step (2) comprises the steps of: determining whether said old condensed representation is older than said selected source code module; and determining that it is necessary to generate a new condensed representation of said selected source code module if it is determined that said old condensed representation is older than said selected source code module.
Claim 5
Dependent Claim 67 words
The method of claim 1, wherein step (2) comprises the steps of: determining whether macro statements contained in said selected source code module have changed since said old condensed representation was generated; and determining that it is necessary to generate a new condensed representation of said selected source code module if it is determined that said macro statements have changed since said old condensed representation was generated.
Claim 6
Dependent Claim 56 words
The method of claim 1, wherein steps (5) and (6) comprise the steps of: setting to a predefined value a recompile flag associated with said compilation unit if any of said changes is classified as being an incompatible change; and enabling compilation of said compilation unit if said recompile flag is set to said predefined value.
Claim 7
Dependent Claim 62 words
The method of claim 1, further comprising the following steps which are performed between steps (1)(ii) and (2): determining whether any condensed representations of said selected source code module exists; generating a condensed representation of said selected source code module if it is determined that no condensed representations of said selected source code module exists; and enabling compilation of said compilation unit.
Claim 8
Dependent Claim 115 words
The method of claim 1, further comprising the following steps which are performed if it is determined in step (2) that it is unnecessary to generate a new condensed representation of said selected source code module: determining whether said old condensed representation was generated since said compilation unit was last compiled; if it is determined that said old condensed representation was generated since said compilation unit was last compiled, then determining whether any incompatible changes exist in said old condensed representation relative to a prior version of said old condensed representation; and enabling compilation of said compilation unit only if it is determined that at least one incompatible change exists in said old condensed representation.
Claim 9
Independent Claim 212 words
A system of conditionally recompiling a compilation unit having a plurality of source code modules, comprising: compilation unit selecting means for selecting a compilation unit having a plurality of source code modules, said source code modules being non-compilation units and being explicitly incorporated into said compilation unit upon a compilation of said compilation unit; module selecting means for selecting one of said source code modules; module generation determining means for determining whether it is necessary to generate a new condensed representation of said selected source code module; condensed representation generating means for generating a new condensed representation of said selected source code module subject to said determination of said module generation determining means; change identifying means for identifying changes between said new condensed representation of said selected source code module and an old condensed representation of said selected source code module; change classifying means for classifying each of said changes as one of a compatible change and an incompatible change, an incompatible change being a change that requires recompilation of said compilation unit, and a compatible change being a change that does not require recompilation of said compilation unit; and compilation enabling means for enabling recompilation of said compilation unit if any of said changes is classified as being an incompatible change.
Claim 10
Independent Claim 212 words
A system of conditionally recompiling a compilation unit having a plurality of source code modules, comprising: compilation unit selecting means for selecting a compilation unit having a plurality of source code modules, said source code modules being non-compilation units and being explicitly incorporated into said compilation unit upon a compilation of said compilation unit; module selecting means for selecting one of said source code modules; module generation determining means for determining whether it is necessary to generate a new condensed representation of said selected source code module; condensed representation generating means for generating a new condensed representation of said selected source code module subject to said determination of said module generation determining means; change identifying means for identifying changes between said new condensed representation of said selected source code module and an old condensed representation of said selected source code module; change classifying means for classifying each of said changes as one of a compatible change and an incompatible change, an incompatible change being a change that requires recompilation of said compilation unit, and a compatible change being a change that does not require recompilation of said compilation unit; and compilation enabling means for enabling recompilation of said compilation unit if any of said changes is classified as being an incompatible change.
Claim 11
Dependent Claim 65 words
The system of claim 8, wherein said module generation determining means comprises: means for determining whether said old condensed representation is older than said selected source code module; and means for determining that it is necessary to generate a new condensed representation of said selected source code module if it is determined that said old condensed representation is older than said selected source code module.
Claim 12
Dependent Claim 71 words
The system of claim 8, wherein said module generation determining means comprises: means for determining whether macro statements contained in said selected source code module have changed since said old condensed representation was generated; and means for determining that it is necessary to generate a new condensed representation of said selected source code module if it is determined that said macro statements have changed since said old condensed representation was generated.
Claim 13
Dependent Claim 63 words
The system of claim 8, wherein said change classifying means comprises means for setting to a predetermined value a recompile flag associated with said compilation unit if any of said changes is classified as being an incompatible change, and wherein said compilation enabling means comprises means for enabling compilation of said compilation unit if said recompile flag is set to said predefined value.
Claim 14
Dependent Claim 57 words
The system of claim 8, further comprising: means for determining whether any condensed representations of said selected source code module exists; means for generating a condensed representation of said selected source code module if it is determined that no condensed representations of said selected source code module exists; and means for enabling compilation of said compilation unit.
Claim 15
Dependent Claim 117 words
The system of claim 8, further comprising: means for determining whether said old condensed representation was generated since said compilation unit was last compiled if it is determined by said module generation determining means that it is unnecessary to generate a new condensed representation of said selected source code module; means for determining whether any incompatible changes exist in said old condensed representation relative to a prior version of said old condensed representation if it is determined that said old condensed representation was generated since said compilation unit was last compiled; and means for enabling compilation of said compilation unit only if it is determined that at least one incompatible change exists in said old condensed representation.
Claim 16
Dependent Claim 219 words
A compiler pre-processor for determining whether it is necessary to recompile a compilation unit having a plurality of source code modules, comprising: compilation unit selecting means for selecting a compilation unit having a plurality of source to code modules, said source code modules being non-compilation units and being explicitly incorporated into said compilation unit upon a compilation of said compilation unit; module selecting means for selecting one of said source code modules; module generation determining means for determining whether it is necessary to generate a new condensed representation of said selected source code module; condensed representation generating means for generating a new condensed representation of said selected source code module subject to said determination of said module generation determining means; change identifying means for identifying changes between said new condensed representation of said selected source code module and an old condensed representation of said selected source code module; change classifying means for classifying each of said changes as one of a compatible change and an incompatible change, an incompatible change being a change that requires recompilation of said compilation unit, and a compatible change being a change that does not require recompilation of said compilation unit; and compilation enabling means for enabling recompilation of said compilation unit if any of said changes is classified as being an incompatible change.
Claim 17
Dependent Claim 219 words
A compiler pre-processor for determining whether it is necessary to recompile a compilation unit having a plurality of source code modules, comprising: compilation unit selecting means for selecting a compilation unit having a plurality of source to code modules, said source code modules being non-compilation units and being explicitly incorporated into said compilation unit upon a compilation of said compilation unit; module selecting means for selecting one of said source code modules; module generation determining means for determining whether it is necessary to generate a new condensed representation of said selected source code module; condensed representation generating means for generating a new condensed representation of said selected source code module subject to said determination of said module generation determining means; change identifying means for identifying changes between said new condensed representation of said selected source code module and an old condensed representation of said selected source code module; change classifying means for classifying each of said changes as one of a compatible change and an incompatible change, an incompatible change being a change that requires recompilation of said compilation unit, and a compatible change being a change that does not require recompilation of said compilation unit; and compilation enabling means for enabling recompilation of said compilation unit if any of said changes is classified as being an incompatible change.
Claim 18
Dependent Claim 66 words
The compiler pre-processor of claim 14, wherein said module generation determining means comprises: means for determining whether said old condensed representation is older than said selected source code module; and means for determining that it is necessary to generate a new condensed representation of said selected source code module if it is determined that said old condensed representation is older than said selected source code module.
Claim 19
Dependent Claim 72 words
The compiler pre-processor of claim 14, wherein said module generation determining means comprises: means for determining whether macro statements contained in said selected source code module have changed since said old condensed representation was generated; and means for determining that it is necessary to generate a new condensed representation of said selected source code module if it is determined that said macro statements have changed since said old condensed representation was generated.
Claim 20
Dependent Claim 64 words
The compiler pre-processor of claim 14, wherein said change classifying means comprises means for setting to a predefined value a recompile flag associated with said compilation unit if any of said changes is classified as being an incompatible change, and wherein said compilation enabling means comprises means for enabling compilation of said compilation unit if said recompile flag is set to said predefined value.
Claim 21
Dependent Claim 58 words
The compiler pre-processor of claim 14, further comprising: means for determining whether any condensed representations of said selected source code module exists; means for generating a condensed representation of said selected source code module if it is determined that no condensed representations of said selected source code module exists; and means for enabling compilation of said compilation unit.
Claim 22
Dependent Claim 118 words
The compiler pre-processor of claim 14, further comprising: means for determining whether said old condensed representation was generated since said compilation unit was last compiled if it is determined by said module generation determining means that it is unnecessary to generate a new condensed representation of said selected source code module; means for determining whether any incompatible changes exist in said old condensed representation relative to a prior version of said old condensed representation if it is determined that said old condensed representation was generated since said compilation unit was last compiled; and means for enabling compilation of said compilation unit only if it is determined that at least one incompatible change exists in said old condensed representation.

References Cited (Backward Citations)

US4558413A Cited
US5325531A Cited
US5297284A Cited
US5367683A Cited
US5325533A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-11-24 2001-05-26 2001-11-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-11-24 2005-05-26 2005-11-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-11-24 2009-05-26 2009-11-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag