On Mon, Jun 29, 2020 at 5:32 PM Bill Morgan <arthurwilliammor...@gmail.com> wrote: > > for this code: > > m := make(map[int]int, 9) > > I think the compiler creates a maptype that is stored at type.*+60480(SB) > that it uses for the call to runtime.makemap: > > m := make(map[int]int, 9) > 0x10d0b81 488d05f8ec0000 LEAQ type.*+60480(SB), AX > 0x10d0b88 48890424 MOVQ AX, 0(SP) > 0x10d0b8c 48c744240809000000 MOVQ $0x9, 0x8(SP) > 0x10d0b95 48c744241000000000 MOVQ $0x0, 0x10(SP) > 0x10d0b9e 6690 NOPW > 0x10d0ba0 e8fbdff3ff CALL runtime.makemap(SB) > > Where is the code in the compiler that creates the maptype? I'm wondering how > the bucket size is computed and how the rest of the maptype structure is > filled out.
https://golang.org/src/cmd/compile/internal/gc/reflect.go#L189 > Is there a way to print out the type info stored in the binary? I'm not sure if this is what you want, but you can use reflect.TypeOf: https://play.golang.org/p/FEUIoqc6SMU . 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcUGm0oBhg5Ad9hnaEN7P9seFEtcELGBdGr_FjXiVxkO-A%40mail.gmail.com.