Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2437.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2437 Author: eem Time: 24 August 2018, 8:54:30.280616 pm UUID: 0e97c106-dd0b-437b-b1aa-e15257288c3f Ancestors: VMMaker.oscog-eem.2436
StackInterpreter: Fix signature of reapAndResetErrorCodeTo:header: to leiminate warnings.
Slang: Fix a slip in type inference. Named constants have types too.
=============== Diff against VMMaker.oscog-eem.2436 ===============
Item was changed: ----- Method: CCodeGenerator>>typeOfVariable: (in category 'C code generator') ----- typeOfVariable: varName "<String>" self assert: varName isString. scopeStack reverseDo: [:dict| (dict includesKey: varName) ifTrue: [^self extractTypeFor: varName fromDeclaration: (dict at: varName)]]. + (variableDeclarations + at: varName + ifAbsent: + [apiVariables + ifNotNil: [apiVariables at: varName ifAbsent: []] + ifNil: []]) ifNotNil: + [:decl| ^self extractTypeFor: varName fromDeclaration: decl]. + ^(constants at: varName ifAbsent: []) ifNotNil: + [:const| + const value isInteger + ifTrue: [#sqInt] + ifFalse: + [const value isFloat ifTrue: + [#double]]]! - ^self - extractTypeFor: varName - fromDeclaration: (variableDeclarations - at: varName - ifAbsent: - [apiVariables - ifNotNil: [apiVariables at: varName ifAbsent: [^nil]] - ifNil: [^nil]])!
Item was changed: ----- Method: StackInterpreter>>reapAndResetErrorCodeTo:header: (in category 'primitive support') ----- reapAndResetErrorCodeTo: theSP header: methodHeader "Assuming the primFailCode is non-zero, check if the method consumes the error code and if so, assign it through theSP. Then zero the primFailCode. This is infrequent code, so keep it out of the common path." + <var: 'theSP' type: #'char *'> <inline: #never> | initialPC | self assert: primFailCode ~= 0. initialPC := (self initialIPForHeader: methodHeader method: newMethod) + (self sizeOfCallPrimitiveBytecode: methodHeader). (objectMemory byteAt: initialPC) = (self longStoreBytecodeForHeader: methodHeader) ifTrue: [stackPages longAtPointer: theSP put: self getErrorObjectFromPrimFailCode]. primFailCode := 0!
vm-dev@lists.squeakfoundation.org