Hi,
for the Pharo Kernel ImageMap job I do something like
m := CompiledMethod allInstances anyOne. 1 to: m basicSize do:[:i | m basicAt:i ].
For previous VMs it worked well without error but now the primitive fails and the SubscriptOutOfBounds error is raised at index 1. Fails on the latest Pharo VM and VM by Eliot r2714.
Cheers, -- Pavel
We had recently the "same" problem. CompiledMethods are dual objects, storing literals (full oops) in the first section and storing bytes in the second part. It does not make sense to read a single byte from an OOPs (and even worse, change a byte)
In short you have to use #header and #literalAt: for the first part and #basicAt: for the byte part.
On 2013-05-26, at 16:34, Pavel Krivanek pavel.krivanek@gmail.com wrote:
Hi,
for the Pharo Kernel ImageMap job I do something like
m := CompiledMethod allInstances anyOne. 1 to: m basicSize do:[:i | m basicAt:i ].
For previous VMs it worked well without error but now the primitive fails and the SubscriptOutOfBounds error is raised at index 1. Fails on the latest Pharo VM and VM by Eliot r2714.
Cheers, -- Pavel
ok, thank you
-- Pavel
On Sun, May 26, 2013 at 4:49 PM, Camillo Bruni camillobruni@gmail.comwrote:
We had recently the "same" problem. CompiledMethods are dual objects, storing literals (full oops) in the first section and storing bytes in the second part. It does not make sense to read a single byte from an OOPs (and even worse, change a byte)
In short you have to use #header and #literalAt: for the first part and #basicAt: for the byte part.
On 2013-05-26, at 16:34, Pavel Krivanek pavel.krivanek@gmail.com wrote:
Hi,
for the Pharo Kernel ImageMap job I do something like
m := CompiledMethod allInstances anyOne. 1 to: m basicSize do:[:i | m basicAt:i ].
For previous VMs it worked well without error but now the primitive fails and the SubscriptOutOfBounds error is raised at index 1. Fails on the latest Pharo VM and VM by Eliot r2714.
Cheers, -- Pavel
vm-dev@lists.squeakfoundation.org