saving a bookmorph: Squeak meets Heisenberg:
Frits Swinkels
frits.swinkels at shaw.ca
Sun Aug 17 02:32:02 UTC 2003
The following problem has to do with a proxy object becoming the real
object at an inappropriate time. Debugging that is fun.
Given a brand-new bookmorph, a "save all pages" creates the following bug
in writing the .bo file (after having written the .sp files).
In saveIndexOnUrl after a lot of digging down through ReferenceStream
nextPut: and writeArray: and writeInstance: we arrive at:
self storeDataOn:
The protocol that follows is that for a MorphObjectOut (a proxy for
something on disk). Somewhere during the execution of the protocol the
MorphObjectOut becomes a PasteUpMorph<page> which promptly does not
understand the remainder of the code. What was the original intention:
write a MorphObjectOut or a PasteUpMorph ?
The Heisenberg bit: I put a "self halt" in saveIndexOnUrl with the
intention of tracing all this; the error is now a different one because the
debugger (?) causes the become: operation to kick in earlier: the very fact
that you observe the MorphObjectOut changes it!?
Anybody remembers the original design? The above problem occurs with
Squeak3.4 and 3.6 under Linux.
All this works with Squeak2.8 under Windows. With any upscale Squeak under
Windows saving a BookMorph with URL file:// c:\something\otherthing1.sp
gets lost immediately in a ServerDirectory problem which translates the URL
to "/" as input for DosDirectory.
More information about the Squeak-dev
mailing list
|