3 ms·
It does not defeat borrow checking. The borrow checker will ensure that objects do not outlive the arena. It works with borrow checking.
by celeritascelery 1y ago
It does not defeat borrow checking. The borrow checker will ensure that objects do not outlive the arena. It works with borrow checking.
- Archit3ch 1y agoThis. Arenas don't work when you don't know when it's okay to free. The borrow checker can help with that (or you can track it manually in C/Zig).
- worik 1y agoThe borrow checker knows nothing about your arena allocations. That is if we are talking about the same thing! All the borrow checker knows is there is a chunk of memory (the arena) in scope. It works, no memory safety in the sense that you must manage your own garbage and you can reference uninitialized parts of the arena I have found myself using arenas in Rust for managing circular references (networks with cycles) and if I were to do it again I think I would write that bit in C or unsafe Rust.
- ben-schaaf 1y agoThe popular Bumpalo only returns references with the lifetime of the allocator. Not sure what you mean by manage your own garbage, an arena allocator deallocates everything when it goes out of scope. You definitely can't reference uninitialized parts of an arena.