<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi Chris,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I get an error when trying to inspect the root of 
my repository.&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>The following stack trace shows a BlockContext 
trying to materialize.&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Does this mean the repository is 
fried?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>There seems to be no way to inspect the contents of 
the repository other than inspecting the root of a session.&nbsp; Is that 
right?&nbsp; Is there anyway to determine where the block context came 
from?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I'm still trying to understand how this 
works.&nbsp; What if you create a repository from a root, to which you keep a 
pointer as a global variable.&nbsp; Does that global variable now point to the 
repository object, or is it pointing to a dead clone of the 
repository?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Thank you.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>May 8, 2003 16:27</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>VM: Win32 - Squeak3.4 of 1 March 2003 [latest 
update: #5170]<BR>Image: Squeak3.5 [latest update: #5180]</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>BlockContext(Object)&gt;&gt;error:<BR>&nbsp;Receiver: a BlockContext with 
home=nil<BR>&nbsp;Arguments and temporary variables: <BR>&nbsp;&nbsp;aString: 
&nbsp;'stackp store failure'<BR>&nbsp;Receiver's instance variables: 
<BR>&nbsp;&nbsp;sender: &nbsp;0<BR>&nbsp;&nbsp;pc: 
&nbsp;18446744072634809864<BR>&nbsp;&nbsp;stackp: 
&nbsp;nil<BR>&nbsp;&nbsp;nargs: &nbsp;nil<BR>&nbsp;&nbsp;startpc: 
&nbsp;nil<BR>&nbsp;&nbsp;home: &nbsp;nil</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>BlockContext(ContextPart)&gt;&gt;stackp:<BR>&nbsp;Receiver: a 
BlockContext with home=nil<BR>&nbsp;Arguments and temporary variables: 
<BR>&nbsp;&nbsp;newStackp: &nbsp;18446744072634809792<BR>&nbsp;Receiver's 
instance variables: <BR>&nbsp;&nbsp;sender: &nbsp;0<BR>&nbsp;&nbsp;pc: 
&nbsp;18446744072634809864<BR>&nbsp;&nbsp;stackp: 
&nbsp;nil<BR>&nbsp;&nbsp;nargs: &nbsp;nil<BR>&nbsp;&nbsp;startpc: 
&nbsp;nil<BR>&nbsp;&nbsp;home: &nbsp;nil</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>BlockContext&gt;&gt;instVarAt:put:<BR>&nbsp;Receiver: a BlockContext with 
home=nil<BR>&nbsp;Arguments and temporary variables: <BR>&nbsp;&nbsp;index: 
&nbsp;3<BR>&nbsp;&nbsp;value: &nbsp;18446744072634809792<BR>&nbsp;Receiver's 
instance variables: <BR>&nbsp;&nbsp;sender: &nbsp;0<BR>&nbsp;&nbsp;pc: 
&nbsp;18446744072634809864<BR>&nbsp;&nbsp;stackp: 
&nbsp;nil<BR>&nbsp;&nbsp;nargs: &nbsp;nil<BR>&nbsp;&nbsp;startpc: 
&nbsp;nil<BR>&nbsp;&nbsp;home: &nbsp;nil</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>BlockContext class(Object 
class)&gt;&gt;maMaterializeFrom:<BR>&nbsp;Receiver: 
BlockContext<BR>&nbsp;Arguments and temporary variables: 
<BR>&nbsp;&nbsp;aMaNormalObjectBuffer: &nbsp;a MaNormalObjectBuffer 
<BR>&nbsp;oid : 2066876<BR>&nbsp;classId : 
119<BR>&nbsp;p...etc...<BR>&nbsp;&nbsp;skeleton: &nbsp;a BlockContext with 
home=nil<BR>&nbsp;&nbsp;indexedSize: &nbsp;0<BR>&nbsp;&nbsp;index: 
&nbsp;3<BR>&nbsp;&nbsp;indexLimiT: &nbsp;6<BR>&nbsp;Receiver's instance 
variables: <BR>&nbsp;&nbsp;superclass: 
&nbsp;ContextPart<BR>&nbsp;&nbsp;methodDict: &nbsp;a 
MethodDictionary(#aboutToReturn:through:-&gt;a CompiledMethod 
(2845)...etc...<BR>&nbsp;&nbsp;format: 
&nbsp;27022<BR>&nbsp;&nbsp;instanceVariables: &nbsp;#('nargs' 'startpc' 
'home')<BR>&nbsp;&nbsp;organization: &nbsp;('initialize-release' 
home:startpc:nargs:)<BR>('accessing' 
copyForSa...etc...<BR>&nbsp;&nbsp;subclasses: &nbsp;nil<BR>&nbsp;&nbsp;name: 
&nbsp;#BlockContext<BR>&nbsp;&nbsp;classPool: &nbsp;a 
Dictionary()<BR>&nbsp;&nbsp;sharedPools: &nbsp;nil<BR>&nbsp;&nbsp;environment: 
&nbsp;nil<BR>&nbsp;&nbsp;category: &nbsp;nil</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><BR>--- The full stack 
---<BR>BlockContext(Object)&gt;&gt;error:<BR>BlockContext(ContextPart)&gt;&gt;stackp:<BR>BlockContext&gt;&gt;instVarAt:put:<BR>BlockContext 
class(Object class)&gt;&gt;maMaterializeFrom:<BR>&nbsp;- - - - - - - - - - - - - 
- - - - - - - - - - - - - - - - - - - 
-<BR>MaNormalObjectBuffer&gt;&gt;skeletonObjectUsing:<BR>MaObjectSerializer&gt;&gt;newSkeletonFor:<BR>[] 
in MaObjectSerializer&gt;&gt;materializeGraphDo:<BR>[] in 
MaDefaultOidManager&gt;&gt;objectWithOid:ifFound:ifAbsent:<BR>MaWeakValueDictionary(MaDictionary)&gt;&gt;maAt:ifPresent:ifAbsent:<BR>[] 
in MaDefaultOidManager&gt;&gt;objectWithOid:ifFound:ifAbsent:<BR>MaOidCalculator 
class&gt;&gt;objectWithOid:ifNone:<BR>MaDefaultOidManager&gt;&gt;objectWithOid:ifFound:ifAbsent:<BR>MaObjectSerializer&gt;&gt;objectWithOid:ifFound:ifAbsent:<BR>[] 
in MaObjectSerializer&gt;&gt;materializeGraphDo:<BR>[] in 
MaSerializedGraphBuffer&gt;&gt;buffersDo:<BR>MaSerializedGraphBuffer&gt;&gt;bufferPositionsDo:<BR>MaSerializedGraphBuffer&gt;&gt;buffersDo:<BR>MaObjectSerializer&gt;&gt;materializeGraphDo:<BR>MaObjectSerializer&gt;&gt;materializeGraph:do:<BR>MagmaSession&gt;&gt;materializeObject:<BR>MagmaSession&gt;&gt;anchor<BR>MagmaSession&gt;&gt;root<BR>MagmaSession&gt;&gt;DoIt<BR>Compiler&gt;&gt;evaluate:in:to:notifying:ifFail:<BR>[] 
in 
TextMorphEditor(ParagraphEditor)&gt;&gt;evaluateSelection<BR>BlockContext&gt;&gt;on:do:<BR>TextMorphEditor(ParagraphEditor)&gt;&gt;evaluateSelection<BR>TextMorphEditor(ParagraphEditor)&gt;&gt;inspectIt<BR>TextMorphEditor&gt;&gt;inspectIt:<BR>TextMorphEditor(ParagraphEditor)&gt;&gt;dispatchOnCharacter:with:<BR>TextMorphEditor&gt;&gt;dispatchOnCharacter:with:<BR>TextMorphEditor(ParagraphEditor)&gt;&gt;readKeyboard<BR>TextMorphEditor&gt;&gt;readKeyboard<BR>[] 
in 
TextMorphForEditView(TextMorph)&gt;&gt;keyStroke:<BR>TextMorphForEditView(TextMorph)&gt;&gt;handleInteraction:fromEvent:<BR>TextMorphForEditView&gt;&gt;handleInteraction:fromEvent:<BR>TextMorphForEditView(TextMorph)&gt;&gt;keyStroke:<BR>TextMorphForEditView&gt;&gt;keyStroke:<BR>TextMorphForEditView(TextMorph)&gt;&gt;handleKeystroke:<BR>KeyboardEvent&gt;&gt;sentTo:<BR>TextMorphForEditView(Morph)&gt;&gt;handleEvent:<BR>TextMorphForEditView(Morph)&gt;&gt;handleFocusEvent:<BR>[] 
in 
HandMorph&gt;&gt;sendFocusEvent:to:clear:<BR>PasteUpMorph&gt;&gt;becomeActiveDuring:<BR>HandMorph&gt;&gt;sendFocusEvent:to:clear:<BR>HandMorph&gt;&gt;sendEvent:focus:clear:<BR>HandMorph&gt;&gt;sendKeyboardEvent:<BR>HandMorph&gt;&gt;handleEvent:<BR>HandMorph&gt;&gt;processEvents<BR>[] 
in 
WorldState&gt;&gt;doOneCycleNowFor:<BR>Array(SequenceableCollection)&gt;&gt;do:<BR>WorldState&gt;&gt;handsDo:<BR>WorldState&gt;&gt;doOneCycleNowFor:<BR>WorldState&gt;&gt;doOneCycleFor:<BR>PasteUpMorph&gt;&gt;doOneCycle<BR>[] 
in Project class&gt;&gt;spawnNewProcess<BR>[] in 
BlockContext&gt;&gt;newProcess<BR></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Derek Brans<BR>Nerd on a Wire<BR>Web design that's 
anything but square<BR><A 
href="http://www.nerdonawire.com">http://www.nerdonawire.com</A> <BR>phone: 
604.874.6463<BR>mailto: <A 
href="mailto:brans@nerdonawire.com">brans@nerdonawire.com</A><BR></FONT></DIV></BODY></HTML>