The Trunk: EToys-nice.116.mcz

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

The Trunk: EToys-nice.116.mcz

commits-2
Nicolas Cellier uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-nice.116.mcz

==================== Summary ====================

Name: EToys-nice.116
Author: nice
Time: 16 December 2013, 3:57:08.611 pm
UUID: 95b95062-8e45-4262-b5b8-afea43dfb898
Ancestors: EToys-fbs.115

Use non logging Compiler protocol rather than providing a logged: false argument.

=============== Diff against EToys-fbs.115 ===============

Item was changed:
  ----- Method: ButtonProperties>>setArguments (in category 'menu') -----
  setArguments
 
  | s newArgs newArgsArray |
  s := WriteStream on: ''.
  arguments do: [:arg | arg printOn: s. s nextPutAll: '. '].
  newArgs := UIManager default
  request:
  'Please type the arguments to be sent to the target
  when this button is pressed separated by periods' translated
  initialAnswer: s contents.
  newArgs isEmpty ifFalse: [
+ newArgsArray := Compiler evaluate: '{', newArgs, '}' for: self.
- newArgsArray := Compiler evaluate: '{', newArgs, '}' for: self logged: false.
  self arguments: newArgsArray].
  !

Item was changed:
  ----- Method: KedamaVectorizer>>checkRequireVectorIn:for: (in category 'private') -----
  checkRequireVectorIn: aMessageNode for: obj
 
  | players playersSet playerNodes |
  "self halt."
  playerNodes := self getAllPlayersIn: aMessageNode for: obj.
+ players := playerNodes collect: [:e | Compiler evaluate: e name for: obj.].
- players := playerNodes collect: [:e | Compiler evaluate: e name for: obj logged: false.].
  playersSet := players asSet.
  (playersSet select: [:e | e isPrototypeTurtlePlayer]) size = 0 ifTrue: [
+ attributes setAttribute: #firstTurtle of: aMessageNode to: (Compiler evaluate: playerNodes first name for: obj).
- attributes setAttribute: #firstTurtle of: aMessageNode to: (Compiler evaluate: playerNodes first name for: obj logged: false).
  attributes setAttribute: #requireVector of: aMessageNode to: false.
  ^ self.
  ].
  (playersSet select: [:e | e isPrototypeTurtlePlayer]) size > 0 ifTrue: [
  playerNodes with: players do: [:n :p | | sel |
  p isPrototypeTurtlePlayer ifTrue: [
  sel := self getSelectorRootFor: p fromMessageNode: aMessageNode for: obj ignoreSelectors: #(beNotZero: setTurtleCount: getTurtleCount setGrouped: getGrouped).
  sel ifNotNil: [
  (self isVectorizationRequiredWithPlayer: p andSelector: sel) ifTrue: [
  attributes setAttribute: #requireVector of: aMessageNode to: true.
  attributes setAttribute: #firstTurtle of: aMessageNode to: p.
  attributes setAttribute: #firstNode of: aMessageNode to: n.
  ^ self.
  ].
  ].
  ].
  ].
  ].
 
  attributes setAttribute: #firstTurtle of: aMessageNode to: players first.
  attributes setAttribute: #requireVector of: aMessageNode to: false.
  !

Item was changed:
  ----- Method: KedamaVectorizer>>getPlayersMessage:for:into: (in category 'player and selector look up') -----
  getPlayersMessage: aMessageNode for: obj into: aCollection
 
 
  ((Array with: aMessageNode receiver), aMessageNode arguments) do: [:stmt | | thisPlayer |
  (stmt isMemberOf: MessageNode) ifTrue: [
  self getPlayersMessage: stmt for: obj into: aCollection.
  ].
  (stmt isMemberOf: BlockNode) ifTrue: [
  self getPlayersBlock: stmt for: obj into: aCollection..
  ].
  (stmt isMemberOf: VariableNode) ifTrue: [
+ thisPlayer := Compiler evaluate: stmt name for: obj.
- thisPlayer := Compiler evaluate: stmt name for: obj logged: false.
  (thisPlayer isKindOf: Player) ifTrue: [aCollection add: stmt].
  ].
  ].
  !

Item was changed:
  ----- Method: KedamaVectorizer>>getSelectorFor:fromMessageNode:for:ifFoundDo:ignoreSelectors: (in category 'player and selector look up') -----
  getSelectorFor: receiver fromMessageNode: aMessageNode for: obj ifFoundDo: aBlock ignoreSelectors: ignoreSelectors
 
 
  root ifNotNil: [^ self].
  (Array with: aMessageNode receiver), aMessageNode arguments do: [:stmt | | key thisPlayer |
  (stmt isMemberOf: VariableNode) ifTrue: [
+ thisPlayer := Compiler evaluate: stmt name for: obj.
- thisPlayer := Compiler evaluate: stmt name for: obj logged: false.
  thisPlayer == receiver ifTrue: [
  key :=  aMessageNode selector key.
  (ignoreSelectors includes: key) ifFalse: [aBlock value: key. ^ self]].
  ].
  (stmt isMemberOf: MessageNode) ifTrue: [
  self getSelectorFor: receiver fromMessageNode: stmt for: obj ifFoundDo: aBlock ignoreSelectors: ignoreSelectors
  ].
  (stmt isMemberOf: BlockNode) ifTrue: [
  self getSelectorFor: receiver fromBlockNode: stmt for: obj ifFoundDo: aBlock ignoreSelectors: ignoreSelectors
  ].
  ].
  !

