I agree this is not a real problem in practice. It is just an aesthetics 
problem.
No tests are broken if the consistency is made.

BTW, in the function "walkStringToBytes", there is a comparison "len(sc) <= 
int(ir.MaxImplicitStackVarSize)",
which is inconsistent with other uses of MaxImplicitStackVarSize.

On Saturday, June 26, 2021 at 6:44:07 AM UTC-4 axel.wa...@googlemail.com 
wrote:

> Out of interest, I chased this down a bit using `git blame`. I think the 
> code in its current form (more or less - some constants where introduced 
> later and things where moved around a bit here and there) was introduced 
> here:
> https://go-review.googlesource.com/c/go/+/10268/
> It seems checks from multiple places where consolidated into one. One of 
> these checks was `n.Type.Width > MaxStackVarSize` another was 
> `!(n.Type.Type.Width < 1<<16`), which then got rewritten into 
> `n.Type.Type.Width >= 1<<16` to avoid the negation, which eventually became 
> the code you looked at.
> Before that commit, it's not clear to me where this specific condition was 
> taken from.
>
> So, from what I can tell, it's an artifact of these two things being 
> written by different people and then evolving over a long time into the 
> same place via a sequence of semantics-preserving small refactorings. I 
> don't think there is a technical reason they should be different but I also 
> assume that it's not worth it to make them the same - it doesn't really 
> matter if we move things to the heap one byte earlier or later, only the 
> order of magnitude is important.
>
> But I might be wrong about all of this. I don't really understand the 
> purpose of you diving so deep into the escape analysis behavior and then 
> asking *extremely* detailed questions like this (though I am always curious 
> to see if you could find the answer yourself, which is why I dove into the 
> git history). ISTM if this causes a problem, the best way to address it 
> would be to file a bug. And if it's just curiosity, you can always try and 
> change it and see what breaks. Go has a lot of tests.
>
> On Sat, Jun 26, 2021 at 11:52 AM tapi...@gmail.com <tapi...@gmail.com> 
> wrote:
>
>> Sorry, a typo in title. It should be "comparison".
>>
>> On Saturday, June 26, 2021 at 5:50:55 AM UTC-4 tapi...@gmail.com wrote:
>>
>>>
>>> The code: 
>>> https://github.com/golang/go/blob/cca23a73733ff166722c69359f0bb45e12ccaa2b/src/cmd/compile/internal/escape/escape.go#L2012-L2025
>>>
>>> xxx > ir.MaxStackVarSize
>>>
>>> xxx >= ir.MaxImplicitStackVarSize
>>>
>>> This leads to the elements of a slice with size as ir.
>>> MaxImplicitStackVarSize will be allocated on heap, but an array with 
>>> size as ir.MaxStackVarSize will be allocated on stack.
>>>
>>> Is this intended?
>>>
>>>
>>>
>>> -- 
>> 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.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/d26fec6c-03ba-4ea2-aa03-4e47f0980660n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/d26fec6c-03ba-4ea2-aa03-4e47f0980660n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/b8490ef4-31f0-4239-8545-9b9f89e0633dn%40googlegroups.com.

Reply via email to