freenode/#clasp - IRC Chatlog
Search
22:21:44
drmeister
With live objects I can tell what kind they are (general|cons|weak) based on the header stamp_wtag_mtag.
22:24:25
drmeister
These consist of two parallel vectors. A weak link vector (keys) and a strong link vector (values)
22:28:46
drmeister
I'm fixing a "dependent" tagged pointer and the object that it points too was a weak object but it's been moved into the image save buffer and there is a forwarding pointer at the address client-8
22:29:38
drmeister
However, the "dependent" pointer has a general tag and so when guards are enabled it thinks the header is at client-48
22:30:28
drmeister
Yeah - I haven't gone meta yet and asked myself - should we be saving weak key hash tables?
22:31:53
drmeister
Anyway, they shouldn't be a problem - but I'm running into this problem when I have guard headers turned on.
22:31:57
Bike
i don't think just dropping objects (such as hash tables) would be good, and we probably want finalizers to persist as well, in general
22:32:12
drmeister
I like guard headers - they really help with debugging - I'm using them now in fact.
22:32:46
drmeister
So now because guard headers on general objects are a different size than headers on weak objects I've hit a snag.
22:36:33
drmeister
I'm using the same forwarding machinery for image save/load that MPS uses for moving garbage collection. I don't need to do that. I could write the forwarding pointer at client-8bytes all the time.
23:56:04
drmeister
You have some weird ass memory containing bad value problem? Run it under udb and then set a watch point on the address and 'reverse-continue' to wherever the value was changed
0:49:57
Bike
the asterisk apparently means that it's an absolute address, rather than relative to IP
0:50:41
drmeister
Ah - that's helpful - thank you. I missed the absolute vs relative thing. Absolute makes sense.