freenode/#sicl - IRC Chatlog
Search
9:15:35
heisig
Especially to compare how long it takes to allocate on the stack vs. how long it takes to allocate on the heap. Will there even be a difference?
9:16:57
no-defun-allowed
most of the time nurseries are done as copying gcs, which most of the time just bump a pointer
9:17:13
no-defun-allowed
well, all copying gcs bump pointers to allocate, my bad, but i'll check sicl.pdf for the spec
9:17:20
heisig
The other thing is how expensive it is to have write barriers to the global heap. Not sure how that plays out.
9:18:17
no-defun-allowed
okay, the sicl nursery will use a "sliding" collector but it also seems to be a pointer bumping scheme
9:20:34
heisig
I know. If I understand correctly, the pointer bumping does not even need to be atomic. So the total overhead of consing is just a (correctly predicted) branch.
9:22:03
beach
Also, promotion is more precise that in most copying collectors, and the effect of that feature is hard to measure or even predict.
9:24:21
beach
In most copying collectors, promotion is a result of surviving a nursery collection, but then there is a certain probability that newly allocated objects will be promoted, even though it is very likely that they will die young.
9:25:27
Shinmera
beach: I don't see how you can do an array size increase with just a CAS. What about the case where one thread is in the process of copying the array to increase its size, but then another comes in and sets an element in the old array?
9:26:07
beach
Shinmera: I can't correct incorrect programming. All I can do is to make it thread sae.
9:27:33
Shinmera
There are techniques for lock-free adjustable vectors. Part of that is needed for a lock-free hash table that I was working on implementing at one point (before I got distracted)
16:07:56
beach
shka_: Are you asking which one of the existing published strategies he is planning to use?
16:12:17
Shinmera
As far as I understood things when I looked into it, Cliff's was the only one that was truly lock-free in every operation