64-bit VMs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: 64-bit VMs

Ned Konz
On Wednesday 06 April 2005 12:12 pm, Tim Rowledge wrote:
> Couple of questions about the changes.
>
> Why the Object>touch: ? (and >primitive* for that matter)  
> What on earth is AlignmentMorph inARow: ? Never seen that one before..

I just stuck those in there so I could better search for unimplemented methods
using the RB. I was getting noise results, since the plugins say things like
"self touch: something" but touch: isn't implemented in the plugin's
hierarchy. They're not important, and you can certainly delete them if you
wish.

inARow: is just a little utility method that is more or less equivalent to:

AlignmentMorph newRow addAllMorphs: someMorphs.

--
Ned Konz
http://bike-nomad.com


Reply | Threaded
Open this post in threaded view
|

Re: 64-bit VMs

Tim Rowledge-2
In reply to this post by Tim Rowledge-2
OK, at http://sumeru.stanford.edu/pooters/SqFiles/packages/VMMaker/VMM64bit-3.zip (note the sub-version number change) is

the MC file
a filein to remove some obsolete protocols
a revised filein to be filedin BEFORE the MC file is loaded

For me it makes a working 32b vm and generates 64b code that my CC dislikes.

This version include Ned's fixes for deprecated methods, the proper checkbox
and an attempt to move buttons around to form slightly more logical groupings,
and extending the config file format to support the 64bit vm flag.

tim
--
Tim Rowledge, [hidden email], http://sumeru.stanford.edu/tim
Useful random insult:- A one-bit brain with a parity error.

Reply | Threaded
Open this post in threaded view
|

Re: 64-bit VMs

Tim Rowledge-2
In reply to this post by Tim Rowledge-2
Oh, I forgot to mention - FloatArray plugin needs a fix. I don't have time.

tim
--
Tim Rowledge, [hidden email], http://sumeru.stanford.edu/tim
World Ends at Ten! Pictures at 11 on Fox News!

Reply | Threaded
Open this post in threaded view
|

Re: 64-bit VMs

johnmci
Ok, so I loaded all Tim's & Ians work and built a 32bit VM. That works,  
but I picked up 63 warnings about int versus sqInt or int versus void*  
conversions.
Also I'm using my old plugins with minor changes to stop fatal compiler  
errors.

Now I attempted to build new plugins and immediately die in processing  
the AsyncFilePlugin.
Tomorrow I guess I'll see what's involved in not loading the 64bit  
stuff but living with the new sq.h

MessageNotUnderstood: String class>>ccgDeclareCForVar:
13 April 2005 11:14:10 pm

