[Newbies] Locking down a squeak image
Giuseppe Luigi Punzi Ruiz
glpunzi at lordzealon.com
Sat Nov 10 10:32:43 UTC 2007
LockDown package ask you for a new name for the image with the
package applied.
But Seems thath LockDown package don't work in 3.9 because a DNU on
SystemDictionary>>saveAs
The disableProgrammerFacilities send saveAs to Smalltalk class, where
must be SmalltalkImage I think.
But with this problem, the Image are not saved, but you can do it
from the Squeak flap .
Are you sure, you open the correct image?
This is the log:
MessageNotUnderstood: SystemDictionary>>saveAs
10 November 2007 11:19:57 am
VM: Mac OS - a SmalltalkImage
Image: Squeak3.9 [latest update: #7068]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/glpunzi/Desarrollo/Squeak3.9-final-7067 copia
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/glpunzi/Library/Preferences/Squeak/Internet/My
Squeak
SystemDictionary(Object)>>doesNotUnderstand: #saveAs
Receiver: a SystemDictionary(lots of globals)
Arguments and temporary variables:
aMessage: saveAs
Receiver's instance variables:
tally: 2378
array: an Array(nil nil nil nil #SMInstaller->SMInstaller
#EFontBDFFontReaderFo...etc...
cachedClassNames: nil
Preferences class>>disableProgrammerFacilities
Receiver: Preferences
Arguments and temporary variables:
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#seeClassSide->a CompiledMethod
(988) )
format: 2
instanceVariables: nil
organization: ('look in class' seeClassSide)
subclasses: {ServicePreferences}
name: #Preferences
classPool: a Dictionary(#DesktopColor->(Color r: 0.742 g: 1.0 b:
0.839) #Dictio...etc...
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'System-Support'
traitComposition: nil
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
Compiler>>evaluate:in:to:notifying:ifFail:logged:
Receiver: a Compiler
Arguments and temporary variables:
textOrStream: a ReadWriteStream 'Preferences
disableProgrammerFacilities'
aContext: nil
receiver: nil
aRequestor: a TextMorphEditor
failBlock: [] in TextMorphEditor(ParagraphEditor)
>>evaluateSelection {[FakeClas...etc...
logFlag: true
methodNode: DoIt
^ Preferences disableProgrammerFacilities
method: a CompiledMethod (1429)
value: nil
toLog: nil
itsSelectionString: nil
itsSelection: nil
Receiver's instance variables:
sourceStream: a ReadWriteStream 'Preferences
disableProgrammerFacilities'
requestor: a TextMorphEditor
class: UndefinedObject
category: nil
context: nil
parserClass: Parser
--- The full stack ---
SystemDictionary(Object)>>doesNotUnderstand: #saveAs
Preferences class>>disableProgrammerFacilities
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection {[rcvr
class evaluatorClass new evaluate: self selectionAsStream in:
ctxt...]}
BlockContext>>on:do:
TextMorphEditor(ParagraphEditor)>>evaluateSelection
[] in PluggableTextMorph>>doIt {[textMorph editor evaluateSelection]}
[] in PluggableTextMorph>>handleEdit: {[result := editBlock value]}
TextMorphForEditView(TextMorph)>>handleEdit:
PluggableTextMorph>>handleEdit:
PluggableTextMorph>>doIt
UndefinedObject(Object)>>perform:orSendTo:
[] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector
numArgs) = 0 ifTrue: [target perform: selector] ...]}
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
MenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
ActiveEvent := anEvent. result := focusHolder han...]}
[] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
BlockContext>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h
processEvents. capturingGesture := capturingGest...]}
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldState>>doOneSubCycleFor:
PasteUpMorph>>doOneSubCycle
MenuMorph>>invokeModalAt:in:allowKeyboard:
MenuMorph>>invokeModal:
MenuMorph>>invokeModal
PluggableTextMorph>>yellowButtonActivity:
...etc...
El 10/11/2007, a las 2:04, Rich White escribió:
> oddly enough I follow this procedure.. even get the "this is a drastic
> step" message ... I select "Yes" to continue .. it acts like it is
> updating the image. but I still get the world menu and halo?.... not
> sure what step I could be leaving out.
>
>
>
>
> On Nov 9, 2007 2:15 AM, <glpunzi at lordzealon.com> wrote:
>> Hi Rich,
>>
>> You can use the LockDown Package, available from SqueakMap.
>>
>> Here are some documentation about how to use:
>> http://wiki.squeak.org/squeak/518
>>
>> Cheers.
>>
>>
>>> An advice on locking down a squeak image?.... I am wanting to
>>> make the
>>> world menu, halo, & error messages unactive.
>>>
>>> Thanks in advance !
>>>
>>>
>>> Rich
>>>
>>> =====================
>>
>>> _______________________________________________
>>> Beginners mailing list
>>> Beginners at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>>>
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
More information about the Beginners
mailing list