Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

A Compiler for Program Patches

IP.com Disclosure Number: IPCOM000110461D
Original Publication Date: 1992-Nov-01
Included in the Prior Art Database: 2005-Mar-25
Document File: 1 page(s) / 50K

Publishing Venue

IBM

Related People

Marron, A: AUTHOR

Abstract

Disclosed is a patch compiler: a program which creates a patch object program from program source.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 85% of the total text.

A Compiler for Program Patches

      Disclosed is a patch compiler: a program which creates a patch
object program from program source.

      A program patch is a set of instructions inserted into an
existing object program by a process of inspecting and modifying data
called zap.  Commonly, existing instructions are modified to branch
to a patch area (an idle section of the object), the new code is
inserted into the patch area, the original modified instructions are
recoded (if needed) at the patch area, etc.  Preparation of a patch
is a manual, error-prone process.  This fact has historically
affected the quality and limited the size and applicability of
program patches.

      The patch compiler has all the capabilities of an ordinary
compiler.  It receives two input source files, rather than one.  One
of the files is the source of the program which will be the target of
the patch.  The other file contains the source for the patch
instructions, as well as control instructions.  The compiler
re-processes the original source, recreates necessary symbol tables
(including all existing offsets), and then compiles the patch with
reference to the named objects in the original source.  The output of
the process includes, in addition to ordinary object code, control
statements for the zap program.

      Rather than the original source, the patch compiler can also
use a listing (printout file) of the version of the program which is
to be modified by a pat...