So at some future point it would be possible to replace
TypedArena_instance().alloc(X) with box(TypedArena_instance) X
avoiding an extra move of X from a temporary allocated on the stack
that the compiler in general cannot optimize?
On 3 July 2014 04:39, Corey Richardson co...@octayn.net wrote:
On 7/2/14 11:08 PM, Igor Bukanov wrote:
So at some future point it would be possible to replace
TypedArena_instance().alloc(X) with box(TypedArena_instance) X
avoiding an extra move of X from a temporary allocated on the stack
that the compiler in general cannot optimize?
Yes. Under the hood,
Once in the tutorial, I see this syntax:
let x = box(GC) [1i, 2, 3, 4, 5, 6, 7, 8, 9, 10];
It seems to me, that should be: boxGc, as it feels like box is referring
to a container type (which the default type is Box_, but may be Rc_ or
Gc_).
What is the principle behind the current notation?
The full syntax is: box [( EXPR )] EXPR
The first expression is the boxer, or where the result of the second
expression will be stored. GC and HEAP are special cased right now as
the only boxers, but the goal is to use a trait such that you can use
Rc, arenas, vectors, or any other arbitrary type
To expand upon what Corey was saying, `box` is basically a huge
special-cased hack right now. I'm surprised that a mention of `box(GC)` is
even included in the tutorial. Someone tell Steve to rip that out. :P
We'll be clarfiying how best to use `box` before 1.0. In the meantime, just
don't use