freenode/#clasp - IRC Chatlog
Search
15:33:02
Bike
currently about 700 lines deleted in my branch with no loss of functionality, very good
18:28:28
Bike
here's an obscure question. base-strings get an extra byte allocated so they can be null terminated to work with C. but the non-null-terminated length is what's stored in the GCArray_moveable. will having the wrong length mess up the GC? for example, if the object needs to be moved, won't it not move the null terminator?
18:55:02
drmeister
Bike: The object has a separate slot to store the capacity of the object. I certain that the capacity is always large enough to contain the extra \0
19:01:50
Bike
make_static_vector didn't seem to indicate staticness to the low level allocation stuff, so i cargo culted some code to do that
19:02:03
drmeister
https://github.com/clasp-developers/clasp/blob/dev/include/clasp/gctools/gcstring.h#L47
19:04:50
Bike
https://github.com/clasp-developers/clasp/blob/dev/src/core/array.cc#L2557 this has just true instead of 0, NULL, true
19:05:11
Bike
and i don't even know how that's working since SimpleBaseString_O::make takes a size_t, not a bool. i guess it's implicit converting, as C++ is wont to do
19:13:21
drmeister
Oh - good catch. Yeah - C++ was implicitly converting that bool to a size_t (maybe 1?) Bleh - could you fix that and check if there are any others like that.
19:14:35
Bike
the one where it's really different is complex vectors, because some of them have make_vector instead of make for some reason
19:15:57
Bike
i think i'm going to try doing the variadic template thing so that make just passes its arguments transparently to the gc allocation stuff, when possible