[ +mdempsky ] On Thu, Mar 5, 2020 at 2:58 AM Ethan Burns <burns.et...@gmail.com> wrote: > > Thanks. I'll give that doc a read. Just to make sure, I noticed that the doc > is dated 2015, but the escape analysis implementation seemed to change just > recently from that implemented in esc.go to a new one in escape.go. Dose the > doc still apply to the new implementation? > > On Thu, Mar 5, 2020 at 4:20 AM tokers <zchao1...@gmail.com> wrote: >> >> This is a known deficiency of Go's escape analysis, which is recorded in >> this doc: >> https://docs.google.com/document/d/1CxgUBPlx9iJzkz9JWkb6tIpTe5q32QDmz8l0BouG0Cw/view# >> >> On Thursday, March 5, 2020 at 5:58:37 AM UTC+8, burns...@gmail.com wrote: >>> >>> Hi All, >>> >>> I am trying to debug why a byte slice is escaping in my program. I have a >>> small reproducible example here: >>> >>> % cat escape.go >>> package main >>> >>> func main() { >>> x := make([]byte, 5) >>> y := new([]byte) >>> *y = x >>> nothing((*y)[3]) >>> } >>> >>> func nothing(b byte) {} >>> % go tool compile -m -m -l escape.go >>> escape.go:4:11: make([]byte, 5) escapes to heap: >>> escape.go:4:11: flow: x = &{storage for make([]byte, 5)}: >>> escape.go:4:11: from make([]byte, 5) (spill) at escape.go:4:11 >>> escape.go:4:11: from x := make([]byte, 5) (assign) at escape.go:4:4 >>> escape.go:4:11: flow: {heap} = x: >>> escape.go:4:11: from *y = x (assign) at escape.go:6:5 >>> escape.go:4:11: make([]byte, 5) escapes to heap >>> escape.go:5:10: new([]byte) does not escape >>> >>> It seems to me like neither x nor it's backing array should escape, but I'm >>> having trouble figuring out why it's flagged as escaping from the debug >>> output. >>> >>> % go version >>> go version go1.14 darwin/amd64 >>> >>> >>> Any help would be appreciated. >>> >>> Ethan >>> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "golang-nuts" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/golang-nuts/2s0_gQjR7yE/unsubscribe. >> To unsubscribe from this group and all its topics, 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/646ff0ef-2feb-409b-9ac4-8c667b40b392%40googlegroups.com. > > -- > 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/CAGE%3DEi2Bdzydu%2BzGHA0-xmMd0NTrBePBcTFAAvm1A-1RLiaa9Q%40mail.gmail.com.
-- 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/CAOyqgcUB%2BGc_QCJpbhD9s%3Dnaj7YjakOTnEQgwRCUi293E3wTMA%40mail.gmail.com.