Group: debugging
Topic: design for change
Topic: dynamic code modification
Topic: incremental compilation
Topic: incremental development
Topic: interface between program modules
Topic: mobile code
Topic: monitored variable
Topic: object code linkers and loaders
Topic: revision delta
Topic: software maintenance and testing of distributed systems
Topic: system builds
Topic: Thesa compiler and loader
| |
Summary
When bringing up a system, many errors must be corrected, but compiling programs takes time as does initializing program execution. Corrections may themselves be in error. A solution frowned upon by purists but heavily used by programmers is to "patch" temporary corrections, allowing continued testing of the program. The difficulty with patching is its ad hoc nature, general ugliness, use of assembly language, limited programming
capability, and need for additional user input.
Far better is rapid compilation or an integrated patch facility for on-line modification of program source. (cbb 5/80)
Subtopic: old and new interface
Quote: if a module changes its exported interface, can hide it in a configuration that exports the old interface
| Quote: update a distributed program by new functions with old and new interfaces [»giffDK7_1985, OK]
| Quote: 'advising' patches an interface to modify its input and output [»teitW_1969]
| Quote: PODUS uses interprocedures to change procedure interfaces and mapper procedures to change data formats [»segaME3_1993]
| Quote: after updating a procedure under PODUS, the old binding table points to an interprocedure while the new binding table points to the procedure [»segaME3_1993]
| Quote: dynamic linking does not change references to a procedure that is currently active; what if a library gets replaced? [»segaME3_1993]
| Subtopic: multi-version system
Quote: PODUS dynamically updates procedures; program must be written top-down with abstract data types [»segaME3_1993]
| Quote: PODUS uses a very large, sparse virtual-address space partitioned by version; each version contains object code and a binding table [»segaME3_1993]
| Subtopic: patching assignments
Quote: use C's comma operator to syntactically add code to assignments while preserving C semantics
| Subtopic: software update package
Quote: deliver software update packages for bug fixes and new telephony features
| Quote: 5ESS software link data base (SB) enables the linking of several modifications into a software update; handles dependencies
| Subtopic: software aging
Quote: software privacy protection by periodic updates of software; software aging allows reads of older files [»jakoM11_2001]
| Subtopic: dynamic update of implementation
Quote: Cedar system development by overloading a new module with the same interface; periodically rebuild to remove old versions [»swinDC7_1985]
| Quote: Cedar compiler will not compile out of date interfaces; makes it easier to change interfaces [»donaJ7_1985a]
| Quote: dynamic software updating of functions, types, data, or definitions; patch plus state transformer function; existing instances converted on access or update [»hickM6_2001]
| Subtopic: patching an operating system
Quote: Spy allows a user to patch the supervisor program; no wild branches, no loops, short, stores only into statistic memory [»lampBW10_1983]
| Quote: an information service can automatically download updates to the communication software; ensures consistency [»needD10_1982]
| Quote: update processes under the DMERT operating system by replacing the transfer address; no static state; assumes interfaces do not change [»segaME3_1993]
| Quote: dynamically update Bellcore's Service Control Point by rerouting all requests to other programs that perform the same function [»segaME3_1993]
| Subtopic: instrumenting code
Quote: JRun instruments Java code by patching its bytecode; annotated class file format with constant pool [»mossK10_2000]
| Subtopic: fast turnaround
Quote: Cedar goal of under five seconds for minor program changes; makes programming think-bound [»teitW3_1985]
| Quote: Modeler includes single keystroke updating a system with a newly edited program [»lampBW6_1983]
| Quote: Smalltalk can translate and relink a single change in a few seconds; makes simple modifications easy [»teslL8_1981]
| Quote: re-compiling a Forth system and application into memory takes only a few seconds
| Subtopic: delta algorithm
Quote: vdelta combines compressing and differencing via Tichy's block-move plus hashing; better than diff [»huntJJ4_1998]
| Subtopic: history of patching
Quote: keep pages about five-sixths full with extra space after each sequence of instructions; use for fixing mistakes or storing numbers [»turiA3_1951]
| Quote: Corbato and Daggett's linking loader allowed patches in symbolic machine language [»mccaJ7_1963]
|
Related Topics
Group: debugging (10 topics, 333 quotes)
Topic: design for change (76 items)
Topic: dynamic code modification (15 items)
Topic: incremental compilation (3 items)
Topic: incremental development (74 items)
Topic: interface between program modules (55 items)
Topic: mobile code (14 items)
Topic: monitored variable (28 items)
Topic: object code linkers and loaders (31 items)
Topic: revision delta (18 items)
Topic: software maintenance and testing of distributed systems (16 items)
Topic: system builds (43 items)
Topic: Thesa compiler and loader (23 items)
|