freenode/#clasp - IRC Chatlog
Search
15:43:54
Bike
i have ext:source-location returning what it ought to, but if i try M-. i get "Containing expression ends prematurely"...
16:17:36
Bike
drmeister: doing peek-char seems to update the result of core:input-stream-source-pos-info. I am confused.
17:16:52
drmeister
Continuing the conversation from yesterday (because I need to tell the Ravenbrook people something).
17:17:25
drmeister
I can't figure out how we use core dumping to build Clasp. We don't GC code - so we can't dump the core.
17:22:50
drmeister
So we JIT code into particular memory locations and then dump that along with the memory? For cclasp - we dump the core at the end of loading inline.lisp rather than compile-filing everything.
17:24:08
drmeister
We have C++ memory that we would need to fix up when we reload that core - but this is a clear plan forward.
17:25:53
drmeister
The Ravenbrook folks do have a way of GC'ing JITted code - they developed it for their other commercial client.
17:34:56
drmeister
So - currently the way we build clasp - compile-filing everything and linking it together into a single fasl/executable has problems that hamper our ability to implement inlining.
17:35:31
drmeister
At startup, these fasl/executables evaluate each toplevel form one at a time and build the environment up that way. It's very modular - but the modularity brings problems.
17:36:25
drmeister
An alternative is to essentially load a full environment into memory and then "dump core".
17:36:51
drmeister
We need GC support for that. We can get it from Ravenbrook. We probably can't get it from Boehm.
17:37:32
Bike
i don't think it's really "modular", the whole problem with inlining is interdependencies
17:38:46
cracauermob
The only quick way here without original research is to switch the GC to from now on collect into one contiguous region
17:39:56
drmeister
Well, the Ravenbrook folks could give us something more sophisticated - we could specify the pools and then they create a serialized version of those pools. At load time the pools could be reconstituted from the serialized version.
17:40:53
drmeister
cracauermob: What you are proposing is straightforward from the point of view of writing the data out to disk.
17:41:36
cracauermob
Unless it is with the sale purpose of adjusting pointer so that you can mmap anywhere