VM: Mac OS - a SmalltalkImage
Image: Squeak3.8gamma [latest update: #6548]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir Macintosh HD:Users:johnmci:Shared:Squeak3.8g-6548
Trusted Dir Macintosh HD:Users:johnmci:Shared:Squeak3.8g-6548
Untrusted Dir Macintosh  
HD:Users:johnmci:Library:Preferences:Squeak:Internet:My Squeak

String class(Object)>>doesNotUnderstand: #ccgDeclareCForVar:
        Receiver: String
        Arguments and temporary variables:
                aMessage: ccgDeclareCForVar: 'fileName'
        Receiver's instance variables:
                superclass: AbstractString
                methodDict: a MethodDictionary(#<->a CompiledMethod (3157) #<=->a  
CompiledMetho...etc...
                format: 23554
                instanceVariables: nil
                organization: ('accessing' at: at:put: byteAt: byteAt:put: byteSize)
('comparin...etc...
                subclasses: #(Symbol)
                name: #String
                classPool: nil
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: nil

[] in SmartSyntaxPluginTMethod>>handlePrimitiveDirective:on: {[:argName  
:spec | declarations   at: argName   put: (spec ccgDeclareCForVar:...]}
        Arguments and temporary variables:
                aStmt: self primitive: 'primitiveAsyncFileOpen' parameters:  
#(#String #Boolean ...etc...
                sStream: a WriteStream #()
                argName: 'fileName'
                spec: String
                expr: nil

OrderedCollection(SequenceableCollection)>>with:do:
        Receiver: an OrderedCollection('fileName' 'writeFlag' 'semaIndex')
        Arguments and temporary variables:
                otherCollection: #(String Boolean SmallInteger)
                twoArgBlock: [] in  
SmartSyntaxPluginTMethod>>handlePrimitiveDirective:on: {[:ar...etc...
                index: 1
                indexLimiT: 3
        Receiver's instance variables:
                array: #('fileName' 'writeFlag' 'semaIndex')
                firstIndex: 1
                lastIndex: 3

SmartSyntaxPluginTMethod>>handlePrimitiveDirective:on:
        Receiver: a SmartSyntaxPluginTMethod (primitiveAsyncFileOpen)
        Arguments and temporary variables:
                aStmt: self primitive: 'primitiveAsyncFileOpen' parameters:  
#(#String #Boolean ...etc...
                sStream: a WriteStream #()
                argName: 'fileName'
                spec: String
                expr: nil
        Receiver's instance variables:
                selector: #primitiveAsyncFileOpen
                returnType: 'sqInt'
                args: an OrderedCollection()
                locals: an OrderedCollection('f' 'fOop' 'okToOpen' 'fileNameSize'  
'fileName' 'w...etc...
                declarations: a Dictionary('f'->'AsyncFile *f' )
                primitive: 0
                parseTree: [
        self primitive: 'primitiveAsyncFileOpen' parameters: #(#String  
#B...etc...
                labels: an OrderedCollection()
                possibleSideEffectsCache: nil
                complete: false
                export: false
                static: true
                sharedLabel: nil
                sharedCase: nil
                comment: nil
                definingClass: nil
                globalStructureBuildMethodHasFoo: nil
                isPrimitive: true
                suppressingFailureGuards: false
                fullSelector: #primitiveAsyncFileOpen:forWrite:semaIndex:
                fullArgs: an OrderedCollection('fileName' 'writeFlag' 'semaIndex')
                parmSpecs: #(String Boolean SmallInteger)
                rcvrSpec: Oop


--- The full stack ---
String class(Object)>>doesNotUnderstand: #ccgDeclareCForVar:
[] in SmartSyntaxPluginTMethod>>handlePrimitiveDirective:on: {[:argName  
:spec | declarations   at: argName   put: (spec ccgDeclareCForVar:...]}
OrderedCollection(SequenceableCollection)>>with:do:
SmartSyntaxPluginTMethod>>handlePrimitiveDirective:on:
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SmartSyntaxPluginTMethod>>primitiveDirectiveWasHandled:on:
[] in SmartSyntaxPluginTMethod>>extractPrimitiveDirectives {[:stmt |  
(self primitiveDirectiveWasHandled: stmt on: sStream)   ifFalse:  
[s...]}
OrderedCollection>>do:
[] in SmartSyntaxPluginTMethod>>extractPrimitiveDirectives {[:sStream |  
parseTree statements   do: [:stmt | (self primitiveDirectiveWasH...]}
Array class(SequenceableCollection class)>>streamContents:
SmartSyntaxPluginTMethod>>extractPrimitiveDirectives
SmartSyntaxPluginTMethod>>setSelector:args:locals:block:primitive:
MethodNode>>asTranslationMethodOfClass:
[] in SmartSyntaxPluginCodeGenerator(CCodeGenerator)>>addClass: {[:sel  
:i |  bar value: i.  source := aClass sourceCodeAt: sel.  self    
addMe...]}
[] in Set>>doWithIndex: {[:item | aBlock2 value: item value: (index :=  
index + 1)]}
Set>>do:
Set>>doWithIndex:
[] in SmartSyntaxPluginCodeGenerator(CCodeGenerator)>>addClass: {[:bar  
| aClass selectors   doWithIndex: [:sel :i |     bar value: i.    
sour...]}
[] in ProgressInitiationException>>defaultMorphicAction {[result :=  
workBlock value: progress]}
...etc...
On Apr 7, 2005, at 11:37 AM, Tim Rowledge wrote:

> Oh, I forgot to mention - FloatArray plugin needs a fix. I don't have  
> time.
>
> tim
> --
> Tim Rowledge, [hidden email], http://sumeru.stanford.edu/tim
> World Ends at Ten! Pictures at 11 on Fox News!
>
>
--
========================================================================
===
John M. McIntosh <[hidden email]> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
========================================================================
===


12