The Trunk: System-ul.940.mcz

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

The Trunk: System-ul.940.mcz

commits-2
Levente Uzonyi uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ul.940.mcz

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

Name: System-ul.940
Author: ul
Time: 21 March 2017, 6:55:02.32896 pm
UUID: bb942b8d-8893-42f6-b10f-ba058fbda68c
Ancestors: System-ul.939

- SmalltalkImage >> #specialSelectors returns the raw array used by the VM
- introduced SmalltalkImage >> #specialSelectorNames, which returns just the names of the special selectors without their argument count

=============== Diff against System-ul.939 ===============

Item was added:
+ ----- Method: SmalltalkImage>>specialSelectorNames (in category 'special objects') -----
+ specialSelectorNames
+ "Return a collection with the names of the special selectors."
+
+ | arrayOfPairs |
+ arrayOfPairs := self specialSelectors.
+ ^Array new: arrayOfPairs size // 2 streamContents: [ :stream |
+ arrayOfPairs pairsDo: [ :selector :numArgs |
+ stream nextPut: selector ] ]
+ !

Item was changed:
  ----- Method: SmalltalkImage>>specialSelectors (in category 'special objects') -----
  specialSelectors
+ "Return an array with flattened special selector - argument count pairs. VMMaker relies on this."
 
+ ^self specialObjectsArray at: 24!
- | arrayOfPairs |
- arrayOfPairs := self specialObjectsArray at: 24.
- ^Array new: arrayOfPairs size // 2 streamContents: [ :stream |
- arrayOfPairs pairsDo: [ :selector :numArgs |
- stream nextPut: selector ] ]
- !

Item was changed:
  ----- Method: SystemNavigation>>allSentMessagesWithout: (in category 'query') -----
  allSentMessagesWithout: classesAndMessagesPair
  "Answer the set of selectors which are sent somewhere in the system,  
  computed in the absence of the supplied classes and messages."
  | sent absentClasses absentSelectors |
  sent := IdentitySet new: CompiledMethod instanceCount.
  absentClasses := classesAndMessagesPair first.
  absentSelectors := classesAndMessagesPair second.
  "sd 29/04/03"
  Cursor execute showWhile: [
  self environment allClassesAndTraitsDo: [:cls |
  ((absentClasses includes: cls name)
  ifTrue: [{}]
  ifFalse: [{cls. cls classSide}])
  do: [:each | (absentSelectors isEmpty
  ifTrue: [each selectors]
  ifFalse: [each selectors copyWithoutAll: absentSelectors])
  do: [:sel | "Include all sels, but not if sent by self"
  (each compiledMethodAt: sel) literalsDo: [:m |
  (m isSymbol)
  ifTrue: ["might be sent"
  m == sel
  ifFalse: [sent add: m]].
  (m isMemberOf: Array)
  ifTrue: ["might be performed"
  m
  do: [:x | (x isSymbol)
  ifTrue: [x == sel
  ifFalse: [sent add: x]]]]]]]]].
  "The following may be sent without being in any literal frame"
+ Smalltalk specialSelectorNames do: [:sel | sent add: sel].
- Smalltalk specialSelectors do: [:sel | sent add: sel].
  Smalltalk presumedSentMessages do: [:sel | sent add: sel].
  ^ sent.!