potential bug - condenseSources

Boris Gaertner Boris.Gaertner at gmx.net
Sun Aug 8 21:16:00 UTC 2004


From: "mds" <zenporcupinegrind at breathe.com>


> boris,
> 
> first off apologies for not recognising the problem as pre-existing;
> 
> secondly, i filed in the cs you provided, but still get problems when 
> attempting a condense; i've attached a zipped/jpeg of my img to 
> illustrate the error - please let me know if you need more info.
> 
That jpeg-image shows two windows: The debugger and a
small window titled "Syntax Error" That small window is infrequently
seen, it tells you that you
* either attempted to read a chuck of code from a damaged file
* or accessed a chunck of code using an invalid code position
   pointer
   
Whatever happened, the small window indicates that your image
and the supportive files are currently badly out of synch.

Have you load the patch into an image that you previously
used in a failed attempt to condense the sources? That would
not help. You should file in the patch into a *fresh* image before
you try the source condensation for the first time.

------------------------------------------

Some background information is perhaps helpful:

Every compiled method has a pointer into either the sources
file or the changes file. That pointer is simple the address of
the first byte of the method definition. 

Smalltalk condenseChanges does not only condense the
changes file, it also updates the code position pointer of
all methods that point to code in the changes file.

Smalltalk condenseSources does not only create a condensed
sources file and an empty changes file; it also updates the
code position pointers of all methods.


After a failed attempt to condense either the changes or the sources,
one should *not* save the image. It is then possible to go back
to the old changes / sources (they are renamed and kept in your
working directory; to reactivate them, you simple give them their
original  names.)


Greetings,
Boris



More information about the Squeak-dev mailing list