CLASP for MPS; multithreading & GC questions

meister meister at temple.edu
Thu Dec 21 17:40:29 UTC 2017


Basile,

Object scanning happens here:
https://github.com/drmeister/clasp/blob/master/src/gctools/gc_interface.cc#L403

Object formats are calculated using a static analyzer that I wrote within Clasp that analyzes the 250,000 lines of C++ code and identifies offsets of pointers for about 750 C++ classes.

Root scanning happens here:

https://github.com/drmeister/clasp/blob/master/src/gctools/gc_interface.cc#L562

Best,

.Chris.



> On Dec 21, 2017, at 11:50 AM, Basile Starynkevitch <basile at starynkevitch.net> wrote:
> 
> 
> Thanks to Chris, I managed to compile CLASP for MPS.
> 
> I have a question about MPS scanning. MPS folks (Gareth, in CC) told me that the scanning routine (see https://www.ravenbrook.com/project/mps/master/manual/html/topic/scanning.html for more) is called asynchronously, even from some SIGSEGV signal handler.
> 
> How do you manage that in CLASP?
> 
> A concrete use case might be some std::set of Common Lisp symbols. How would you scan it? You cannot expect the scanning routine to get that std::set in a coherent state .... so using C++ iterators could break things.
> 
> Any concrete code pointer to CLASP source (or generated C++) code for scanning is welcome!
> 
> Regards.
> 
> -- 
> Basile STARYNKEVITCH   == http://starynkevitch.net/Basile
> opinions are mine only - les opinions sont seulement miennes
> Bourg La Reine, France
> 




More information about the clasp-devel mailing list