I just looked at Boehm and according to this [SO 
post](https://stackoverflow.com/questions/4796379/how-does-boehm-gc-work-for-c-program),
 it doesn't perform any compaction or reference moving (although the Wikipedia 
page said that it can if integrated fully).

I do realize that the binary trees benchmark is kind of a worse-case scenario 
for the ARC/ORC approach, and that there are ways to make it much faster, but I 
thought that having a Java-like GC with Nim's use of value types would be even 
better since you can still get the advantage of value types with the advantages 
of a high throughput GC for batch processing.

I was looking at Rust a while back and I think it introduced a `Pin` concept to 
ensure that memory doesn't move for cases of C interfacing like you described. 
I'll look at Nim's source code a little bit more, but it doesn't look like it 
setup for moving references at all. If I feel particularly motivated maybe I'll 
try to modify it and experiment :)

Thanks for your response! 

Reply via email to