Hello Hans-Martin,
From what we saw, it did end up just impacting those special primitives in the way we described.
In addition to correcting it in the vm, we have added a "-fix-65876" command line arg to our convic.exe tool which will correct any existing set of ICs/images.
Once we finalize testing of this, we will come up with a plan for distributing it before the next release.
Thanks again for reporting this.
- Seth
On Monday, April 6, 2020 at 11:59:31 AM UTC-4, Hans-Martin Mosner wrote:
Here's a short snippet that should do it.
It looks like normal methods aren't effected, only compact methods, so this only checks for primitive 194.
System allClasses do: [:cls |
(Array with: cls with: cls class) do: [:behavior |
| affected |
affected := behavior methodDictionary values select: [:meth | meth isPrimitive and: [meth primitiveNumber = 194 and: [(meth bytecodes at: 6) = 4]]].
affected do: [:each |
| method |
method := behavior regenerate: each.
method == each ifFalse: [behavior addCompiledMethod: method]]]]
--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
[hidden email].
To view this discussion on the web visit
https://groups.google.com/d/msgid/va-smalltalk/d6ccc921-664a-41b2-bc24-ee64389f9ee9%40googlegroups.com.