Hacker News new | ask | show | jobs
by needusername 4154 days ago
> Last I checked, they used green threads and there weren't any plans to add true multi-threading.

That is correct. My understanding is that supporting multiple hardware threads would require major work in the VM and the development of a memory model. There's some quite critical code in there relies on certain things not being a point for a possible context switch.

1 comments

Isn't that a big setback for adoption though? The world is moving to multiple-cores, albeit slowly.
It's hard to tell. If you compare yourself with traditional scripting languages like CRuby, CPython, JavaScript, Perl, PHP, Lua, … — they all use green threads as well. If you compare yourself to C++, C#, Java then things look differently.

It's probably a bigger issue for the commercial Smalltalk vendors. I would assume for a free, open source project this can be "forgiven" more easily.

> It's hard to tell. If you compare yourself with traditional scripting languages like CRuby, CPython, JavaScript, Perl, PHP, Lua, … — they all use green threads as well.

"CRuby" (MRI) since 1.9 and "CPython" (forever, as far as I know) use native threads with a global runtime lock so only one thread running Ruby/Python code (but possibly more running native code in the same process) runs at any given time.

AFAIK, most JS environments don't provide threads (green or otherwise).