0x7CFE / llst

LLVM powered Little Smalltalk.
Other
93 stars 10 forks source link

Research possibility of VM threading #57

Open 0x7CFE opened 10 years ago

0x7CFE commented 10 years ago

Current implementation of our VM is single threaded. LLVM itself supports the multithreading environment. However, bringing threads to VM is not so easy.

The following questions are to be answered:

Nevertheless, multithreaded object environment appears to be very interesting. Smalltalk have very convenient design. Each and every object in the system interacts only by sending messages and receiving them. All memory accesses are bound in the messages and completely local to methods enclosing them. We have no pointers and unsafe memory operations.

Message sending procedure may transparently be converted to a remove call or call to an object from the thread nearby. Sender is completely unaware of the actual message receiver and that makes the point.

We may even think about transparent object migration from thread to thread to localize working sets, thus achieving better performance and load balancing.