VM Maker: VMMaker.oscog-eem.2437.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2437.mcz

commits-2
 
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!