[squeak-dev] The Trunk: 60Deprecated-eem.11.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Mar 14 20:05:13 UTC 2018


Eliot Miranda uploaded a new version of 60Deprecated to project The Trunk:
http://source.squeak.org/trunk/60Deprecated-eem.11.mcz

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

Name: 60Deprecated-eem.11
Author: eem
Time: 14 March 2018, 1:05:01.238687 pm
UUID: 7e7e2a88-f600-48af-80f7-810bd65a2025
Ancestors: 60Deprecated-mt.10

Deprecate the old literal-in-bytecode scanning machinery given the new multiple bytecode set aware literal scanning machinery.

=============== Diff against 60Deprecated-mt.10 ===============

Item was added:
+ ----- Method: Behavior>>thoroughWhichSelectorsReferTo:special:byte: (in category '*60Deprecated-testing method dictionary') -----
+ thoroughWhichSelectorsReferTo: literal special: specialFlag byte: specialByte
+ 	"Answer a set of selectors whose methods access the argument as a 
+ 	literal. Dives into the compact literal notation, making it slow but 
+ 	thorough "
+ 
+ 	self deprecated: 'Use whichSelectorsReferTo:thorough: instead'.
+ 	^self whichSelectorsReferTo: literal special: specialFlag byte: specialByte thorough: true!

Item was added:
+ ----- Method: Behavior>>whichSelectorsReferTo:special:byte: (in category '*60Deprecated-testing method dictionary') -----
+ whichSelectorsReferTo: literal special: specialFlag byte: specialByte
+ 	"Answer a set of selectors whose methods access the argument as a literal."
+ 
+ 	self deprecated: 'Use whichSelectorsReferTo: instead'.
+ 	^self whichSelectorsReferTo: literal special: specialFlag byte: specialByte thorough: false!

Item was added:
+ ----- Method: Behavior>>whichSelectorsReferTo:special:byte:thorough: (in category '*60Deprecated-testing method dictionary') -----
+ whichSelectorsReferTo: literal special: specialFlag byte: specialByte thorough: thorough
+ 	"Answer a set of selectors whose methods access the argument as a literal. If thorough is true, then dives into the compact literal notation, making it slow but thorough "
+ 
+ 	| who |
+ 	self deprecated: 'Use whichSelectorsReferTo:thorough: instead'.
+ 	who := IdentitySet new.
+ 	self selectorsAndMethodsDo: [ :selector :method |
+ 		(((thorough
+ 			ifFalse: [ method hasLiteral: literal ]
+ 			ifTrue: [ method hasLiteralThorough: literal ]) or: [
+ 				specialFlag and: [ method scanFor: specialByte ] ]) and: [
+ 			literal isVariableBinding not or: [
+ 				"N.B. (method indexOfLiteral: literal) < method numLiterals copes with l;ooking for
+ 				Float bindingOf: #NaN, since (Float bindingOf: #NaN) ~= (Float bindingOf: #NaN)."
+ 				(method indexOfLiteral: literal) ~= 0] ]) ifTrue: [
+ 			who add: selector ] ].
+ 	^who!

Item was added:
+ ----- Method: SmalltalkImage>>hasSpecialSelector:ifTrueSetByte: (in category '*60Deprecated-special objects') -----
+ hasSpecialSelector: aLiteral ifTrueSetByte: aBlock
+ 
+ 	self deprecated: 'Use BytecodeEncoder class>>scanBlockOrNilForLiteral:'.
+ 	1 to: self specialSelectorSize do:
+ 		[:index | 
+ 		(self specialSelectorAt: index) == aLiteral
+ 			ifTrue: [aBlock value: index + 16rAF. ^true]].
+ 	^false!



More information about the Squeak-dev mailing list