Thanks for the info! I will for sure take a look before submitting my 
proposal

On Wednesday, February 1, 2017 at 5:34:53 PM UTC-8, Keith Randall wrote:
>
> &$*@^! Google!  Apparently "publish to the web" doesn't mean publish to 
> the web when you're inside Google.
>
> But I can publish to a pdf and then attach it...
>
> On Wed, Feb 1, 2017 at 5:24 PM, Caleb Spare <ces...@gmail.com 
> <javascript:>> wrote:
>
>> Your document is not accessible to me. (Google-internal?)
>>
>> On Wed, Feb 1, 2017 at 5:18 PM, 'Keith Randall' via golang-nuts
>> <golan...@googlegroups.com <javascript:>> 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...@googlegroups.com <javascript:>.
>> > 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