Note that the compiler should generate efficient code for common, typical, real-world code. Optimising the compiler to generate the most efficient code for pathological code can be a waste of time, both for the compiler writers and for the users waiting longer for their "normal" code to be compiled. Nevertheless the compiler should emit "decent" code for pathological cases. The quadratic stack growth seems decent to me.
V. On Thursday, 1 July 2021 at 03:03:37 UTC+2 tapi...@gmail.com wrote: > On Wednesday, June 30, 2021 at 8:46:19 PM UTC-4 axel.wa...@googlemail.com > wrote: > >> On Thu, Jul 1, 2021 at 2:34 AM tapi...@gmail.com <tapi...@gmail.com> >> wrote: >> >>> >>> >>> On Wednesday, June 30, 2021 at 11:56:45 AM UTC-4 Brian Candler wrote: >>> >>>> So I think what you're asking is, "under what scenario does the code in >>>> L1066-1069 >>>> <https://github.com/golang/go/blob/d19a53338fa6272b4fe9c39d66812a79e1464cd2/src/runtime/stack.go#L1065-L1070> >>>> >>>> get run?" - is that right? >>> >>> >>> Almost true. >>> >>> Whether or not it should run, growing the stack from 2048 to 512M in 18+ >>> steps looks not right. >>> >> >> Why? 2048 • 2^18 = 2^11 • 2^18 = 2^29 = 536870912. >> Seems like exactly the expected result. >> > > It looks each step calls copystack once. > Isn't one step more efficient? > > >> >> >>> >>> >>>> >>>> On Wednesday, 30 June 2021 at 14:21:21 UTC+1 tapi...@gmail.com wrote: >>>> >>>>> Sorry, I post the wrong anchor. It is line 1068: >>>>> https://github.com/golang/go/blob/d19a53338fa6272b4fe9c39d66812a79e1464cd2/src/runtime/stack.go#L1068 >>>>> >>>>> On Wednesday, June 30, 2021 at 5:08:30 AM UTC-4 Brian Candler wrote: >>>>> >>>>>> On Wednesday, 30 June 2021 at 08:25:59 UTC+1 tapi...@gmail.com wrote: >>>>>> >>>>>>> >>>>>>> It looks this line >>>>>>> https://github.com/golang/go/blob/master/src/runtime/stack.go#L1078 >>>>>>> never gets executed. >>>>>>> >>>>>>> >>>>>> Can you quote the line you're referring to? Line numbers can shift >>>>>> up and down as commits are made to the master branch. Right now, L1078 >>>>>> is a >>>>>> blank line. >>>>>> >>>>> -- >>> >> 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/5fab5a6e-5dd5-4df2-8b31-4a51aa825f92n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/golang-nuts/5fab5a6e-5dd5-4df2-8b31-4a51aa825f92n%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/d15c19c1-6844-4454-91f5-e21add1bf1fan%40googlegroups.com.