Item was changed:
  ----- Method: KedamaVectorizer>>includesTurtlePlayer:for: (in category 'entry point') -----
  includesTurtlePlayer: aMethodNode for: obj
 
  | players |
  players := self getAllPlayersInMethodNode: aMethodNode for: obj.
  players do: [:e | | p |
+ p := Compiler evaluate: e name for: obj.
- p := Compiler evaluate: e name for: obj logged: false.
  (p isKindOf: KedamaExamplerPlayer) ifTrue: [^ true].
  ].
  ^ false.
  !

Item was changed:
  ----- Method: KedamaVectorizer>>traverseMessage:in:firstPlayer:inCondition: (in category 'vectorization attribute calculation') -----
  traverseMessage: aMessageNode in: obj firstPlayer: firstPlayer inCondition: inCondition
 
  | receiver thisPlayer ret constant proto |
 
  aMessageNode arguments do: [:argument |
  (argument isMemberOf: MessageNode) ifTrue: [
  self traverseMessage: argument in: obj firstPlayer: firstPlayer inCondition: inCondition.
  ].
  (argument isMemberOf: BlockNode) ifTrue: [
  self traverseBlock: argument in: obj firstPlayer: firstPlayer inCondition: inCondition.
  ].
  (argument isMemberOf: LiteralNode) ifTrue: [
  attributes setAttribute: #constant of: argument to: true.
  ].
  (argument isMemberOf: VariableNode) ifTrue: [
+ thisPlayer := Compiler evaluate: argument name for: obj.
- thisPlayer := Compiler evaluate: argument name for: obj logged: false.
  ret := (thisPlayer isKindOf: Player) and: [thisPlayer costume renderedMorph isKindOf: KedamaPatchMorph].
  attributes setAttribute: #constant of: argument to: ret.
  ].
  ].
 
  receiver := aMessageNode receiver.
  (receiver isMemberOf: MessageNode) ifTrue: [
  self traverseMessage: receiver in: obj firstPlayer: firstPlayer inCondition: inCondition.
  ].
  (receiver isMemberOf: BlockNode) ifTrue: [
  self traverseBlock: receiver in: obj firstPlayer: firstPlayer inCondition: inCondition.
  ].
  (receiver isMemberOf: LiteralNode) ifTrue: [
  attributes setAttribute: #constant of: receiver to: true.
  ].
  (receiver isMemberOf: VariableNode) ifTrue: [
+ thisPlayer := Compiler evaluate: receiver name for: obj.
- thisPlayer := Compiler evaluate: receiver name for: obj logged: false.
  ret := thisPlayer == firstPlayer.
  attributes setAttribute: #constant of: receiver to: ret.
  proto := (thisPlayer isKindOf: Player) and: [thisPlayer isPrototypeTurtlePlayer].
  attributes setAttribute: #isTurtle of: receiver to: proto.
  attributes setAttribute: #scalar of: aMessageNode selector to:
  (ret not and: [(proto and: [self isScalarizable: thisPlayer andSelector: aMessageNode selector key])]).
  ].
 
  "special cases..."
  (#(atRandom die getReplicated bounceOn: bounceOn:color: bounceOnColor: ifTrue: ifFalse: ifTrue:ifFalse: itFalse:ifTrue:
  setPatchValueIn:to: getTurtleAt: getTurtleOf:) includes: aMessageNode selector key) ifTrue: [
  attributes setAttribute: #constant of: aMessageNode to: false.
  aMessageNode selector key = #die ifTrue: [
  attributes setAttribute: #dieMessage of: root to: true.
  ].
 
  ] ifFalse: [
  constant := (aMessageNode arguments copyWith: receiver) allSatisfy: [:t | attributes getAttribute: #constant of: t].
  attributes setAttribute: #constant of: aMessageNode to: constant.
  ].
 
  !

Item was changed:
  ----- Method: PhraseTileMorph>>try (in category 'miscellaneous') -----
  try
  "Evaluate the given phrase once"
 
  | aPlayer |
  (userScriptSelector notNil and: [userScriptSelector numArgs = 0])
  ifTrue:
  [aPlayer := self objectViewed player.
  aPlayer triggerScript: userScriptSelector]
  ifFalse:
  [Compiler evaluate:
  self codeString
+ for: self associatedPlayer]!
- for: self associatedPlayer
- logged: false]!

Item was changed:
  ----- Method: SyntaxMorph>>actualObject (in category 'accessing') -----
  actualObject
  | sub |
  "Who is self in these tiles?  Usually a Player."
 
 
  (self nodeClassIs: LiteralVariableNode) ifTrue: [
  (sub := self findA: StringMorph) ifNil: [^ nil].
  "Need to decompile here for odd synonyms of 'self' ?"
+ ^ Compiler evaluate: sub contents for: Player].
- ^ Compiler evaluate: sub contents for: Player logged: false].
 
  (self nodeClassIs: VariableNode) ifTrue: [
  (sub := self findA: StringMorph) ifNil: [^ nil].
  ^ References at: (self cleanUpString: sub) asSymbol ifAbsent: [nil]].
 
  (self nodeClassIs: LiteralNode) ifTrue: [
  (sub := self findA: StringMorph) ifNil: [^ nil].
+ ^ Compiler evaluate: sub contents for: nil].
- ^ Compiler evaluate: sub contents for: nil logged: false].
 
  (sub := self findA: SyntaxMorph) ifNil: [^ nil].
  ^ sub actualObject "receiver"!

Item was changed:
  ----- Method: SyntaxMorph>>try (in category 'layout') -----
  try
  "Evaluate me once"
 
  (#(MessageNode LiteralNode VariableNode) includes: parseNode class name)
  ifFalse: [^ Error new].
  ^ [Compiler evaluate: self decompile
+ for: self actualObject. "should do something to the player"
- for: self actualObject
- logged: false. "should do something to the player"
  ] ifError: [ :a :b | Error new].!