freenode/#clasp - IRC Chatlog
Search
15:01:21
drmeister
Hello - clasp with MPS appears pretty stable. I've been working with it for the last day - no crashes that aren't clearly something else.
15:04:07
drmeister
stassats`: I don't want to cut that chord yet. I can build the Boehm version to run the static analyzer to build the MPS version.
15:12:28
Bike
so the way an actual build works is cboehm is built (boehm not requiring any information about the internals of C++ structs), the static analyzer is run in cboehm to analyze the interpreter and maybe llvm source, that information is used to build cmps?
16:06:39
drmeister
Shinmera: That was true until about a month ago - then I enhanced the scraper to assign sorted stamps to exposed C++ classes.
16:07:52
drmeister
So the boehm build doesn't need anything from the static analyzer. The mps build still needs the object layouts/fixable pointer field offsets that can only be obtained from the static analyzer.
16:08:57
drmeister
I was able to simplify the build system by getting rid of the 'boehmdc' build and now the 'boehm' build takes its place.
16:11:09
drmeister
I've wondered this for a long time though - the MPS GC supports (requires) conservative scanning of the stack. Why can't I use this conservative scanner to scan blocks of memory conservatively like the Boehm garbage collector does?
16:12:12
drmeister
The Ravenbrook folks tell me that they have always talked about a "boehm-like mode" for MPS as an easier on-ramp to MPS for programmers - but never implemented it.
16:13:50
drmeister
ACTION is still quite impressed by how robust the Boehm GC has been and how well it has worked for Clasp so far.
16:32:38
beach
And I still don't get the argument that you either need conservative stack scanning, or more registers so that you can dedicate some to immediate data and some to pointers.
16:34:59
stassats`
but you can't have conservative registers and conservative stack because the registers are saved on the stack
16:37:49
stassats`
but if you are interfacing with C++ and want seamless gc, you'll end up using conservative gc
16:40:18
stassats`
what more registers allow -- not needing a dynamic register map, using two stacks, one tagged one untagged
16:46:05
Bike
drmeister: how does one turn on debugging during build again? so that i can see arguments in a backtrace, i mean
16:50:19
drmeister
In bclasp set core::*debug-bclasp* to T in src/lisp/kernel/init.lsp to turn it on globally.
16:51:02
drmeister
# cfg.define("DEBUG_BCLASP_LISP",1) # Generate debugging frames for all bclasp code - like declaim