VM Maker: VMMaker-dtl.414.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-dtl.414.mcz

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