Your document is not accessible to me. (Google-internal?)

On Wed, Feb 1, 2017 at 5:18 PM, 'Keith Randall' via golang-nuts
<golang-nuts@googlegroups.com> wrote:
> I wrote up a proto-proposal for something like this a while ago.
>
> https://docs.google.com/a/google.com/document/d/18nu6QTr-ACYr5AiyP6x31SkXvuJZZaZ12lnvPTEQfgQ/pub
>
> It has a few numbers worth looking at in it.
>
> This proposal was before the fully precise GC we have today.  It needs to
> have special GC marking bits for string pointer words (like we did for
> interface data words so long ago: go1.3ish).  I'm not sure we could get it
> to work today.
>
> On Wednesday, February 1, 2017 at 10:46:05 AM UTC-8, Ian Lance Taylor wrote:
>>
>> On Wed, Feb 1, 2017 at 10:38 AM, Eliot Hedeman
>> <eliot.d...@gmail.com> wrote:
>> > Ok, I'm going to try to restate the issues raised and answer them one by
>> > one. If I misunderstand, please let me know.
>> >
>> > 1. The GC needs to know if a pointer is actually a pointer.
>> > Solution: Check if the high bit is set. If it is, you know for sure that
>> > it
>> > is not a pointer.
>> > It actually doesn't matter if the cpu ignores the top 16 bits or not.
>> > The
>> > point is that the top 8 bits will never be used in an actual pointer,
>> > and
>> > that is all we care about for this implementation.
>>
>> It's not that simple.  At least on Solaris amd64, the high bit will be
>> set for a pointer into the stack.
>>
>> > 2. This only works for x86-64
>> > Solution: I don't even think it is hyperbolic to say that 99% of all go
>> > running in production is on x86-64. So even if this optimization is only
>> > implemented for x86-64, it is well worth it. The rest could be take care
>> > of
>> > by a stubbed out isSmallString(s string) bool that always returns false,
>> > and
>> > let the compiler remove all the small string code from the resulting
>> > binary.
>>
>> I suppose we could do that but I would consider it very unfortunate.
>>
>> Ian
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to