[Newbies] Porting an old app to a recent image
Matthias Korn
matthias.korn at uni-siegen.de
Thu Oct 9 13:37:39 UTC 2008
Hi,
I already tried to fileIn a minimal part (one Morph class) of the
application I want to port and started resolving the errors in the
debugger one by one. Still, now I am stuck with the following error:
Metaclass(Object)>>doesNotUnderstand: #category
(the full Stack Trace is attached)
Were there some changes in the Metaclass between V2 and V3 that explain
this error?
Thanks for the hint, though Karl. I didn't know about that possibility.
Regards,
Matthias
Am Wed, 8 Oct 2008 18:07:55 +0200
schrieb Karl Ramberg <karlramberg at gmail.com>:
> Matthias Korn wrote:
> > Hi all,
> >
> > is there some documentation, help, tools, etc. to port a Squeak app
> > written in SqueakV2.sources to a recent image?
> >
> > fileOut -> fileIn gives me all sorts of error messages I cannot
> > understand/debug.
> >
> > I actually just want to port parts of the app to re-use the code.
> > But it proofs really difficult for me
> Hi,
> in FileList you can try to look at the code with the CodeBrowser.
> Select the file you want to load, press the code button, or select
> browse code from the context menu.
> This will load the code in a temporary way and you can browse it and
> see the methods that change, and file in the parts you want.
>
> Karl
-------------- next part --------------
Subject: [BUG]Metaclass(Object)>>doesNotUnderstand: #category
9 October 2008 3:22:39 pm
VM: unix - a SmalltalkImage
Image: Squeak3.10beta [latest update: #7159]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/matsch/apps/sq3.10-7159dev08.03.1
Trusted Dir /home/matsch/apps/sq3.10-7159dev08.03.1/secure
Untrusted Dir /home/matsch/apps/sq3.10-7159dev08.03.1/My Squeak
Metaclass(Object)>>doesNotUnderstand: #category
Receiver: ScratchFrameMorph class
Arguments and temporary variables:
aMessage: category
Receiver's instance variables:
superclass: Morph class
methodDict: a MethodDictionary(#includeInNewMorphMenu->a CompiledMethod (127) #...etc...
format: 156
instanceVariables: nil
organization: ('class initialization' initialize)
('instance creation' includeI...etc...
thisClass: ScratchFrameMorph
traitComposition: nil
localSelectors: nil
Parser>>notify:at:
Receiver: a Parser
Arguments and temporary variables:
string: 'out of scope'
location: 1653
Receiver's instance variables:
source: a ReadStream 'readPaintSkinFrom: aDirectory
"Read the Forms for my pai...etc...
mark: 1657
hereChar: $,
aheadChar: Character space
token: 'root'
tokenType: #word
currentComment: nil
buffer: a WriteStream 'root'
typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xB...etc...
here: #_
hereType: #leftArrow
hereMark: 1655
hereEnd: 1655
prevMark: 1653
prevEnd: 1653
encoder: {an Encoder}
requestor: nil
parseNode: {#(#Left #Middle #Right )}
failBlock: [] in Compiler>>translate:noPattern:ifFail: {[^ failBlock value]}
requestorOffset: 0
tempsMark: 452
doitFlag: false
properties: a MethodProperties
category: #'scratch skin'
Parser>>notify:
Receiver: a Parser
Arguments and temporary variables:
aString: 'out of scope'
Receiver's instance variables:
source: a ReadStream 'readPaintSkinFrom: aDirectory
"Read the Forms for my pai...etc...
mark: 1657
hereChar: $,
aheadChar: Character space
token: 'root'
tokenType: #word
currentComment: nil
buffer: a WriteStream 'root'
typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xB...etc...
here: #_
hereType: #leftArrow
hereMark: 1655
hereEnd: 1655
prevMark: 1653
prevEnd: 1653
encoder: {an Encoder}
requestor: nil
parseNode: {#(#Left #Middle #Right )}
failBlock: [] in Compiler>>translate:noPattern:ifFail: {[^ failBlock value]}
requestorOffset: 0
tempsMark: 452
doitFlag: false
properties: a MethodProperties
category: #'scratch skin'
Encoder>>notify:
Receiver: {an Encoder}
Arguments and temporary variables:
string: 'out of scope'
req: a Parser
Receiver's instance variables:
comment: nil
pc: nil
scopeTable: a Dictionary('aDirectory'->{aDirectory} 'category'->{category} 'cla...etc...
nTemps: 7
supered: false
requestor: nil
class: ScratchFrameMorph class
literalStream: a WriteStream #()
selectorSet: a Dictionary(#*->{*} #+->{+} #,->{,} #-->{-} #/->{/} #'//'->{//} #...etc...
litIndSet: a Dictionary(#ScratchSkin->nil->{ScratchSkin} #Utilities->{Utilities...etc...
litSet: a LiteralDictionary(#(#Left #Middle #Right)->{#(#Left #Middle #Right )}...etc...
sourceRanges: a Dictionary({normal := n , 'Button'}->(960 to: 972) {normal := n...etc...
globalSourceRanges: an OrderedCollection({'ScratchSkin' . (648 to: 658) . false...etc...
--- The full stack ---
Metaclass(Object)>>doesNotUnderstand: #category
Parser>>notify:at:
Parser>>notify:
Encoder>>notify:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Encoder>>encodeVariable:sourceRange:ifUnknown:
Parser>>variable
Parser>>expression
Parser>>statements:innerBlock:
Parser>>blockExpression
Parser>>primaryExpression
Parser>>messagePart:repeat:
Parser>>expression
Parser>>statements:innerBlock:
Parser>>blockExpression
Parser>>primaryExpression
Parser>>messagePart:repeat:
Parser>>expression
Parser>>statements:innerBlock:
Parser>>method:context:encoder:
[] in Parser>>parse:class:noPattern:context:notifying:ifFail: {[methNode := self method: noPattern context: ctxt encoder: (Enco...]}
BlockContext>>on:do:
Parser>>parse:class:noPattern:context:notifying:ifFail:
Parser>>parse:class:category:noPattern:context:notifying:ifFail:
Compiler>>translate:noPattern:ifFail:
...etc...
More information about the Beginners
mailing list