The Trunk: 60Deprecated-eem.11.mcz

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

The Trunk: 60Deprecated-eem.11.mcz

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