[racket] OS threads, parallel-map, etc.
Recently I started to wonder why Racket has futures and now also places
but so far lacks traditional OS-level threads and parallel-map,
parallel-for-each, parallel-sort, parallel-filter, for/parallel and the
likes for sequences.
It seems to me that such sequence functions could even choose their
optimal implementation automatically based on the number of available
cores (and perhaps also generic benchmarks/heuristics). I've taken a
look at my code and have found practically no examples where a parallel
version wouldn't work because of order or side-effects; so using
parallel sequence traversals could be an easy "find&replace" way to
speed things up a bit. AFAIK, these functions cannot be implemented in
general on the basis of futures because of the (sort of mysterious)
fast/slow path distinction, right?
Is there a problem with the GC or what else is the reason why these
operations are not available? Are they planned for the future?
It's not a criticism...I'm happy with Racket as is, just asking out of
curiosity.
Best,
Erich