64-bit VMs

John M McIntosh johnmci at smalltalkconsulting.com
Thu Apr 14 06:24:43 UTC 2005


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, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
> World Ends at Ten! Pictures at 11 on Fox News!
>
>
--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Vm-dev mailing list