freenode/#clasp - IRC Chatlog
Search
14:40:36
drmeister
https://github.com/clasp-developers/clasp/blob/imagesaveload/src/core/print.cc#L252
14:41:49
drmeister
So it should fall back and use the _GlobalValue but it's indexing into thread local value vector at index 0xffffffff
14:42:09
Bike
i think there's a distinguished "doesn't yet have an index" value that _BindingIdx should be
14:42:49
Bike
each thread has an array of bindings, and each symbol has a global index. when you bind a variable, the thread looks up the symbol's index, or assigns a new one to it globally and atomically, and then accesses that position in the thread lcoal array
14:43:35
drmeister
https://github.com/clasp-developers/clasp/blob/imagesaveload/include/clasp/core/arguments.h#L130
14:43:59
Bike
https://github.com/clasp-developers/clasp/blob/imagesaveload/src/gctools/threadlocal.cc#L77-L78 yeah, this thing, NO_THREAD_LOCAL_BINDINGS
14:44:12
drmeister
Yeah - the assigning it a new one - I don't see any tests for that - it seems to assume that it has a valid thread local _BindingIdx
14:46:17
Bike
DSM there calls threadLocalSymbolValue, which calls thread_local_value, which calls ensure_binding_index
14:47:10
Bike
https://github.com/clasp-developers/clasp/blob/imagesaveload/include/clasp/core/symbol.h#L114-L118 here it looks like you release the binding index but you don't actually change the symbol's BindingIdx?
14:50:57
drmeister
I'm starting up clasp in a weird state - I load the image into a clasp that hasn't been initialized like we normally do.