VM crash using #markReadOnly (9.1)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: VM crash using #markReadOnly (9.1)

Seth Berman
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.
12