> 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.
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).
It is true that you can fork in Smalltalk. It is not true that such a fork results in multiple cores being used by the same VM concurrently. At least not in any of the "mainstream" Smalltalk implementations I know (which would be Squeak, Pharo and VisualWorks).