mighty-gerbils / gerbil

Gerbil Scheme
https://cons.io
GNU Lesser General Public License v2.1
1.16k stars 111 forks source link

multicore? #66

Open xificurC opened 6 years ago

xificurC commented 6 years ago

Hi, reading through the docs I don't see if the concurrency primitives map to single core userspace threads or if there's support for multicore, or even m:n threading? Gambit docs mentioned the threads are single-core so I guess the same is true here? Either way making it clear in the docs would be nice :)

vyzo commented 6 years ago

There is experimental support for M:N threading in Gambit v4.8.9 (enabled with --enable-smp --enable-multiple-threaded-vms), and Gerbil supports it out of the box in v0.12.

Feel free to experiment with it, but be advised that it is work in progress with known crash bugs (see https://github.com/gambit/gambit/issues/327). We expect it to mature during this Gambit release cycle and eventually become the default, probably for Gambit v5.

xificurC commented 6 years ago

What does out of the box mean? Gambit should be built with this configuration for gerbil to have it? I'm not sure what is the relation between gambit and gerbil - is gerbil code compiled with gsc in the end? Pardon the stupid questions, I'm reading too much in too little time and probably missing things that you already wrote down..

vyzo commented 6 years ago

What does out of the box mean?

Out of the box means that the Gerbil runtime and compiler recognize the Gambit SMP runtime and enable smp-specific code to support it (there are a few places where this matters for low level thread primitives) . No user action is required.

Gambit should be built with this configuration for gerbil to have it?

Yes, Gambit should be built with --enable-smp --enable-multiple-threaded-vms to have it, it's not enabled by default.

I'm not sure what is the relation between gambit and gerbil - is gerbil code compiled with gsc in the end?

Yes, the Gerbil compiler emits (Gambit-specific) Scheme code in the end, which is then compiled with gsc. As for the relationship between Gerbil and Gambit, you can think of Gerbil as the top half and Gambit as the bottom half of the system.

vyzo commented 1 year ago

It's coming Gerbil V1.0; stay tuned.