David T. Lewis uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker-dtl.414.mcz==================== Summary ====================
Name: VMMaker-dtl.414
Author: dtl
Time: 1 March 2020, 6:02:04.091 pm
UUID: ba7b0d94-ec3e-4744-8fff-788c6b31790d
Ancestors: VMMaker-dtl.413
Fix some accumulated breakage in SlangTest. Back out a partial oscog merge by disabling shouldIncludeReceiverAsFirstArgument: test in TSendNode>>argumentsForInliningCodeGenerator: because it is not currently needed and breaks tests. Handle nil args in TSendNode>>printOn:level: to accomodate the hack for oscog cpp compatibility added in VMMaker-dtl.412. Update expectedFailures to identify two tests that document known bugs but for which no fix is available. SlangTest is now green.
=============== Diff against VMMaker-dtl.413 ===============
Item was changed:
+ ----- Method: SlangTest>>expectedFailures (in category 'running') -----
- ----- Method: SlangTest>>expectedFailures (in category 'testing') -----
expectedFailures
+ ^#(
+ testSetInstanceVariableWithAnAccessorMethod . "inliner limitation, enhancement required"
+ testIvarShouldNotBeRedeclaredAsLocal . "test added in VMMaker-dtl.278, fix not yet implemented"
+ testStatementListAsExpression "test added in VMMaker-dtl.386, fix not yet implemented"
+ )!
- ^#( testSetInstanceVariableWithAnAccessorMethod )!
Item was changed:
----- Method: TSendNode>>argumentsForInliningCodeGenerator: (in category 'inlining support') -----
argumentsForInliningCodeGenerator: aCodeGen
+ "^(self shouldIncludeReceiverAsFirstArgument: aCodeGen)
- ^(self shouldIncludeReceiverAsFirstArgument: aCodeGen)
ifTrue: [{receiver}, arguments]
+ ifFalse: [arguments]"
+
+ self flag: #FIXME. "above test not currently required, and breaks SlangTests tests"
+ ^arguments
+ !
- ifFalse: [arguments]!
Item was changed:
----- Method: TSendNode>>printOn:level: (in category 'printing') -----
printOn: aStream level: level
| possiblyParenthesize |
possiblyParenthesize :=
[:node :newLevel|
(node isSend
and: [node selector precedence >= 3]) ifTrue:
[aStream nextPut: $(].
node printOn: aStream level: newLevel.
(node isSend
and: [node selector precedence >= 3]) ifTrue:
[aStream nextPut: $)]].
possiblyParenthesize value: receiver value: level.
arguments size = 0 ifTrue:
[aStream space; nextPutAll: selector.
^self].
selector keywords with: (arguments first: selector numArgs) do:
[:keyword :arg |
+ arg ifNotNil: [
+ aStream space; nextPutAll: keyword; space.
+ possiblyParenthesize value: arg value: level + 1]]!
- aStream space; nextPutAll: keyword; space.
- possiblyParenthesize value: arg value: level + 1]!