[Vm-dev] A stab at explaining Spur

Stefan Marr smalltalk at stefan-marr.de
Fri Aug 14 07:51:01 UTC 2015


Hi Clément:

> On 14 Aug 2015, at 08:41, Clément Bera <bera.clement at gmail.com> wrote:
> 
> 2015-08-14 4:29 GMT+02:00 Ryan Macnak <rmacnak at gmail.com>:
> 
>> On Thu, Aug 13, 2015 at 1:19 AM, Clément Bera <bera.clement at gmail.com> wrote:
>> I heard recently that the implementation used by Cincom Smalltalk, splitting the object in 2 (header + fields), is also used in Pypy and the Dart VM as Python and Dart allow the user to add instance variables to objects at runtime which leads to the same problem.

> Objects are not split in the Dart VM, and it does not support adding instance variables or otherwise changing classes at runtime. Objects have a single-word header with a class index, size information and GC bits. Identity hashes are not often used in Dart, so they are kept in a side table.
> 
> And I put "accept" on a paper that was claiming that... Damned. Any clue about Pypy ?

PyPy uses maps ala Self, but objects are not ‘split’.
It is more or less the same as with V8, which also uses maps aka hidden classes.

Best regards
Stefan


-- 
Stefan Marr
Johannes Kepler Universität Linz
http://stefan-marr.de/research/





More information about the Vm-dev mailing list