Sorry, I forgot to mention - to actually produce the error you have to run the Squek image: ./rsqueak images/Squeak4.5-noBitBlt.image Best, Anton 2014-08-05 18:24 GMT+02:00 Anton Gulenko <anton.gulenko@googlemail.com>:
Hi Armin,
I made a refactoring that makes sure that the virtualizable list is only assigned once, but the issue still persists.
To reproduce this you'd have to build the Vm... Fortunately that's way faster than Pypy ;) The repo: https://bitbucket.org/pypy/lang-smalltalk The relevant branch is 'storage', current revision 1012, commit hash d007ca0 <https://bitbucket.org/pypy/lang-smalltalk/commits/d007ca0a713795be43171273c5...> . The requirements are to have the pypy repo on PYTHONPATH (to load rpython.rlib and so on), and to have rsdl installed. The target file is targetimageloadingsmalltalk.py, so compiling should be something like: $ pypy ../pypy/rpython/bin/rpython -Ojit targetimageloadingsmalltalk.py I am also compiling with --gc=minimark because I had some issues with the default gc.
The virtualizable classes are defined in spyvm/storage_contexts.py. There's the root class ContextPartShadow and two subclasses BlockContextShadow and MethodContextShadow. Both subclasses have a default constructor and static build() methods. It might be enough if you check out the definitions and constructors of those classes?..
Let me know if it doesn't translate or if the code is weird... Thanks for your help! Best, Anton
2014-08-04 16:00 GMT+02:00 Armin Rigo <arigo@tunes.org>:
Hi Anton,
To be sure, I'll try to refactor this and make it impossible for the
On 4 August 2014 14:36, Anton Gulenko <anton.gulenko@googlemail.com> wrote: list to
be reassigned after the constructor is finished. That would satisfy the requirements right?
Yes, at least this one... To be able to help you more if needed, please provide step-by-step instructions about how to reproduce.
Armin