"We have some well tested B-tree" Where can I find the source code for that B-tree implementation?
{% raw %}
"We have some well tested B-tree" Where can I find the source code for that B-tree implementation?
In the btree module of libcollections: https://github.com/rust-lan...
The rendered documentation is here.
There is some discussion on /r/rust, hacker news, and /r/programming.
Love this series of articles! I'm very new to Rust and kernel development, and I've really enjoyed following along and trying to experiment a bit with alternative implementations. In that vein, I ported the inimitable gz's rust-slabmalloc (https://github.com/gz) to run in my implementation of these tutorials: https://github.com/ryanbree...
One potentially interesting approach I tried, taking a bit of a page from Linux which I know uses a dumbed down allocator for the early allocation during kernel boot, is to have my Rust allocator be tiered: during early kernel boot, it uses a bump allocator. The only allocations done by the bump allocator are to set up the memory to be used by the slab_allocator. This meant I could get the benefit of collections when porting slab_allocator, so I dropped its internal data structure in favor of a plain old vec.
Thanks for this series! You're doing awesome work and giving people a world of new educational opportunities.
Ahh, I see that the API to custom allocators changed :-0 I see that the code in git is updated but not for the bump_allocator. Even if one can work around it to conform to the new interface it is puzzling before you figure out what the problem is.
A guide to the new allocator:
https://github.com/rust-lang/rfcs/blob/master/text/1974-global-allocators.md
Nice article, thanks