Topic: Incremental compilation and on-the-fly update


Author: jim.fleming@bytes.com (Jim Fleming)
Date: 1995/05/22
Raw View
In article <D8zF72.LpJ@ssbunews.ih.att.com>, warren@ixwarren.att.com says...
>
>Against my better judgement, I'll post here because I am curious
>about the current state of the art and my interest was stiumulated
>by the recent discussions on incremental compilation.  I worked on
>incremental compilation and update strategies for C and C++ based
>systems some time ago and am curious to know what the real
>capabilities of current compilation/loading systems are.
>
>1)  How fast do modern C++ environments complete an incremental
>compile and link of a trivial change to a member function in a
>moderate-large (say 100K lines of code) system?
>
>2) Can any environments out there handle changes to object data,
>inheritance structure, or templates incrementally?  If so, again
>what is a typical time in a moderate sized system?
>
>3) What kinds of changes can and cannot be made in an on-the-fly
>update?
>
>4) Do these capabilities work on production code, or only on code
>generated with special options that are unsuitable for production
>code (i.e. code that is interpreted, unoptimized, or carries too
>much extra debugging information).  (Before you say "but
>incremantal compile/update is only useful for debugging", note that
>my field is real-time continuous running systems where these
>capabilities are very useful in the deployed system)
>
>My past experience was that incremental compiles were possible in C
>and C++, though considerably harder and slower than in dynamically
>typed languages (dyanmic languages like lisp and Smalltalk
>typically handle the changes in 1&2 in under a second, and permit
>just about anything to be done in an on the fly update).  It isn't
>the type checking per-se, but the use of it to generate efficient
>object code that causes more of the generated code to depend on
>each unit of source, requiring more analysis at compile time and
>typically more code to be generated and re-linked.  What really
>makes these things easier in dynamic languages, though, is that they keep
>type information around at run time (allowing you to find all the
>objects needing to be updated during an on-the-fly update), and
>typically defer many decisions about how to access data until
>run-time (meaning less has to be changed.)  I don't think that the
>definition of C++ prevents one from having type tags for objects at
>run-time (and indeed virtual function tables serve this purpose for
>objects that have them), and full type information for each class
>available at run-time, but efficiency and strict compatibility
>with C dictate that some data cannot be tagged, thus making
>any incremental changes involving it much more difficult, at least,
>and perhaps impossible without restrictions on the use of the
>language.  Dynamic languages typically tag everything, at least in
>principle, and make the problems of incremental compile and
>on-the-fly update easier as a result.
>
>Anyway, I'd be curious to know what the state of the art in
>incremental update for C++ really is these days.
>
>---
>
>Warren Montgomery
>ixserve!warren or w.a.montgomery@att.com
>
>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Hopefully, one of the C++ "experts" can answer Warren's questions.

BTW, Warren knows more about C+@ than me....:)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--
Jim Fleming            /|\      Unir Corporation       Unir Technology, Inc.
jrf@tiger.bytes.com  /  | \     One Naperville Plaza   184 Shuman Blvd. #100
%Techno Cat I       /   |  \    Naperville, IL 60563   Naperville, IL 60563
East End, Tortola  |____|___\   1-708-505-5801         1-800-222-UNIR(8647)
British Virgin Islands__|______ 1-708-305-3277 (FAX)   1-708-305-0600
                 \__/-------\__/       http:199.3.34.13 telnet: port 5555
Smooth Sailing on Cruising C+@amarans  ftp: 199.3.34.12 <-----stargate----+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\____to the end of the OuterNet_|






Author: blaszczak@BIX.com (blaszczak on BIX)
Date: 1995/05/23
Raw View
jim.fleming@bytes.com (Jim Fleming) writes:



>BTW, Warren knows more about C+@ than me....:)



That and $10 will get him a mouse pad.
That and $20 will get him a mouse pad and a tee-shirt.

.B ekiM





Author: jim.fleming@bytes.com (Jim Fleming)
Date: 1995/05/23
Raw View
In article <blaszczak.801201703@BIX.com>, blaszczak@BIX.com says...
>
>jim.fleming@bytes.com (Jim Fleming) writes:
>
>
>
>>BTW, Warren knows more about C+@ than me....:)
>
>
>
>That and $10 will get him a mouse pad.
>That and $20 will get him a mouse pad and a tee-shirt.
>
>.B ekiM

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

And $50 might get him a copy of DOS...:)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--
Jim Fleming            /|\      Unir Corporation       Unir Technology, Inc.
jrf@tiger.bytes.com  /  | \     One Naperville Plaza   184 Shuman Blvd. #100
%Techno Cat I       /   |  \    Naperville, IL 60563   Naperville, IL 60563
East End, Tortola  |____|___\   1-708-505-5801         1-800-222-UNIR(8647)
British Virgin Islands__|______ 1-708-305-3277 (FAX)   1-708-305-0600
                 \__/-------\__/       http:199.3.34.13 telnet: port 5555
Smooth Sailing on Cruising C+@amarans  ftp: 199.3.34.12 <-----stargate----+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\____to the end of the OuterNet_|