So I tried and it worked.
In Opal to remove the usage of #==, I removed it from the special selector array in the method:
IRBytecodeGenerator class>>specialSelectorsArray
^ #(#+ 1 #- 1 #< 1 #> 1 #<= 1 #>= 1 #= 1 #~= 1 #* 1 #/ 1 #\\ 1 #@ 1 #bitShift: 1 #// 1 #bitAnd: 1 #bitOr: 1 #at: 1 #at:put: 2 #size 0 #next 0 #nextPut: 1 #atEnd 0 #== 1 nil 0 #blockCopy: 1 #value 0 #value: 1 #do: 1 #new 0 #new: 1 #x 0 #y 0)
Then I ran:
IRBytecodeGenerator initialize.
OpalCompiler recompileAll.
Then in my example:
A>>==
� � ^ true
a == b� answered true, so it worked.
I don't like all these messages with no lookup. I don't even know if this permits to earn performance now that we have inline caches.
@Frank Shearar
Just a detail, #timesRepeat: is not inlined any more by default in Pharo 3.0 because there were conflicts with a stream library. Anyway it didn't provide a lot of performance (just removed 1 indirection).