Basile,
Object scanning happens here: https://github.com/drmeister/clasp/blob/master/src/gctools/gc_interface.cc#L...
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#L...
Best,
.Chris.
On Dec 21, 2017, at 11:50 AM, Basile Starynkevitch basile@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.htm... 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