/racket-loci

Implementation of local and remote loci for Racket

Primary LanguageRacketGNU Lesser General Public License v3.0LGPL-3.0

CI Scribble

racket-loci

Implementation of local and remote loci for Racket.

locus (noun) pl. loci

Definition of locus

  1. the place where something is situated or occurs

from Merriam-Webster Dictionary

This library implements loci, which resemble racket places but do not have the same problematic behaviour as places when used on many-core machines. places are based on OS threads, while loci are based on OS processes. The reason to implement loci is that places do not scale above 12 core machines due to memory allocation locking. More information can be found in the mailing list.

A locus is a distinct racket instance running on a different process communicating via OS pipes. Hopefully there will be more documentation soon... this is still the early stages and this library is not yet usable. Happy to receive questions, comments, complaints and pull requests.

Most of this work was inspired on the implementation of racket places from which ideas and code were copied shamelessly. Thanks to the original authors.

Future Work

  • Implement remote loci