On Wednesday, 5 February 2014 at 19:15:41 UTC, Adam D. Ruppe wrote:
On Wednesday, 5 February 2014 at 19:04:10 UTC, Namespace wrote:
Would it not be possible to add an "int rc" to the internal Array struct? So that int[] arr = [1, 2, 3]; is ref counted per default?

Please no (it'd also have to be int* rc btw). This makes slices fatter than they need to be.

We should be looking at reducing costs, not shuffling them around or adding to them.

Only if you change the current implementation from this:
----
struct Array {
        void* ptr;
        size_t length;
}
----
to this:
----
struct Array {
        void* ptr;
        int* rc;
        size_t length;
}
----
But we could also implement it like this:
----
struct Array {
        static struct Payload {
                void* ptr;
                int* rc;
        }

        Payload* p;
        size_t length;
}
----
with the same costs.

Reply via email to