Thanks for the explanation and link! That's exactly the kind of thing I was looking for. :-)
I'll definitely keep my eye out for the RFC. --Nathan On Fri, Oct 10, 2014 at 9:47 PM, Alex Crichton <a...@crichton.co> wrote: >>> The syntax was pioneered before the RFC process was in effect, so it >>> may not have an official grammar, but it looks something like: >>> >>> expr := 'box' expr | 'box' '(' expr ')' expr >>> >>> The first form is "rewritten" as `box(::std::owned::HEAP) expr` and >>> the second form (the more general) specifies that the second >>> expression should be placed into the first. >> >> Hmm. So in 'box(RC) expr', RC is an allocator? I must be >> misunderstanding something, because I don't see how it knows from >> that: >> a) That it should create an Rc >> b) How to work with and initialize the Rc struct properly > > The current design hasn't been written up into an RFC, but the current > thinking is documented in the last work week's minutes [1]. They're a > little messy, but they should be faithful to what we're thinking! > > The general idea was that RC isn't actually an allocator per-se, but > rather a "boxer" which knows how to create an Rc<T> from a T. The > "boxer" could be parameterized over an actual allocator which would > dictate where memory comes from, but by the default allocator would > still be the jemalloc heap. We found that the distinction between an > allocator and a boxer gave you a bit more flexibility when it came to > allocators in terms of re-use between pointers such as Rc, Arc, and > Box. > > [1]: > https://github.com/rust-lang/meeting-minutes/blob/master/workweek-2014-08-18/box-and-allocators.md _______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev