4 ms·
And aside from the JVM implementations and some works in progress the last time I checked, the only one with native instead of green threading.
by hga 11y ago
And aside from the JVM implementations and some works in progress the last time I checked, the only one with native instead of green threading.
- dfox 11y agoWell, dfsch is currently not work in progress, because there is no meaningful progress :) But it was originally intended as scheme interpreter with native threading without GIL. Last version has GIL-style global lock, but interpreter threads can run user code without ever acquiring that lock. (In essence: the lock protect structures that cannot be proven to not be shared between threads, which are not required to interpret output of dfsch's compiler for most inputs)
- davexunit 11y agoGNU Guile has pthreads.
- groovy2shoes 11y agoI know Gauche uses pthreads because I got a linker error about it one time ;) Also, does Gambit not support native threads? That's surprising considering Marc Feeley did quite a bit of research on multiprocessing in Scheme, and he wrote the SRFI for threads.
- jbclements 11y agoRacket has native threads, called "places".
- hga 11y agoNot in the shared memory way I mean (which I did not make clear), per http://docs.racket-lang.org/guide/parallelism.html http://docs.racket-lang.org/guide/parallelism.html The racket/place library provides support for performance improvement through parallelism with the place form. The place form creates a place, which is effectively a new Racket instance that can run in parallel to other places, including the initial place. The full power of the Racket language is available at each place, but places can communicate only through message passing—using the place-channel-put and place-channel-get functions on a limited set of values—which helps ensure the safety and independence of parallel computations. Compare to current Guile, where the documentation says sharing a hash table without using a mutex will not corrupt memory, but probably won't give you the results you desire.